-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathindex.php
executable file
·112 lines (102 loc) · 3.85 KB
/
index.php
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
<?php
/**
* Chronolabs Fonting Repository Services REST API API
*
* You may not change or alter any portion of this comment or credits
* of supporting developers from this source code or any supporting source code
* which is considered copyrighted (c) material of the original comment or credit authors.
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
*
* @copyright Chronolabs Cooperative http://labs.coop
* @license General Public License version 3 (http://labs.coop/briefs/legal/general-public-licence/13,3.html)
* @package fonts
* @since 2.1.9
* @author Simon Roberts <[email protected]>
* @subpackage api
* @description Fonting Repository Services REST API
* @link http://sourceforge.net/projects/chronolabsapis
* @link http://cipher.labs.coop
*/
require_once __DIR__ . DIRECTORY_SEPARATOR . 'header.php';
/**
* URI Path Finding of API URL Source Locality
* @var unknown_type
*/
$odds = $inner = array();
foreach($inner as $key => $values) {
if (!isset($inner[$key])) {
$inner[$key] = $values;
} elseif (!in_array(!is_array($values) ? $values : md5(json_encode($values, true)), array_keys($odds[$key]))) {
if (is_array($values)) {
$odds[$key][md5(json_encode($inner[$key] = $values, true))] = $values;
} else {
$odds[$key][$inner[$key] = $values] = "$values--$key";
}
}
}
foreach($_POST as $key => $values) {
if (!isset($inner[$key])) {
$inner[$key] = $values;
} elseif (!in_array(!is_array($values) ? $values : md5(json_encode($values, true)), array_keys($odds[$key]))) {
if (is_array($values)) {
$odds[$key][md5(json_encode($inner[$key] = $values, true))] = $values;
} else {
$odds[$key][$inner[$key] = $values] = "$values--$key";
}
}
}
foreach(parse_url('http://'.$_SERVER['HTTP_HOST'].$_SERVER['REQUEST_URI'].(strpos($_SERVER['REQUEST_URI'], '?')?'&':'?').$_SERVER['QUERY_STRING'], PHP_URL_QUERY) as $key => $values) {
if (!isset($inner[$key])) {
$inner[$key] = $values;
} elseif (!in_array(!is_array($values) ? $values : md5(json_encode($values, true)), array_keys($odds[$key]))) {
if (is_array($values)) {
$odds[$key][md5(json_encode($inner[$key] = $values, true))] = $values;
} else {
$odds[$key][$inner[$key] = $values] = "$values--$key";
}
}
}
$help=true;
if (isset($inner['output']) || !empty($inner['output'])) {
$version = isset($inner['version'])?(string)$inner['version']:'v2';
$output = isset($inner['output'])?(string)$inner['output']:'';
$name = isset($inner['name'])?(string)$inner['name']:'';
$clause = isset($inner['clause'])?(string)$inner['clause']:'';
$callback = isset($_REQUEST['callback'])?(string)$_REQUEST['callback']:'';
$mode = isset($inner['mode'])?(string)$inner['mode']:'';
$state = isset($inner['state'])?(string)$inner['state']:'';
switch($output)
{
case "forms":
if (in_array($mode, array('test','training')))
{
$help=false;
if (empty($clause) && isset($_POST['return']))
$clause = $_POST['return'];
}
break;
}
} else {
$help=true;
}
if ($help==true) {
if (function_exists('http_response_code'))
http_response_code(400);
include dirname(__FILE__).'/help.php';
exit;
}
switch($output)
{
case "forms":
if (function_exists('http_response_code'))
http_response_code(201);
die(getHTMLForm($syate, $clause, $callback, $output, $version));
break;
}
if (function_exists('http_response_code'))
http_response_code(200);
// Checks Cache for Cleaning
@cleanResourcesCache();
$GLOBALS['apiLogger']->stopTime('API Functioning');