Пример #1
0
def show_files(section, media_id, folder_id):
    scraper = container.scraper()
    section = Section.find(section)
    plugin.set_content("movies")
    files = scraper.get_files_cached(section, media_id, folder_id)
    plugin.add_items(itemify_file(f) for f in files)
    plugin.finish(sort_methods=["unsorted", "title", "duration", "size"])
Пример #2
0
def search_index(section):
    storage = container.search_storage()
    if 'search_term' in storage:
        del storage['search_term']
    context_menu = [
        (lang(40309), actions.background(plugin.url_for('clear_search_history')))
    ]
    items = [{
        'label': lang(34009),
        'path': plugin.url_for('new_search', section=section),
        'context_menu': context_menu,
        'replace_context_menu': True,
    }, {
        'label': lang(34010),
        'path': plugin.url_for('advanced_search', section=section),
        'context_menu': context_menu,
        'replace_context_menu': True,
    }]
    if 'search_recent' in storage:
        items.extend([{
            'label': s,
            'path': plugin.url_for('do_search', section=section, name=s),
            'context_menu': context_menu + [
                (lang(40311), actions.background(plugin.url_for('delete_search', name=s)))
            ],
            'replace_context_menu': True,
        } for s in reversed(storage['search_recent'])])
    plugin.finish(with_fanart(items))
Пример #3
0
def bookmarks_index(section):
    plugin.set_content("movies")
    section = Section.find(section)
    bookmarks = container.bookmarks().get(section)
    total = len(bookmarks)
    for b in batch(reversed(bookmarks)):
        if abort_requested():
            break
        items = itemify_bookmarks(b)
        plugin.add_items(items, total)
    plugin.finish(sort_methods=["unsorted", "title", "video_year", "video_rating"], cache_to_disc=False)
Пример #4
0
def library_items():
    scraper = container.scraper()
    library_manager = container.library_manager()
    for section, media_ids in library_manager.stored_media_ids().items():
        for ids in batch(media_ids):
            if abort_requested():
                break
            all_folders = scraper.get_folders_bulk(section, ids)
            all_details = scraper.get_details_bulk(section, ids)
            items = [
                itemify_library_folder(all_details[media_id], f)
                for media_id, folders in all_folders.iteritems()
                for f in folders
                if library_manager.has_folder(f.id)
            ]
            plugin.add_items(items)
    plugin.finish(sort_methods=["title"], cache_to_disc=False)
Пример #5
0
def show_folders(section, media_id):
    section = Section.find(section)
    scraper = container.scraper()
    meta_cache = container.meta_cache()
    meta = meta_cache.setdefault(media_id, {})
    plugin.set_content("movies")
    folders = scraper.get_folders_cached(section, media_id)
    total_size = sum(f.size for f in folders)
    meta["total_size"] = total_size
    for f in folders:
        if len(f.files) == 1 and not meta.get("is_series"):
            item = itemify_file(f.files[0], can_mark_watched=1)
            item["label"] = tf.folder_file_title(f, f.files[0])
            item["context_menu"] += library_context_menu(section, media_id, f.id)
        else:
            item = itemify_folder(f)
        plugin.add_item(item)
    plugin.finish(sort_methods=["unsorted", "title", "duration", "size"])
Пример #6
0
def make_search(sf, header=None, cache_to_disc=False, update_listing=False):
    skip = plugin.request.arg('skip')
    scraper = container.scraper()
    results = scraper.search_cached(sf, skip)
    if not results:
        return False
    if isinstance(results, Details):
        if header:
            plugin.add_items(with_fanart(header))
        item = itemify_single_result(results)
        plugin.finish(items=[item], cache_to_disc=cache_to_disc, update_listing=update_listing)
        return True

    total = len(results)
    items = []
    if skip:
        skip_prev = max(skip - sf.page_size, 0)
        total += 1
        items.append({
            'label': lang(34003),
            'path': plugin.request.url_with_params(skip=skip_prev)
        })
    elif header:
        items.extend(header)
        total += len(header)
    plugin.add_items(with_fanart(items), total)
    for batch_res in batch(results):
        if abort_requested():
            break
        items = itemify_search_results(sf.section, batch_res)
        plugin.add_items(items, total)
    items = []
    if scraper.has_more:
        skip_next = (skip or 0) + sf.page_size
        items.append({
            'label': lang(34004),
            'path': plugin.request.url_with_params(skip=skip_next)
        })
    plugin.finish(items=with_fanart(items),
                  sort_methods=['unsorted', 'date', 'title', 'video_year', 'video_rating'],
                  cache_to_disc=cache_to_disc,
                  update_listing=update_listing or skip is not None)
    return True