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['contexts'] lists = (lolomo.lists_by_context(contexts) if contexts else lolomo.lists.iteritems()) directory_items = [] for video_list_id, video_list in lists: if video_list['context'] != 'billboard': if exclude_lolomo_known: if g.is_known_menu_context(video_list['context']): continue menu_parameters = common.MenuIdParameters(id_values=video_list_id) if menu_parameters.is_menu_id: #Create a new submenu info in MAIN_MENU_ITEMS for reference when 'directory' find the menu data sub_menu_data = menu_data.copy() sub_menu_data['path'][1] = menu_parameters.context_id sub_menu_data['menu_title'] = video_list['displayName'] sub_menu_data['contexts'] = None sub_menu_data['show_in_menu'] = False sub_menu_data['force_videolistbyid'] = force_videolistbyid g.MAIN_MENU_ITEMS[menu_parameters.context_id] = sub_menu_data directory_items.append( _create_videolist_item( menu_parameters.context_id if menu_parameters.context_id and not force_videolistbyid else video_list_id, video_list, sub_menu_data)) finalize_directory(directory_items, g.CONTENT_FOLDER, title=menu_data['menu_title'])
def build_lolomo_category_listing(lolomo_cat_list, menu_data): """Build a folders listing of a LoLoMo category""" common_data = { 'profile_language_code': G.LOCAL_DB.get_profile_config('language', ''), 'supplemental_info_color': get_color_name(G.ADDON.getSettingInt('supplemental_info_color')) } directory_items = [] for list_id, summary_data, video_list in lolomo_cat_list.lists(): if summary_data['length'] == 0: # Do not show empty lists continue menu_parameters = common.MenuIdParameters(list_id) # Create dynamic sub-menu info in MAIN_MENU_ITEMS sub_menu_data = menu_data.copy() sub_menu_data['path'] = [menu_data['path'][0], list_id, list_id] sub_menu_data['loco_known'] = False sub_menu_data['loco_contexts'] = None sub_menu_data['content_type'] = menu_data.get('content_type', G.CONTENT_SHOW) sub_menu_data['title'] = summary_data['displayName'] sub_menu_data['initial_menu_id'] = menu_data.get( 'initial_menu_id', menu_data['path'][1]) sub_menu_data['no_use_cache'] = menu_parameters.type_id == '101' G.LOCAL_DB.set_value(list_id, sub_menu_data, TABLE_MENU_DATA) directory_item = _create_category_item(list_id, video_list, sub_menu_data, common_data, summary_data) directory_items.append(directory_item) G.CACHE_MANAGEMENT.execute_pending_db_ops() return directory_items, {}
def build_lolomo_listing(lolomo_list, menu_data, force_use_videolist_id=False, exclude_lolomo_known=False): """Build a listing of video lists (LoLoMo)""" # If contexts are specified (lolomo_contexts in the menu_data), then the lolomo_list data will be filtered by # the specified contexts, otherwise all LoLoMo items will be added common_data = { 'menu_data': menu_data, 'supplemental_info_color': get_color_name(g.ADDON.getSettingInt('supplemental_info_color')), 'profile_language_code': g.LOCAL_DB.get_profile_config('language', '') } contexts = menu_data.get('lolomo_contexts') items_list = lolomo_list.lists_by_context(contexts) if contexts else iteritems(lolomo_list.lists) directory_items = [] for video_list_id, video_list in items_list: menu_parameters = common.MenuIdParameters(video_list_id) if not menu_parameters.is_menu_id: continue if exclude_lolomo_known and menu_parameters.type_id != '28': # Keep only the menus genre continue list_id = (menu_parameters.context_id if menu_parameters.context_id and not force_use_videolist_id else video_list_id) # Create dynamic sub-menu info in MAIN_MENU_ITEMS sub_menu_data = menu_data.copy() sub_menu_data['path'] = [menu_data['path'][0], list_id, list_id] sub_menu_data['lolomo_known'] = False sub_menu_data['lolomo_contexts'] = None sub_menu_data['content_type'] = menu_data.get('content_type', g.CONTENT_SHOW) sub_menu_data['force_use_videolist_id'] = force_use_videolist_id sub_menu_data['title'] = video_list['displayName'] sub_menu_data['initial_menu_id'] = menu_data.get('initial_menu_id', menu_data['path'][1]) g.LOCAL_DB.set_value(list_id, sub_menu_data, TABLE_MENU_DATA) directory_items.append(_create_videolist_item(list_id, video_list, sub_menu_data, common_data)) return directory_items, {}
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_loco_listing(loco_list, menu_data, force_use_videolist_id=False, exclude_loco_known=False): """Build a listing of video lists (LoCo)""" # If contexts are specified (loco_contexts in the menu_data), then the loco_list data will be filtered by # the specified contexts, otherwise all LoCo items will be added common_data = { 'menu_data': menu_data, 'supplemental_info_color': get_color_name(G.ADDON.getSettingInt('supplemental_info_color')), 'profile_language_code': G.LOCAL_DB.get_profile_config('language', '') } contexts = menu_data.get('loco_contexts') items_list = loco_list.lists_by_context( contexts) if contexts else loco_list.lists.items() directory_items = [] for video_list_id, video_list in items_list: menu_parameters = common.MenuIdParameters(video_list_id) if not menu_parameters.is_menu_id: continue list_id = (menu_parameters.context_id if menu_parameters.context_id and not force_use_videolist_id else video_list_id) # Keep only some type of menus: 28=genre, 101=top 10 if exclude_loco_known: if menu_parameters.type_id not in ['28', '101']: continue if menu_parameters.type_id == '101': # Top 10 list can be obtained only with 'video_list' query force_use_videolist_id = True # Create dynamic sub-menu info in MAIN_MENU_ITEMS sub_menu_data = menu_data.copy() sub_menu_data['path'] = [menu_data['path'][0], list_id, list_id] sub_menu_data['loco_known'] = False sub_menu_data['loco_contexts'] = None sub_menu_data['content_type'] = menu_data.get('content_type', G.CONTENT_SHOW) sub_menu_data['force_use_videolist_id'] = force_use_videolist_id sub_menu_data['title'] = video_list['displayName'] sub_menu_data['initial_menu_id'] = menu_data.get( 'initial_menu_id', menu_data['path'][1]) sub_menu_data['no_use_cache'] = menu_parameters.type_id == '101' G.LOCAL_DB.set_value(list_id, sub_menu_data, TABLE_MENU_DATA) directory_items.append( _create_videolist_item(list_id, video_list, sub_menu_data, common_data)) G.CACHE_MANAGEMENT.execute_pending_db_ops() return directory_items, {}
def build_lolomo_listing(lolomo, menu_data, force_videolistbyid=False, exclude_lolomo_known=False): """Build a listing of video 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 iter( list(lolomo.lists.items()))) 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, sel_video_list_id ] sub_menu_data['lolomo_known'] = False sub_menu_data['lolomo_contexts'] = None sub_menu_data['content_type'] = menu_data.get( 'content_type', g.CONTENT_SHOW) sub_menu_data['force_videolistbyid'] = force_videolistbyid sub_menu_data['main_menu'] = menu_data['main_menu']\ if menu_data.get('main_menu') else menu_data.copy() sub_menu_data.update({'title': video_list['displayName']}) g.LOCAL_DB.set_value(sel_video_list_id, sub_menu_data, TABLE_MENU_DATA) directory_items.append( _create_videolist_item(sel_video_list_id, video_list, sub_menu_data)) parent_menu_data = g.LOCAL_DB.get_value(menu_data['path'][1], table=TABLE_MENU_DATA, data_type=dict) finalize_directory(directory_items, g.CONTENT_FOLDER, title=parent_menu_data['title'], sort_type='sort_label') return menu_data.get('view')