def build_mainmenu_listing(loco_list):
    """Builds the main menu listing (my list, continue watching, etc.)"""
    from resources.lib.kodi.context_menu import generate_context_menu_mainmenu
    directory_items = []
    common_data = {
        'profile_language_code':
        G.LOCAL_DB.get_profile_config('language', ''),
        'supplemental_info_color':
        get_color_name(G.ADDON.getSettingInt('supplemental_info_color'))
    }
    for menu_id, data in G.MAIN_MENU_ITEMS.items():
        if data.get('has_show_setting',
                    True) and not G.ADDON.getSettingBool('_'.join(
                        ('show_menu', menu_id))):
            continue
        if data['loco_known']:
            list_id, video_list = loco_list.find_by_context(
                data['loco_contexts'][0])
            if not list_id:
                continue
            menu_title = video_list['displayName']
            directory_item = _create_videolist_item(list_id,
                                                    video_list,
                                                    data,
                                                    common_data,
                                                    static_lists=True)
            directory_item[1].addContextMenuItems(
                generate_context_menu_mainmenu(menu_id))
            directory_items.append(directory_item)
        else:
            menu_title = common.get_local_string(data['label_id']) if data.get(
                'label_id') else 'Missing menu title'
            menu_description = (common.get_local_string(data['description_id'])
                                if data['description_id'] is not None else '')
            list_item = ListItemW(label=menu_title)
            list_item.setArt({'icon': data['icon']})
            list_item.setInfo('video', {'plot': menu_description})
            list_item.addContextMenuItems(
                generate_context_menu_mainmenu(menu_id))
            directory_items.append(
                (common.build_url(data['path'],
                                  mode=G.MODE_DIRECTORY), list_item, True))
        # Save the menu titles, to reuse it when will be open the content of menus
        G.LOCAL_DB.set_value(menu_id, {'title': menu_title}, TABLE_MENU_DATA)
    # Add "Profiles" menu
    pfl_list_item = ListItemW(label=common.get_local_string(13200))
    pfl_list_item.setArt({'icon': 'DefaultUser.png'})
    directory_items.append(
        (common.build_url(['profiles'],
                          mode=G.MODE_DIRECTORY), pfl_list_item, True))
    G.CACHE_MANAGEMENT.execute_pending_db_ops()
    return directory_items, {}
Ejemplo n.º 2
0
def build_mainmenu_listing(lolomo_list):
    """Builds the main menu listing (my list, continue watching, etc.)"""
    from resources.lib.kodi.context_menu import generate_context_menu_mainmenu
    directory_items = []
    common_data = {
        'profile_language_code': g.LOCAL_DB.get_profile_config('language', ''),
        'supplemental_info_color': get_color_name(g.ADDON.getSettingInt('supplemental_info_color'))
    }
    for menu_id, data in iteritems(g.MAIN_MENU_ITEMS):
        if not g.ADDON.getSettingBool('_'.join(('show_menu', menu_id))):
            continue
        if data['lolomo_known']:
            list_id, video_list = lolomo_list.find_by_context(data['lolomo_contexts'][0])
            if not list_id:
                continue
            menu_title = video_list['displayName']
            dict_item = _create_videolist_item(list_id, video_list, data, common_data, static_lists=True)
        else:
            menu_title = common.get_local_string(data['label_id']) if data.get('label_id') else 'Missing menu title'
            menu_description = (common.get_local_string(data['description_id'])
                                if data['description_id'] is not None
                                else '')
            dict_item = {
                'url': common.build_url(data['path'], mode=g.MODE_DIRECTORY),
                'title': menu_title,
                'art': {'icon': data['icon']},
                'info': {'plot': menu_description},  # The description
                'is_folder': True
            }
        dict_item['menu_items'] = generate_context_menu_mainmenu(menu_id)
        directory_items.append(dict_item)
        # Save the menu titles, to reuse it when will be open the content of menus
        g.LOCAL_DB.set_value(menu_id, {'title': menu_title}, TABLE_MENU_DATA)
    return directory_items, {}