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); }
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())); }
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";