示例#1
0
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'])
示例#2
0
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, {}
示例#3
0
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, {}
示例#4
0
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, {}
示例#6
0
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')