public function send()
 {
     if (!empty($this->request) && strpos($this->request->getAccept(), 'text/channel-monitoring-id-url') !== false) {
         if (is_array($this->body['results'])) {
             $channels = array_filter($this->body['results'], function ($channel) {
                 return $channel['enable_monitoring'];
             });
             //$channels = $this->body['results'];
             if (preg_match("/items=(\\d+)-(\\d*)/", $this->request->getAccept(), $match)) {
                 $start = $match[1];
                 $end = empty($match[2]) ? count($channels) : $match[2];
                 $channels = array_slice($channels, $start - 1, $end - $start + 1);
                 //var_dump($start, $end, $channels);
             } elseif (preg_match("/part=(\\d+)\\/(\\d+)/", $this->request->getAccept(), $match)) {
                 $length = count($channels);
                 $start = round((intval($match[1]) - 1) * ($length / intval($match[2])));
                 $end = round(intval($match[1]) * ($length / intval($match[2])));
                 $channels = array_slice($channels, $start, $end - $start);
                 //var_dump($length, $start, $end);
             }
             $body = array_reduce($channels, function ($prev, $curr) {
                 return $prev . $curr['id'] . ' ' . $curr['url'] . (isset($curr['type']) ? ' ' . $curr['type'] : '') . ' ' . str_replace(' ', '_', $curr["ch_name"]) . ' ' . ((int) $curr["status"] == 1 ? "up" : "down") . "\n";
             }, '');
             header("Content-Type: text/plain");
             echo $body;
         }
         return;
     }
     header("Content-Type: " . $this->content_type);
     $this->setOutput();
     $response = json_encode($this->body);
     echo $response;
     ob_end_flush();
     if (!Config::getSafe('enable_api_log', true)) {
         return;
     }
     $logger = new Logger();
     $logger->setPrefix("api_");
     // format: ip - login - [date] method "query" - "data" response_bytes;
     $logger->access(sprintf("%s - %s - [%s] %s \"%s\" - \"%s\" %d\n", empty($_SERVER['HTTP_X_REAL_IP']) ? $_SERVER['REMOTE_ADDR'] : $_SERVER['HTTP_X_REAL_IP'], @$_SERVER['PHP_AUTH_USER'], date("r"), $_SERVER['REQUEST_METHOD'], $_SERVER['REQUEST_URI'], empty($this->request) ? 'no resource' : http_build_query($this->request->getData()), strlen($response)));
     if (!empty($this->body['error'])) {
         // format: ip - login - [date] method "query" - "data": error message;
         $logger->error(sprintf("%s - %s - [%s] %s \"%s\" - \"%s\": %s\n", empty($_SERVER['HTTP_X_REAL_IP']) ? $_SERVER['REMOTE_ADDR'] : $_SERVER['HTTP_X_REAL_IP'], @$_SERVER['PHP_AUTH_USER'], date("r"), $_SERVER['REQUEST_METHOD'], $_SERVER['REQUEST_URI'], empty($this->request) ? 'no resource' : http_build_query($this->request->getData()), $this->body['error']));
     }
 }
 public function get_kinopoisk_info_by_id()
 {
     if (!$this->isAjax || $this->method != 'POST' || empty($this->postData['data'])) {
         $this->app->abort(404, $this->setlocalization('Page not found'));
     }
     if ($no_auth = $this->checkAuth()) {
         return $no_auth;
     }
     $data = array();
     $data['action'] = 'getKinopoiskInfoById';
     $error = $this->setLocalization('No data');
     try {
         $data['result'] = \Kinopoisk::getInfoById($this->postData['data']);
         $error = '';
     } catch (\KinopoiskException $e) {
         $error = $e->getMessage();
         $logger = new \Logger();
         $logger->setPrefix("kinopoisk_");
         // format: [date] - error_message - [base64 encoded response];
         $logger->error(sprintf("[%s] - %s - \"%s\"\n", date("r"), $e->getMessage(), base64_encode($e->getResponse())));
     }
     $response = $this->generateAjaxResponse($data, $error);
     return new Response(json_encode($response), empty($error) ? 200 : 500);
 }
