def _videos_to_items(self, context, videos, channel_config): result = [] show_only_free_videos = context.get_settings().get_bool('nowtv.videos.only_free', False) for video in videos: if show_only_free_videos and not video['free']: continue video_params = {'video_path': video['path'], 'video_id': str(video['id'])} title = video['title'] if not video['free']: title = '[B][%s][/B] - %s' % (video['price'], title) video_params['free'] = '0' video_params['price'] = video['price'] pass video_item = VideoItem(title, context.create_uri([channel_config['id'], 'play'], video_params)) duration = datetime_parser.parse(video['duration']) video_item.set_duration(duration.hour, duration.minute, duration.second) published = datetime_parser.parse(video['published']) video_item.set_aired_from_datetime(published) video_item.set_date_from_datetime(published) video_item.set_year_from_datetime(published) video_item.set_studio(video['format']) video_item.add_artist(video['format']) video_item.set_episode(video['episode']) video_item.set_season(video['season']) video_item.set_plot(video['plot']) video_item.set_image(video['images']['thumb']) video_item.set_fanart(video['images']['fanart']) result.append(video_item) pass return result
def _list_films(self, context, re_match, json_data, show_format_title=False, sort=True): context.get_ui().set_view_mode('videos') def _sort_newest(item): return item.get_aired() context.set_content_type(kodion.constants.content_type.EPISODES) context.add_sort_method(kodion.constants.sort_method.UNSORTED, kodion.constants.sort_method.VIDEO_YEAR, kodion.constants.sort_method.VIDEO_RUNTIME) result = [] content = json_data.get('result', {}).get('content', {}) max_page = int(content.get('maxpage', 1)) page = int(content.get('page', 1)) film_list = content.get('filmlist', {}) result_films = [] add_next_page_item = True keys = sorted(film_list.keys()) for key in keys: film = film_list[key] # as soon as we find non-free episodes we don't provide pagination # the 'continue' should skip all non-free episodes free = str(film.get('free', '0')) if free == '0': add_next_page_item = False continue title = film['headlinelong'] format_title = film['formatlong'] if show_format_title: title = format_title + ' - ' + title pass film_item = VideoItem( title, context.create_uri(['play'], {'video_id': film['id']})) film_item.set_studio(format_title) film_item.add_artist(format_title) format_id = film['formatid'] # set image image = self.get_client(context).get_config( )['images']['format-thumbnail-url'].replace( '%FORMAT_ID%', format_id) pictures = film.get('pictures', []) if pictures and isinstance(pictures, dict): image = film['pictures']['pic_0'] image = self.get_client(context).get_config( )['images']['episode-thumbnail-url'].replace( '%PIC_ID%', image) pass film_item.set_image(image) # set fanart fanart = self.get_client( context).get_config()['images']['format-fanart-url'].replace( '%FORMAT_ID%', format_id) film_item.set_fanart(fanart) # season and episode film_item.set_season(film.get('season', '1')) film_item.set_episode(film.get('episode', '1')) # aired aired = datetime_parser.parse(film['sendestart']) film_item.set_aired_from_datetime(aired) film_item.set_date_from_datetime(aired) film_item.set_year_from_datetime(aired) # duration duration = datetime_parser.parse(film['duration']) film_item.set_duration(duration.hour, duration.minute, duration.second) # plot film_item.set_plot(film['articlelong']) context_menu = [( context.localize(self._local_map['now.watch_later']), 'RunPlugin(%s)' % context.create_uri([kodion.constants.paths.WATCH_LATER, 'add'], {'item': kodion.items.to_jsons(film_item)})) ] film_item.set_context_menu(context_menu) result_films.append(film_item) pass if sort: result_films = sorted(result_films, key=_sort_newest, reverse=True) pass result.extend(result_films) if add_next_page_item and page < max_page: new_params = {} new_params.update(context.get_params()) new_params['page'] = page + 1 next_page_item = kodion.items.NextPageItem( context, current_page=page, fanart=self.get_fanart(context)) result.append(next_page_item) pass return result
def _list_films(self, context, re_match, json_data, show_format_title=False, sort=True): context.get_ui().set_view_mode('videos') def _sort_newest(item): return item.get_aired() context.set_content_type(kodion.constants.content_type.EPISODES) context.add_sort_method(kodion.constants.sort_method.UNSORTED, kodion.constants.sort_method.VIDEO_YEAR, kodion.constants.sort_method.VIDEO_RUNTIME) result = [] content = json_data.get('result', {}).get('content', {}) max_page = int(content.get('maxpage', 1)) page = int(content.get('page', 1)) film_list = content.get('filmlist', {}) result_films = [] add_next_page_item = True keys = sorted(film_list.keys()) for key in keys: film = film_list[key] # as soon as we find non-free episodes we don't provide pagination # the 'continue' should skip all non-free episodes free = str(film.get('free', '0')) if free == '0': add_next_page_item = False continue title = film['headlinelong'] format_title = film['formatlong'] if show_format_title: title = format_title + ' - ' + title pass film_item = VideoItem(title, context.create_uri(['play'], {'video_id': film['id']})) film_item.set_studio(format_title) film_item.add_artist(format_title) format_id = film['formatid'] # set image image = self.get_client(context).get_config()['images']['format-thumbnail-url'].replace('%FORMAT_ID%', format_id) pictures = film.get('pictures', []) if pictures and isinstance(pictures, dict): image = film['pictures']['pic_0'] image = self.get_client(context).get_config()['images']['episode-thumbnail-url'].replace('%PIC_ID%', image) pass film_item.set_image(image) # set fanart fanart = self.get_client(context).get_config()['images']['format-fanart-url'].replace('%FORMAT_ID%', format_id) film_item.set_fanart(fanart) # season and episode film_item.set_season(film.get('season', '1')) film_item.set_episode(film.get('episode', '1')) # aired aired = datetime_parser.parse(film['sendestart']) film_item.set_aired_from_datetime(aired) film_item.set_date_from_datetime(aired) film_item.set_year_from_datetime(aired) # duration duration = datetime_parser.parse(film['duration']) film_item.set_duration(duration.hour, duration.minute, duration.second) # plot film_item.set_plot(film['articlelong']) context_menu = [(context.localize(self._local_map['now.watch_later']), 'RunPlugin(%s)' % context.create_uri([kodion.constants.paths.WATCH_LATER, 'add'], {'item': kodion.items.to_jsons(film_item)}))] film_item.set_context_menu(context_menu) result_films.append(film_item) pass if sort: result_films = sorted(result_films, key=_sort_newest, reverse=True) pass result.extend(result_films) if add_next_page_item and page < max_page: new_params = {} new_params.update(context.get_params()) new_params['page'] = page + 1 next_page_item = kodion.items.NextPageItem(context, current_page=page, fanart=self.get_fanart(context)) result.append(next_page_item) pass return result
def _videos_to_items(self, context, videos, prepend_format_title=False): result = [] # show only free videos if not logged in or or the setting is enabled show_only_free_videos = not self.is_logged_in() or context.get_settings().get_bool('nowtv.videos.only_free', False) for video in videos: if show_only_free_videos and not video['free'] and not video['payed']: continue video_params = {'video_path': video['path'], 'video_id': str(video['id'])} title = video['title'] if prepend_format_title: title = '%s - %s' % (video['format'], title) pass if not video['free'] and not video['payed']: title = '[B][%s][/B] - %s' % (video['price'], title) video_params['free'] = '0' video_params['price'] = video['price'] pass video_item = VideoItem(title, context.create_uri([video['channel'], 'play'], video_params)) duration = datetime_parser.parse(video['duration']) video_item.set_duration(duration.hour, duration.minute, duration.second) published = datetime_parser.parse(video['published']) video_item.set_aired_from_datetime(published) video_item.set_date_from_datetime(published) video_item.set_year_from_datetime(published) video_item.set_studio(video['format']) video_item.add_artist(video['format']) video_item.set_episode(video['episode']) video_item.set_season(video['season']) video_item.set_plot(video['plot']) video_item.set_image(video['images']['thumb']) video_item.set_fanart(video['images']['fanart']) context_menu = [] if self.is_logged_in(): if context.get_path() == '/nowtv/watch_later/list/': context_menu = [(context.localize(self._local_map['nowtv.remove_from_watch_later']), 'RunPlugin(%s)' % context.create_uri(['nowtv', 'watch_later', 'delete'], {'video_id': video['id']}))] pass else: context_menu = [(context.localize(self._local_map['nowtv.add_to_watch_later']), 'RunPlugin(%s)' % context.create_uri(['nowtv', 'watch_later', 'add'], {'video_id': video['id']}))] pass else: context_menu = [(context.localize(self._local_map['nowtv.add_to_watch_later']), 'RunPlugin(%s)' % context.create_uri([kodion.constants.paths.WATCH_LATER, 'add'], {'item': kodion.items.to_jsons(video_item)}))] pass if context_menu: video_item.set_context_menu(context_menu) pass result.append(video_item) pass return result
def _videos_to_items(self, context, videos, prepend_format_title=False): result = [] # show only free videos if not logged in or or the setting is enabled show_only_free_videos = not self.is_logged_in( ) and context.get_settings().get_bool('nowtv.videos.only_free', False) for video in videos: if show_only_free_videos and not video['free'] and not video[ 'payed']: continue video_params = { 'video_path': video['path'], 'video_id': str(video['id']) } title = video['title'] if prepend_format_title: title = '%s - %s' % (video['format'], title) pass if not video['free'] and not video['payed']: title = '[B][%s][/B] - %s' % (video['price'], title) video_params['free'] = '0' video_params['price'] = video['price'] pass video_item = VideoItem( title, context.create_uri([video['channel'], 'play'], video_params)) duration = datetime_parser.parse(video['duration']) video_item.set_duration(duration.hour, duration.minute, duration.second) published = datetime_parser.parse(video['published']) video_item.set_aired_from_datetime(published) video_item.set_date_from_datetime(published) video_item.set_year_from_datetime(published) video_item.set_studio(video['format']) video_item.add_artist(video['format']) video_item.set_episode(video['episode']) video_item.set_season(video['season']) video_item.set_plot(video['plot']) video_item.set_image(video['images']['thumb']) video_item.set_fanart(video['images']['fanart']) context_menu = [] if self.is_logged_in(): if context.get_path() == '/nowtv/watch_later/list/': context_menu = [ (context.localize( self._local_map['nowtv.remove_from_watch_later']), 'RunPlugin(%s)' % context.create_uri(['nowtv', 'watch_later', 'delete'], {'video_id': video['id']})) ] pass else: context_menu = [ (context.localize( self._local_map['nowtv.add_to_watch_later']), 'RunPlugin(%s)' % context.create_uri(['nowtv', 'watch_later', 'add'], {'video_id': video['id']})) ] pass else: context_menu = [ (context.localize( self._local_map['nowtv.add_to_watch_later']), 'RunPlugin(%s)' % context.create_uri( [kodion.constants.paths.WATCH_LATER, 'add'], {'item': kodion.items.to_jsons(video_item)})) ] pass if context_menu: video_item.set_context_menu(context_menu) pass result.append(video_item) pass return result
def _videos_to_items(self, context, videos, prepend_format_title=False): result = [] # show only free videos if not logged in or or the setting is enabled show_only_free_videos = not self.is_logged_in() and context.get_settings().get_bool( "nowtv.videos.only_free", False ) for video in videos: if show_only_free_videos and not video["free"] and not video["payed"]: continue video_params = {"video_path": video["path"], "video_id": str(video["id"])} title = video["title"] if prepend_format_title: title = "%s - %s" % (video["format"], title) pass if not video["free"] and not video["payed"]: title = "[B][%s][/B] - %s" % (video["price"], title) video_params["free"] = "0" video_params["price"] = video["price"] pass video_item = VideoItem(title, context.create_uri([video["channel"], "play"], video_params)) duration = datetime_parser.parse(video["duration"]) video_item.set_duration(duration.hour, duration.minute, duration.second) published = datetime_parser.parse(video["published"]) video_item.set_aired_from_datetime(published) video_item.set_date_from_datetime(published) video_item.set_year_from_datetime(published) video_item.set_studio(video["format"]) video_item.add_artist(video["format"]) video_item.set_episode(video["episode"]) video_item.set_season(video["season"]) video_item.set_plot(video["plot"]) video_item.set_image(video["images"]["thumb"]) video_item.set_fanart(video["images"]["fanart"]) context_menu = [] if self.is_logged_in(): if context.get_path() == "/nowtv/watch_later/list/": context_menu = [ ( context.localize(self._local_map["nowtv.remove_from_watch_later"]), "RunPlugin(%s)" % context.create_uri(["nowtv", "watch_later", "delete"], {"video_id": video["id"]}), ) ] pass else: context_menu = [ ( context.localize(self._local_map["nowtv.add_to_watch_later"]), "RunPlugin(%s)" % context.create_uri(["nowtv", "watch_later", "add"], {"video_id": video["id"]}), ) ] pass else: context_menu = [ ( context.localize(self._local_map["nowtv.add_to_watch_later"]), "RunPlugin(%s)" % context.create_uri( [kodion.constants.paths.WATCH_LATER, "add"], {"item": kodion.items.to_jsons(video_item)} ), ) ] pass if context_menu: video_item.set_context_menu(context_menu) pass result.append(video_item) pass return result