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 delete_search(name): storage = container.search_storage() if 'search_recent' in storage: recent = storage['search_recent'] recent.remove(str(name)) storage['search_recent'] = recent plugin.refresh()
def new_search(section): storage = container.search_storage() if 'search_term' in storage: value = storage['search_term'] else: value = plugin.keyboard(heading=lang(40310)) if not value: return storage['search_term'] = value plugin.redirect(plugin.url_for('do_search', section=section, name=value, new=True))
def do_search(section, name): plugin.set_content('movies') section = Section.find(section) sf = container.search_filter(section=section, name=str(name)) if not make_search(sf): notify(lang(40312) % ensure_unicode(name)) elif plugin.request.arg('new'): storage = container.search_storage() recent = storage.get('search_recent', []) if name in recent: recent.remove(name) recent.append(name) storage['search_recent'] = recent count = plugin.get_setting('search-items-count', int) if len(recent) > count: del recent[:len(recent)-count]
def clear_search_history(): storage = container.search_storage() del storage['search_recent'] plugin.refresh()