Esempio n. 3
0
 public static function logOssError(Exception $e)
 {
     $logger = new Logger();
     $logger->setPrefix("oss_");
     $date = new DateTime('now', new DateTimeZone(Config::get('default_timezone')));
     $logger->error(sprintf("[%s] %s\nMessage:%s\nTrace:[%s]\n-------\n", $date->format('r'), Stb::getInstance()->mac, $e->getMessage(), $e->getTraceAsString()));
 }
Esempio n. 4
0
    try {
        if ($_GET['get'] == 'kinopoisk_info') {
            $response['result'] = vclubinfo::getInfoByName($_GET['oname']);
        } else {
            if ($_GET['get'] == 'kinopoisk_rating') {
                $response['result'] = vclubinfo::getRatingByName($_GET['oname']);
            } else {
                if ($_GET['get'] == 'kinopoisk_info_by_id') {
                    $response['result'] = vclubinfo::getInfoById($_GET['kinopoisk_id']);
                }
            }
        }
    } catch (KinopoiskException $e) {
        echo $e->getMessage();
        $logger = new Logger();
        $logger->setPrefix("vclubinfo_");
        // format: [date] - error_message - [base64 encoded response];
        $logger->error(sprintf("[%s] - %s - \"%s\"\n", date("r"), $e->getMessage(), base64_encode($e->getResponse())));
    }
} elseif ($_GET['get'] == 'tv_services') {
    $response['result'] = Itv::getServices();
} elseif ($_GET['get'] == 'video_services') {
    $response['result'] = Video::getServices();
} elseif ($_GET['get'] == 'radio_services') {
    $response['result'] = Radio::getServices();
} elseif ($_GET['get'] == 'module_services') {
    $response['result'] = Module::getServices();
} elseif ($_GET['get'] == 'option_services') {
    $option_services = Config::getSafe('option_services', array());
    $response['result'] = array_map(function ($item) {
        return array('id' => $item, 'name' => $item);
if (!Config::getSafe('kinopoisk_rating', true)) {
    _log('Notice: kinopoisk rating disabled');
    return;
}
$movies = Mysql::getInstance()->from('video')->where(array('accessed' => 1, 'status' => 1, 'rating_last_update<' => date("Y-m-d H:i:s", time() - 30 * 24 * 3600)))->get()->all();
foreach ($movies as $movie) {
    try {
        if (!empty($movie['kinopoisk_id'])) {
            $rating = Kinopoisk::getRatingById($movie['kinopoisk_id']);
        } else {
            $rating = Kinopoisk::getRatingByName($movie['o_name']);
        }
    } catch (KinopoiskException $e) {
        _log('Error: ' . $movie['path'] . ' (' . $movie['id'] . ') - ' . $e->getMessage());
        $logger = new Logger();
        $logger->setPrefix("kinopoisk_");
        // format: [date] - error_message - [base64 encoded response];
        $logger->error(sprintf("[%s] - %s - \"%s\"\n", date("r"), $e->getMessage(), base64_encode($e->getResponse())));
        continue;
    }
    if ($rating && !empty($rating['kinopoisk_id']) && !empty($rating['rating_kinopoisk']) && $rating['rating_kinopoisk'] != $movie['rating_kinopoisk']) {
        Mysql::getInstance()->update('video', array('kinopoisk_id' => $rating['kinopoisk_id'], 'rating_kinopoisk' => empty($rating['rating_kinopoisk']) ? '' : $rating['rating_kinopoisk'], 'rating_count_kinopoisk' => empty($rating['rating_count_kinopoisk']) ? '' : $rating['rating_count_kinopoisk'], 'rating_imdb' => empty($rating['rating_imdb']) ? '' : $rating['rating_imdb'], 'rating_count_imdb' => empty($rating['rating_count_imdb']) ? '' : $rating['rating_count_imdb'], 'rating_last_update' => 'NOW()'), array('id' => $movie['id']));
        _log('Update: movie ' . $movie['path'] . ' (' . $movie['id'] . ')');
    } else {
        _log('Ignore: movie ' . $movie['path'] . ' (' . $movie['id'] . ') rating updated');
    }
    sleep(1);
}
function _log($str)
{
    echo $str . "\n";