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')
Exemple #2
0
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')
Exemple #3
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]))
Exemple #4
0
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')