public static function get_media_url_str($category_id, $filter_name = null, $type = 'show')
 {
     // hd_print(__METHOD__);
     // hd_print('  category_id: ' . $category_id . ' filter_name: ' .  $filter_name);
     $filter_name = !isset($filter_name) ? 'all' : $filter_name;
     return MediaURL::encode(array('screen_id' => self::ID, 'category_id' => $category_id, 'filter_name' => $filter_name, 'type' => $type));
 }
 public function handle_user_input(&$user_input, &$plugin_cookies)
 {
     hd_print('Vod favorites: handle_user_input:');
     foreach ($user_input as $key => $value) {
         hd_print("  {$key} => {$value}");
     }
     if ($user_input->control_id == 'popup_menu') {
         if (!isset($user_input->selected_media_url)) {
             return null;
         }
         $media_url = MediaURL::decode($user_input->selected_media_url);
         $movie_id = $media_url->movie_id;
         $is_favorite = $this->vod->is_favorite_movie_id($movie_id);
         $add_favorite_action = UserInputHandlerRegistry::create_action($this, 'add_favorite');
         $caption = 'Add to My Movies';
         $menu_items[] = array(GuiMenuItemDef::caption => $caption, GuiMenuItemDef::action => $add_favorite_action);
         return ActionFactory::show_popup_menu($menu_items);
     } else {
         if ($user_input->control_id == 'add_favorite') {
             if (!isset($user_input->selected_media_url)) {
                 return null;
             }
             $media_url = MediaURL::decode($user_input->selected_media_url);
             $movie_id = $media_url->movie_id;
             $is_favorite = $this->vod->is_favorite_movie_id($movie_id);
             if ($is_favorite) {
                 return ActionFactory::show_title_dialog('Movie already resides in My Movies');
             } else {
                 $this->vod->add_favorite_movie($movie_id, $plugin_cookies);
                 return ActionFactory::show_title_dialog('Movie has been added to My Movies');
             }
         }
     }
     return null;
 }
 public function doMakePlayListAndPlay(&$user_input, &$plugin_cookies)
 {
     hd_print(__METHOD__ . print_r($plugin_cookies, true));
     $media_url = MediaURL::decode($user_input->selected_media_url);
     $url = $this->base_url . $media_url->key;
     $musics = $this->getTrackUrlsFromUrl($url, $plugin_cookies);
     return ActionFactory::launch_media_url($this->makePlayList($musics));
 }
 public function handle_user_input(&$user_input, &$plugin_cookies)
 {
     // hd_print(__METHOD__);
     hd_print(print_r($user_input, true));
     $media_url = MediaURL::decode($user_input->selected_media_url);
     if ($user_input->control_id == 'pop_up') {
     }
 }
 public function get_all_folder_items(MediaURL $media_url, &$plugin_cookies)
 {
     $this->session->logout();
     $this->session->ensure_logged_in($plugin_cookies);
     $this->tv->ensure_channels_loaded($plugin_cookies);
     $new_items[] = array(PluginRegularFolderItem::media_url => MediaURL::encode(array('screen_id' => KtvVodRootScreen::ID)), PluginRegularFolderItem::caption => 'Videoteka', PluginRegularFolderItem::view_item_params => array(ViewItemParams::icon_path => $this->session->get_icon('mov_root.png')));
     $parent_items = parent::get_all_folder_items($media_url, $plugin_cookies);
     return array_merge($new_items, $parent_items);
 }
 public static function get_media_url_str($page_name, $arg = null)
 {
     $arr['screen_id'] = self::ID;
     $arr['page_name'] = $page_name;
     if ($page_name === 'search') {
         $arr['pattern'] = $arg;
     } else {
         if ($page_name === 'genres') {
             $arr['genre_id'] = $arg;
         }
     }
     return MediaURL::encode($arr);
 }
 public function get_all_folder_items(MediaURL $media_url, &$plugin_cookies)
 {
     $this->vod->folder_entered($media_url, $plugin_cookies);
     $movie = $this->vod->get_loaded_movie($media_url->movie_id, $plugin_cookies);
     if ($movie === null) {
         // TODO: dialog?
         return array();
     }
     $items = array();
     foreach ($movie->series_list as $series) {
         $items[] = array(PluginRegularFolderItem::media_url => MediaURL::encode(array('screen_id' => self::ID, 'movie_id' => $movie->id, 'series_id' => $series->id)), PluginRegularFolderItem::caption => $series->name, PluginRegularFolderItem::view_item_params => array(ViewItemParams::icon_path => 'gui_skin://small_icons/movie.aai'));
     }
     return $items;
 }
 public function handle_user_input(&$user_input, &$plugin_cookies)
 {
     hd_print('Vod favorites: handle_user_input:');
     foreach ($user_input as $key => $value) {
         hd_print("  {$key} => {$value}");
     }
     if ($user_input->control_id == 'remove_favorite') {
         if (!isset($user_input->selected_media_url)) {
             return null;
         }
         $media_url = MediaURL::decode($user_input->selected_media_url);
         $movie_id = $media_url->movie_id;
         $this->vod->remove_favorite_movie($movie_id, $plugin_cookies);
         return ActionFactory::invalidate_folders(array(self::get_media_url_str($movie_id)));
     }
     return null;
 }
 public function handle_user_input(&$user_input, &$plugin_cookies)
 {
     hd_print(__METHOD__);
     hd_print(__METHOD__ . ":" . print_r($user_input, true));
     if ($user_input->control_id == 'pop_up') {
         $media_url = MediaURL::decode($user_input->selected_media_url);
         $key = (string) $media_url->category_id;
         // hd_print("key = $key");
         if ($key) {
             $url = EmplexerConfig::getInstance()->getPlexBaseUrl($plugin_cookies, $this) . '/library/sections/' . $key;
             /*$popUp = new EmplexerPopUp(4);
             		$action = $popUp->showPopUpMenu($url);*/
             $doc = HD::http_get_document(EmplexerConfig::getInstance()->getPlexBaseUrl($plugin_cookies, $this) . '/library/sections/' . $key);
             $pop_up_items = array();
             $xml = simplexml_load_string($doc);
             $defaultFilter = 'all';
             if ($media_url->type == 'show') {
                 $defaultFilter = isset($plugin_cookies->defaultShowFilter) ? $plugin_cookies->defaultShowFilter : 'all';
             }
             if ($media_url->type == 'movie') {
                 $defaultFilter = isset($plugin_cookies->defaultMovieFilter) ? $plugin_cookies->defaultMovieFilter : 'all';
             }
             foreach ($xml->Directory as $c) {
                 $key = (string) $c->attributes()->key;
                 $prompt = (string) $c->attributes()->prompt;
                 $is_secondary = (string) $c->attributes()->secondary;
                 if ($key != $defaultFilter && $key != 'folder' && !$prompt) {
                     // if ($key != 'all' ){
                     $pop_up_items[] = array(GuiMenuItemDef::caption => (string) $c->attributes()->title, GuiMenuItemDef::action => ActionFactory::open_folder($this->get_right_media_url_for_pop_up($media_url, $key, $is_secondary != null), $key));
                 }
             }
             hd_print(__METHOD__ . ' pop_up_items:' . print_r($pop_up_items, true));
             $action = ActionFactory::show_popup_menu($pop_up_items);
             // hd_print(__METHOD__ . ': ' . print_r($action, true));
             return $action;
         } else {
             return null;
         }
     }
     if ($user_input->control_id == 'savePref') {
         hd_print(__METHOD__ . ':' . print_r($user_input, true));
         hd_print(__METHOD__ . ':' . print_r($plugin_cookies, true));
         EmplexerSetupScreen::savePreferences($user_input, $plugin_cookies);
     }
 }
 public function handle_user_input(&$user_input, &$plugin_cookies)
 {
     hd_print('Vod genres: handle_user_input:');
     foreach ($user_input as $key => $value) {
         hd_print("  {$key} => {$value}");
     }
     if ($user_input->control_id == 'select_genre') {
         if (!isset($user_input->selected_media_url)) {
             return null;
         }
         $media_url = MediaURL::decode($user_input->selected_media_url);
         $genre_id = $media_url->genre_id;
         $caption = $this->vod->get_genre_caption($genre_id);
         $media_url_str = $this->vod->get_genre_media_url_str($genre_id);
         return ActionFactory::open_folder($media_url_str, $caption);
     }
     return null;
 }
 public function get_vod_info($media_url_str, &$plugin_cookies)
 {
     // hd_print(print_r(debug_backtrace(), true));
     HD::print_backtrace();
     $media_url = MediaURL::decode($media_url_str);
     hd_print(__METHOD__ . ': ' . print_r($media_url, true));
     if ($media_url->screen_id == 'emplexer_base_channel') {
         $toPlay = $media_url->video_media_array[$plugin_cookies->channel_selected_index];
         return EmplexerBaseChannel::get_vod_info($toPlay);
     }
     if ($media_url->screen_id == 'vod_movie') {
         return $this->vod->get_vod_info($media_url, $plugin_cookies);
         // EmplexerVod::get_vod_info($media_url, $plugin_cookies);
     }
     $handler = $media_url->back_screen_id == EmplexerVideoList::ID ? EmplexerVideoList::ID : EmplexerMovieList::ID;
     $params = array('key' => $media_url->key, 'back_screen_id' => $media_url->back_screen_id, 'back_key' => $media_url->back_key, 'back_filter_name' => $media_url->back_filter_name);
     $stop_action = UserInputHandlerRegistry::create_action($this->get_screen_by_id($handler), 'stop', $params);
     $time_action = UserInputHandlerRegistry::create_action($this->get_screen_by_id($handler), 'time', $params);
     $series_array = array();
     $series_array[] = array(PluginVodSeriesInfo::name => $media_url->title, PluginVodSeriesInfo::playback_url => $media_url->video_url, PluginVodSeriesInfo::playback_url_is_stream_url => true);
     $toBeReturned = array(PluginVodInfo::id => $media_url->movie_id, PluginVodInfo::series => $series_array, PluginVodInfo::name => $media_url->name, PluginVodInfo::description => $media_url->summary, PluginVodInfo::poster_url => $media_url->thumb, PluginVodInfo::initial_series_ndx => 0, PluginVodInfo::buffering_ms => 3000, PluginVodInfo::initial_position_ms => EmplexerVideoList::$viewOffset, PluginVodInfo::advert_mode => false, PluginVodInfo::timer => array(GuiTimerDef::delay_ms => 5000), PluginVodInfo::actions => array(GUI_EVENT_PLAYBACK_STOP => $stop_action, GUI_EVENT_TIMER => $time_action));
     hd_print(print_r($toBeReturned, true));
     return $toBeReturned;
 }
 private function get_regular_folder_item($group, $c, &$plugin_cookies)
 {
     return array(PluginRegularFolderItem::media_url => MediaURL::encode(array('channel_id' => $c->get_id(), 'group_id' => $group->get_id())), PluginRegularFolderItem::caption => $c->get_title(), PluginRegularFolderItem::view_item_params => array(ViewItemParams::icon_path => $c->get_icon_url(), ViewItemParams::item_detailed_icon_path => $c->get_icon_url()), PluginRegularFolderItem::starred => $this->tv->is_favorite_channel_id($c->get_id(), $plugin_cookies));
 }
 public function get_vod_info($media_url_str, &$plugin_cookies)
 {
     if (is_null($this->vod)) {
         throw new Exception('VOD is not supported');
     }
     $media_url = MediaURL::decode($media_url_str);
     return $this->vod->get_vod_info($media_url, $plugin_cookies);
 }
 public function downLoadSubtitleFromPlex(&$user_input, &$plugin_cookies, $video_url, $languageCode = 'por')
 {
     $media_url = MediaURL::decode($user_input->selected_media_url);
     $base_url = EmplexerConfig::getInstance()->getPlexBaseUrl($plugin_cookies, $this);
     $url = $base_url . $media_url->detail_info_key;
     $xml = HD::getAndParseXmlFromUrl($url);
     $subtitleFileName = str_replace(array(".mkv", ".avi", ".mp4"), '.srt', HD::nfsUrlToSystemPath($video_url));
     foreach ($xml->Video->Media->Part->Stream as $stream) {
         //is subtitle?
         //is languageCode == $languageCode?
         //Subtititle dosen't exists local?
         if ($stream->attributes()->streamType == "3" && $stream->attributes()->languageCode == $languageCode && !file_exists($subtitleFileName)) {
             //download the subtitle
             hd_print(__METHOD__ . ' não existe legenda local e existe no plex a legenda com o código: ' . $languageCode . ' vou baixar e colocar com o nome ' . $subtitleFileName);
             $subtitleUrl = $base_url . $stream->attributes()->key;
             $subData = HD::http_get_document($subtitleUrl);
             file_put_contents($subtitleFileName, $subData);
         }
     }
 }
 public static function get_media_url_str($key, $type = TYPE_DIRECTORY, $videoMediaArray = null)
 {
     hd_print(__METHOD__);
     return MediaURL::encode(array('screen_id' => self::ID, 'key' => $key, 'type' => $type, 'video_media_array' => $videoMediaArray));
 }
 public static function get_media_url_str($movie_id)
 {
     return MediaURL::encode(array('screen_id' => self::ID, 'movie_id' => $movie_id));
 }
 public static function get_media_url_str($movie_id)
 {
     hd_print(__METHOD__);
     return MediaURL::encode(array('screen_id' => self::ID));
 }
 public function get_all_folder_items(MediaURL $media_url, &$plugin_cookies)
 {
     $this->tv->folder_entered($media_url, $plugin_cookies);
     $fav_channel_ids = $this->tv->get_fav_channel_ids($plugin_cookies);
     $items = array();
     foreach ($fav_channel_ids as $channel_id) {
         if (preg_match('/^\\s*$/', $channel_id)) {
             continue;
         }
         try {
             $c = $this->tv->get_channel($channel_id);
         } catch (Exception $e) {
             hd_print("Warning: channel '{$channel_id}' not found.");
             continue;
         }
         array_push($items, array(PluginRegularFolderItem::media_url => MediaURL::encode(array('channel_id' => $c->get_id(), 'group_id' => '__favorites')), PluginRegularFolderItem::caption => $c->get_title(), PluginRegularFolderItem::view_item_params => array(ViewItemParams::icon_path => $c->get_icon_url(), ViewItemParams::item_detailed_icon_path => $c->get_icon_url()), PluginRegularFolderItem::starred => false));
     }
     return $items;
 }
 public static function get_media_url_str($key, $filter_name = null, $type = 'movie')
 {
     hd_print(__METHOD__);
     self::$type = $type;
     return MediaURL::encode(array('screen_id' => self::ID, 'key' => $key, 'category_id' => $key, 'filter_name' => $filter_name, 'type' => $type));
 }
 public static function get_media_url_str($category_id, $filter_name = null, $type = 'movie')
 {
     // $filter_name = !isset($filter_name)?'all':$filter_name;
     return MediaURL::encode(array('screen_id' => self::ID, 'category_id' => $category_id, 'filter_name' => $filter_name, 'type' => $type));
 }
 public function doEnterSearch(&$user_input)
 {
     hd_print(__METHOD__);
     $media_url = MediaURL::decode($user_input->selected_media_url);
     return $this->showSearchScreen($media_url->key, 'Search', $plugin_cookies);
 }
 public function add_special_groups(&$items)
 {
     array_unshift($items, array(PluginRegularFolderItem::media_url => MediaURL::encode(array('screen_id' => KtvVodRootScreen::ID)), PluginRegularFolderItem::caption => 'Videoteka', PluginRegularFolderItem::view_item_params => array(ViewItemParams::icon_path => $this->session->get_icon('mov_root.png'))));
 }