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"])
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))
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)
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)
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"])
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