def build_video_listing(video_list, menu_data, pathitems=None): """Build a video listing""" directory_items = [ _create_video_item(videoid_value, video, video_list) for videoid_value, video in video_list.videos.iteritems() ] if video_list.get('genreId'): directory_items.append( (common.build_url( ['genres', unicode(video_list['genreId'])], mode=g.MODE_DIRECTORY), list_item_skeleton(common.get_local_string(30088), icon='DefaultAddSource.png', description=common.get_local_string(30090)), True)) # TODO: Implement browsing of subgenres # directory_items.append( # (common.build_url(pathitems=['genres', genre_id, 'subgenres'], # mode=g.MODE_DIRECTORY), # list_item_skeleton('Browse subgenres...'), # True)) add_items_previous_next_page(directory_items, pathitems, video_list.perpetual_range_selector) finalize_directory(directory_items, menu_data.get('content_type', g.CONTENT_SHOW), title=g.get_menu_title(menu_data['path'][1])) return menu_data.get('view')
def build_subgenre_listing(subgenre_list, menu_data): """Build a listing of subgenre lists.""" directory_items = [] for index, subgenre_data in subgenre_list.lists: # Create a new submenu info in MAIN_MENU_ITEMS for reference when 'directory' find the menu data sel_video_list_id = unicode(subgenre_data['id']) sub_menu_data = menu_data.copy() sub_menu_data['path'] = [ menu_data['path'][0], sel_video_list_id, sel_video_list_id ] sub_menu_data['lolomo_known'] = False sub_menu_data['lolomo_contexts'] = None sub_menu_data['content_type'] = g.CONTENT_SHOW sub_menu_data['main_menu'] = menu_data['main_menu'] if menu_data.get( 'main_menu') else menu_data.copy() g.PERSISTENT_STORAGE['sub_menus'][sel_video_list_id] = sub_menu_data g.PERSISTENT_STORAGE['menu_titles'][sel_video_list_id] = subgenre_data[ 'name'] directory_items.append( _create_subgenre_item(sel_video_list_id, subgenre_data, sub_menu_data)) g.PERSISTENT_STORAGE.commit() finalize_directory(directory_items, menu_data.get('content_type', g.CONTENT_SHOW), title=g.get_menu_title(menu_data['path'][1]), sort_type='sort_label') return menu_data.get('view')
def build_lolomo_listing(lolomo, menu_data, force_videolistbyid=False, exclude_lolomo_known=False): """Build a listing of vieo lists (LoLoMo). Only show those lists with a context specified context if contexts is set.""" contexts = menu_data['lolomo_contexts'] lists = (lolomo.lists_by_context(contexts) if contexts else lolomo.lists.iteritems()) directory_items = [] for video_list_id, video_list in lists: menu_parameters = common.MenuIdParameters(id_values=video_list_id) if exclude_lolomo_known: # Keep only the menus genre if menu_parameters.type_id != '28': continue if menu_parameters.is_menu_id: # Create a new submenu info in MAIN_MENU_ITEMS for reference when 'directory' find the menu data sel_video_list_id = menu_parameters.context_id if menu_parameters.context_id and not force_videolistbyid else video_list_id sub_menu_data = menu_data.copy() sub_menu_data['path'] = [menu_data['path'][0], sel_video_list_id] sub_menu_data['lolomo_known'] = False sub_menu_data['lolomo_contexts'] = None sub_menu_data['show_in_menu'] = False sub_menu_data['force_videolistbyid'] = force_videolistbyid g.PERSISTENT_STORAGE['sub_menus'][sel_video_list_id] = sub_menu_data g.PERSISTENT_STORAGE['menu_titles'][sel_video_list_id] = video_list['displayName'] directory_items.append(_create_videolist_item(sel_video_list_id, video_list, sub_menu_data)) g.PERSISTENT_STORAGE.commit() finalize_directory(directory_items, g.CONTENT_FOLDER, title=g.get_menu_title(menu_data['path'][1]))
def build_video_listing(video_list, menu_data, pathitems=None, genre_id=None): """Build a video listing""" directory_items = [ _create_video_item(videoid_value, video, video_list) for videoid_value, video in video_list.videos.iteritems() ] # If genre_id exists add possibility to browse lolomos subgenres if genre_id: menu_id = 'subgenre_' + genre_id sub_menu_data = menu_data.copy() sub_menu_data['path'] = [menu_data['path'][0], menu_id, genre_id] sub_menu_data['lolomo_known'] = False sub_menu_data['lolomo_contexts'] = None sub_menu_data['content_type'] = g.CONTENT_SHOW sub_menu_data['main_menu'] = menu_data['main_menu'] if menu_data.get( 'main_menu') else menu_data.copy() g.PERSISTENT_STORAGE['sub_menus'][menu_id] = sub_menu_data g.PERSISTENT_STORAGE['menu_titles'][menu_id] = common.get_local_string( 30089) g.PERSISTENT_STORAGE.commit() directory_items.insert( 0, (common.build_url(['genres', menu_id, genre_id], mode=g.MODE_DIRECTORY), list_item_skeleton( common.get_local_string(30089), icon='DefaultVideoPlaylists.png', description=common.get_local_string(30088)), True)) add_items_previous_next_page(directory_items, pathitems, video_list.perpetual_range_selector, genre_id) # At the moment it is not possible to make a query with results sorted for the 'mylist', # so we adding the sort order of kodi sort_type = 'sort_nothing' if menu_data['path'][1] == 'myList': sort_type = 'sort_label_ignore_folders' finalize_directory(directory_items, menu_data.get('content_type', g.CONTENT_SHOW), title=g.get_menu_title(menu_data['path'][1]), sort_type=sort_type) return menu_data.get('view')