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)
Exemple #3
0
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))
Exemple #4
0
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))))
Exemple #5
0
 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)