Пример #1
0
use Core\Libraries\FreedomCore\System\Manager;
use Core\Extensions\FreedomNetAPI;
//unset($_SESSION['api_data']);
if (!isset($_SESSION['api_data'])) {
    $APIData = ['spr' => 1, 'rpm' => 50, 'rph' => 10, 'first_request_time' => time(), 'last_request_time' => time(), 'next_minute_cd_reset' => time() + 60, 'next_hour_cd_reset' => time() + 3600, 'request_count' => 1];
} else {
    $AData = $_SESSION['api_data'];
    if ($AData['last_request_time'] && time() - $AData['last_request_time'] < $AData['spr']) {
        die('RPS LIMIT REACHED!');
    } else {
        if ($AData['request_count'] == $AData['rpm'] && $AData['first_request_time'] < $AData['first_request_time'] + 60) {
            die('RPM LIMIT REACHED!!!!');
        } else {
            if ($AData['request_count'] == $AData['rph'] && $AData['first_request_time'] < $AData['first_request_time'] + 3600) {
                die('RPH LIMIT REACHED!!!');
            } else {
                $APIData = ['spr' => 1, 'rpm' => 50, 'rph' => 10, 'first_request_time' => $AData['first_request_time'], 'last_request_time' => time(), 'request_count' => $AData['request_count'] + 1];
            }
        }
    }
}
$_SESSION['api_data'] = $APIData;
if (!array_key_exists('HTTP_ORIGIN', $_SERVER)) {
    $_SERVER['HTTP_ORIGIN'] = $_SERVER['SERVER_NAME'];
}
try {
    $API = new FreedomNetAPI($_REQUEST, $_SERVER['HTTP_ORIGIN']);
    echo $API->processAPI();
} catch (Exception $e) {
    echo json_encode(array('error' => $e->getMessage()));
}