コード例 #1
0
 public function filter($channels)
 {
     $genres = new \TvGenre();
     $all_genres = $genres->getAll(true, true);
     $all_genres_map = array();
     foreach ($all_genres as $genre) {
         $all_genres_map[$genre['_id']] = $genre;
     }
     $fav_channels = $this->fav_channels;
     $fields_map = $this->fields_map;
     $user_channels = $this->user_channels;
     $channels = array_map(function ($channel) use($fav_channels, $fields_map, $user_channels, $all_genres_map) {
         $new_channel = array_intersect_key($channel, $fields_map);
         $new_channel['id'] = (int) $channel['id'];
         $new_channel['number'] = (int) $channel['number'];
         $new_channel['genre_id'] = isset($all_genres_map[$channel['tv_genre_id']]) ? $all_genres_map[$channel['tv_genre_id']]['id'] : '';
         $new_channel['favorite'] = in_array($channel['id'], $fav_channels) ? 1 : 0;
         $new_channel['archive'] = (int) $channel['enable_tv_archive'];
         $new_channel['censored'] = (int) $channel['censored'];
         $new_channel['archive_range'] = (int) $channel['tv_archive_duration'];
         $new_channel['pvr'] = (int) $channel['allow_pvr'];
         if ($channel['enable_monitoring']) {
             $new_channel['monitoring_status'] = (int) $channel['monitoring_status'];
         } else {
             $new_channel['monitoring_status'] = 1;
         }
         if (!empty($_SERVER['HTTP_UA_RESOLUTION']) && in_array($_SERVER['HTTP_UA_RESOLUTION'], array(120, 160, 240, 320))) {
             $resolution = (int) $_SERVER['HTTP_UA_RESOLUTION'];
         } else {
             $resolution = 320;
         }
         $new_channel['logo'] = \Itv::getLogoUriById($channel['id'], $resolution);
         $urls = \Itv::getUrlsForChannel($channel['id']);
         if (!empty($urls) && $urls[0]['use_http_tmp_link'] == 0 && $urls[0]['use_load_balancing'] == 0) {
             $new_channel['url'] = $urls[0]['url'];
         } else {
             $new_channel['url'] = "";
         }
         if (preg_match("/(\\S+:\\/\\/\\S+)/", $new_channel['url'], $match)) {
             $new_channel['url'] = $match[1];
         }
         return $new_channel;
     }, $channels);
     return $channels;
 }
コード例 #2
0
 public function get(RESTApiRequest $request)
 {
     $genres = new \TvGenre();
     $genres->setLocale($request->getLanguage());
     return $genres->getAll(true);
 }