def videolist(self, query, page='0'): api = NetworkTenVideo(self.plugin.cached(TTL=config.CACHE_TTL)) if query == 'featured': homepage = api.get_homepage() videoIds = [] for item in homepage: videoIds.append(item['brightcoveid']) videos = api.find_videos_by_ids(video_ids = videoIds) else: querystring = query query = urlparse.parse_qs(query) query['page_number'] = page videos = api.search_videos(**query) fanart_url = None if 'fanart' in self.request.args: fanart_url = self.request.args['fanart'][0] update_listing = False if 'update' in self.request.args and self.request.args['update'][0]: update_listing = True videoItems = [] for video in videos.items: item = ListItem.from_dict( label=htmlparser.unescape(video.name), thumbnail=video.videoStillURL, is_playable=True, path=self.url_for('play.play', explicit=True, videoId=video.id) ) item.set_info( "video", self.get_item_info(video)) item.add_stream_info('video', { 'codec': 'h264', 'width': 944, 'height': 528, 'duration': float(video.length / 1000) }) item.add_stream_info('audio', { 'codec': 'aac', 'language': 'en', 'channels': 2 }) if fanart_url: item.set_property('fanart_image', fanart_url) videoItems.append(item) if videos.total_count > (videos.page_size * (int(page) + 1)): item = ListItem.from_dict( label='Next >>', path=self.url_for('videolist.videolist', query=querystring, page=str(int(page) + 1), fanart=fanart_url, update=True) ) if fanart_url: item.set_property('fanart_image', fanart_url) videoItems.insert(0, item) if int(page) > 0: item = ListItem.from_dict( label='<< Previous', path=self.url_for('videolist.videolist', query=querystring, page=str(int(page) - 1), fanart=fanart_url, update=True) ) if fanart_url: item.set_property('fanart_image', fanart_url) videoItems.insert(0, item) self.set_content('episodes') self.plugin.finish( items=videoItems, update_listing=update_listing, sort_methods=[SortMethod.UNSORTED, SortMethod.EPISODE, SortMethod.VIDEO_TITLE, SortMethod.VIDEO_RUNTIME])