def list_discoverdir(self, **kwargs): items = [] params = merge_two_dicts(kwargs, {'info': 'user_discover'}) artwork = {'thumb': u'{}/resources/poster.png'.format(ADDONPATH)} for i in ['movie', 'tv']: item = { 'label': u'{} {}'.format(ADDON.getLocalizedString(32174), convert_type(i, 'plural')), 'params': merge_two_dicts(params, {'tmdb_type': i}), 'infoproperties': {'specialsort': 'top'}, 'art': artwork} items.append(item) history = get_search_history('discover') history.reverse() for x, i in enumerate(history): item_params = merge_two_dicts(kwargs, i.get('params', {})) edit_params = {'info': 'user_discover', 'tmdb_type': item_params.get('tmdb_type'), 'method': 'edit', 'idx': x} name_params = {'info': 'dir_discover', 'tmdb_type': item_params.get('tmdb_type'), 'method': 'rename', 'idx': x} dele_params = {'info': 'dir_discover', 'tmdb_type': item_params.get('tmdb_type'), 'method': 'delete', 'idx': x} item = { 'label': i.get('label'), 'params': item_params, 'art': artwork, 'context_menu': [ (xbmc.getLocalizedString(21435), u'Container.Update({})'.format(encode_url(PLUGINPATH, **edit_params))), (xbmc.getLocalizedString(118), u'Container.Update({})'.format(encode_url(PLUGINPATH, **name_params))), (xbmc.getLocalizedString(117), u'Container.Update({})'.format(encode_url(PLUGINPATH, **dele_params)))]} items.append(item) if history: item = { 'label': ADDON.getLocalizedString(32237), 'art': artwork, 'params': merge_two_dicts(params, {'info': 'dir_discover', 'clear_cache': 'True'})} items.append(item) return items
def list_discoverdir_router(self, **kwargs): if kwargs.get('clear_cache') != 'True' and kwargs.get( 'method') not in ['delete', 'rename']: return self.list_discoverdir(**kwargs) params = kwargs.copy() params.pop('clear_cache', None) params.pop('method', None) params.pop('idx', None) self.container_update = '{},replace'.format( encode_url(PLUGINPATH, **params)) if kwargs.get('clear_cache') == 'True': set_search_history('discover', clear_cache=True) elif kwargs.get('method') == 'delete': idx = try_int(kwargs.get('idx', -1)) if idx == -1: return set_search_history('discover', replace=idx) elif kwargs.get('method') == 'rename': idx = try_int(kwargs.get('idx', -1)) if idx == -1: return history = get_search_history('discover') try: item = history[idx] except IndexError: return if not item: return item['label'] = xbmcgui.Dialog().input( 'Rename', defaultt=item.get('label')) or item.get('label') set_search_history('discover', item, replace=idx)
def related_lists(tmdb_id=None, tmdb_type=None, season=None, episode=None, container_update=True, include_play=False, **kwargs): if not tmdb_id or not tmdb_type: return items = get_basedir_details(tmdb_type=tmdb_type, tmdb_id=tmdb_id, season=season, episode=episode, include_play=include_play) if not items or len(items) <= 1: return choice = xbmcgui.Dialog().contextmenu([i.get('label') for i in items]) if choice == -1: return item = items[choice] params = item.get('params') if not params: return item['params']['tmdb_id'] = tmdb_id item['params']['tmdb_type'] = tmdb_type if not container_update: return item path = format_folderpath( path=encode_url(path=item.get('path'), **item.get('params')), info=item['params']['info'], play= 'RunPlugin', # Use RunPlugin to avoid window manager info dialog crash with Browse method content='pictures' if item['params']['info'] in ['posters', 'fanart'] else 'videos') xbmc.executebuiltin(try_encode(path))
def sort_list(**kwargs): sort_methods = get_sort_methods() x = xbmcgui.Dialog().contextmenu([i['name'] for i in sort_methods]) if x == -1: return for k, v in viewitems(sort_methods[x]['params']): kwargs[k] = v xbmc.executebuiltin(try_encode(format_folderpath(encode_url(**kwargs))))
def list_lists_search(self, query=None, **kwargs): if not query: kwargs['query'] = query = xbmcgui.Dialog().input(ADDON.getLocalizedString(32044)) if not kwargs['query']: return self.container_update = u'{},replace'.format(encode_url(PLUGINPATH, **kwargs)) items = self.trakt_api.get_list_of_lists(path=u'search/list?query={}'.format(query)) self.library = 'video' return items
def get_url(self): return encode_url(self.path, **self.params)