Exemple #1
0
 def showsCollected(self, page):
     trakt_list = database.get(trakt.json_response, 12, 'shows/collected?page=%s&extended=full' % page)
     if trakt_list is None:
         return
     self.showListBuilder(trakt_list)
     tools.addDirectoryItem(tools.lang(32019).encode('utf-8'), 'showsCollected&page=%s' % (int(page) + 1), '', '')
     tools.closeDirectory('tvshows')
Exemple #2
0
    def showGenreList(self, args, page):
        if page is None:
            page = 1

        if args is None:
            genre_display_list = []
            genre_string = ''
            genres = database.get(trakt.json_response, 24, 'genres/shows')

            for genre in genres:
                genre_display_list.append(genre['name'])
            genre_multiselect = tools.showDialog.multiselect("{}: {}".format(tools.addonName, tools.lang(40298)), genre_display_list)

            if genre_multiselect is None: return
            for selection in genre_multiselect:
                genre_string += ', %s' % genres[selection]['slug']
            genre_string = genre_string[2:]

        else:
            genre_string = args

        page = int(page)
        trakt_list = database.get(trakt.json_response, 12,
                                  'shows/trending?genres=%s&page=%s' % (genre_string, page))
        if trakt_list is None:
            tools.cancel_directory()
            return

        self.showListBuilder(trakt_list)
        tools.addDirectoryItem(tools.lang(32019),
                               'showGenresGet&actionArgs=%s&page=%s' % (genre_string, page + 1))
        tools.closeDirectory('tvshows')
Exemple #3
0
 def myMovies(self):
     tools.addDirectoryItem(tools.lang(32063), 'onDeckMovies', None, None)
     tools.addDirectoryItem(tools.lang(32017), 'moviesMyCollection')
     tools.addDirectoryItem(tools.lang(32018), 'moviesMyWatchlist')
     tools.addDirectoryItem(tools.lang(32064), 'myTraktLists&actionArgs=movies')
     tools.addDirectoryItem(tools.lang(40344), 'myWatchedMovies&page=1')
     tools.closeDirectory('addons')
Exemple #4
0
    def home(self):
        for i in self.providers:
            args = {'debrid_provider': i, 'id': None}
            tools.addDirectoryItem(self.providers[i][0], 'myFilesFolder', isPlayable=False, isFolder=True,
                                   actionArgs=json.dumps(args))

        tools.closeDirectory('addons', sort='title')
Exemple #5
0
    def get_real_debrid_folder(self, args):
        internal_files = real_debrid.RealDebrid().torrentInfo(args['id'])
        selected_files = [
            i for i in internal_files['files'] if i['selected'] == 1
        ]

        for idx, file in enumerate(selected_files):
            file['link'] = internal_files['links'][idx]
        try:
            selected_files = sorted(selected_files, key=lambda i: i['path'])
        except:
            import traceback
            traceback.print_exc()

        for file in selected_files:
            file.update({'debrid_provider': 'real_debrid'})
            args = json.dumps(file)
            name = file['path']
            if name.startswith('/'):
                name = name.split('/')[-1]
            tools.addDirectoryItem(name,
                                   'myFilesPlay',
                                   None,
                                   None,
                                   isPlayable=True,
                                   isFolder=False,
                                   actionArgs=args)

        tools.closeDirectory('video')
Exemple #6
0
    def showYears(self, year=None, page=None):
        if year is None:
            current_year = int(
                tools.datetime_workaround(
                    datetime.datetime.today().strftime('%Y-%m-%d')).year)
            all_years = reversed(
                [year for year in range(1900, current_year + 1)])
            menu_items = []
            for year in all_years:
                menu_items.append(
                    tools.addDirectoryItem(str(year),
                                           'showYears&actionArgs=%s' % year,
                                           '',
                                           '',
                                           bulk_add=True))
            tools.addMenuItems(syshandle, menu_items, len(menu_items))
            tools.closeDirectory('tvshows')
        else:
            if page is None:
                page = 1

            trakt_list = trakt.json_response('shows/popular?years=%s&page=%s' %
                                             (year, page))
            self.showListBuilder(trakt_list)
            tools.addDirectoryItem(
                tools.lang(32019),
                'showYears&actionArgs=%s&page=%s' % (year, int(page) + 1),
                None, None)
            tools.closeDirectory('tvshows')
    def showsPopular(self, page):

        traktList = trakt.json_response('shows/popular?page=%s&extended=full' % page)

        self.showListBuilder(traktList)
        tools.addDirectoryItem(tools.lang(32019), 'showsPopular&page=%s' % (int(page) + 1), '', '')
        tools.closeDirectory('tvshows')
    def movieGenresList(self, args, page):
        if page is None:
            page = 1
        if args is None:
            genre_display_list = []
            genre_string = ''
            genres = database.get(trakt.json_response, 24, 'genres/movies')
            for genre in genres:
                genre_display_list.append(genre['name'])
            genre_multiselect = tools.showDialog.multiselect(tools.addonName + ": Genre Selection", genre_display_list)
            if genre_multiselect is None: return
            for selection in genre_multiselect:
                genre_string += ', %s' % genres[selection]['slug']
            genre_string = genre_string[2:]
        else:
            genre_string = tools.unquote(args)

        trakt_list = trakt.json_response('movies/popular?genres=%s&page=%s' % (genre_string, page))

        if trakt_list is None:
            return
        self.commonListBuilder(trakt_list)
        tools.addDirectoryItem(tools.lang(32019).encode('utf-8'),
                               'movieGenresGet&actionArgs=%s&page=%s' % (tools.quote(genre_string), int(page) + 1),
                               '', '', isFolder=True)

        tools.closeDirectory('movies', viewType=self.viewType)
Exemple #9
0
    def get_premiumize_folder(self, args):
        internal_files = premiumize.PremiumizeFunctions().list_folder(
            args['id'])
        for file in internal_files:
            file.update({'debrid_provider': 'premiumize'})
            actionArgs = json.dumps(file)
            if file['type'] == 'folder':
                isPlayable = False
                isFolder = True
                action = 'myFilesFolder'
            else:
                if not any(file['name'].endswith(ext)
                           for ext in source_utils.COMMON_VIDEO_EXTENSIONS):
                    continue
                isPlayable = True
                isFolder = False
                action = 'myFilesPlay'

            tools.addDirectoryItem(file['name'],
                                   action,
                                   None,
                                   None,
                                   isPlayable=isPlayable,
                                   isFolder=isFolder,
                                   actionArgs=actionArgs)

        tools.closeDirectory('addons')
Exemple #10
0
    def showGenreList(self, args, page):
        if page is None:
            page = 1

        if args is None:
            genre_display_list = []
            genre_string = ''
            genres = database.get(trakt.json_response, 24, 'genres/shows')

            for genre in genres:
                genre_display_list.append(genre['name'])
            genre_multiselect = tools.showDialog.multiselect(tools.addonName + ": Genre Selection", genre_display_list)

            if genre_multiselect is None: return
            for selection in genre_multiselect:
                genre_string += ', %s' % genres[selection]['slug']
            genre_string = genre_string[2:]

        else:
            genre_string = args

        page = int(page)
        trakt_list = database.get(trakt.json_response, 12,
                                 'shows/popular?genres=%s&page=%s&extended=full' % (genre_string, page))
        if trakt_list is None:
            return

        self.showListBuilder(trakt_list)
        tools.addDirectoryItem(tools.lang(32019).encode('utf-8'),
                               'showGenresGet&actionArgs=%s&page=%s' % (genre_string, page + 1), None, None)
        tools.closeDirectory('tvshows')
Exemple #11
0
    def getListItems(self, arguments, page):
        from resources.lib.modules import database
        page = int(page)

        arguments = json.loads(tools.unquote(arguments))
        media_type = arguments['type']
        username = tools.quote_plus(arguments['username'])
        url = 'users/%s/lists/%s/items/%s?extended=full' % (
            username, arguments['trakt_id'], media_type)
        list_items = database.get(self.json_response, 12, url, None, False)

        if list_items is None or len(list_items) == 0:
            return

        if media_type == 'movies':
            media_type = 'movie'

        if media_type == 'shows':
            media_type = 'show'

        page_limit = int(tools.getSetting('item.limit'))

        list_items = self.sort_list(arguments['sort_by'],
                                    arguments['sort_how'], list_items,
                                    media_type)

        list_items = tools.paginate_list(list_items, page, page_limit)

        next = False

        if len(list_items) == page_limit:
            next = True

        if media_type == 'show':
            list_items = [
                i['show'] for i in list_items
                if i['type'] == 'show' and i is not None
            ]
            from resources.lib.gui import tvshowMenus
            tvshowMenus.Menus().showListBuilder(list_items)

        if media_type == 'movie':
            list_items = [
                i['movie'] for i in list_items
                if i['type'] == 'movie' and i is not None
            ]
            from resources.lib.gui import movieMenus
            movieMenus.Menus().commonListBuilder(list_items)

        content_type = 'tvshows'

        if media_type == 'movie':
            content_type = 'movies'
        if next:
            tools.addDirectoryItem(
                'Next', 'traktList&page=%s&actionArgs=%s' %
                (page + 1, tools.quote(json.dumps(arguments))), None, None)

        tools.closeDirectory(content_type)
        return
    def providerMenu(self):

        tools.addDirectoryItem(tools.lang(40082), 'manualProviderUpdate', None,
                               None)
        tools.addDirectoryItem(tools.lang(40083), 'manageProviders', None,
                               None)
        tools.closeDirectory('addons')
Exemple #13
0
    def movieGenresList(self, args, page):
        if page is None:
            page = 1
        if args is None:
            genre_display_list = []
            genre_string = ''
            genres = database.get(trakt.json_response, 24, 'genres/movies')
            for genre in genres:
                genre_display_list.append(genre['name'])
            genre_multiselect = tools.showDialog.multiselect(
                '{}: {}'.format(tools.addonName, tools.lang(40298)),
                genre_display_list)
            if genre_multiselect is None: return
            for selection in genre_multiselect:
                genre_string += ', %s' % genres[selection]['slug']
            genre_string = genre_string[2:]
        else:
            genre_string = tools.unquote(args)

        trakt_list = trakt.json_response('movies/trending?genres=%s&page=%s' %
                                         (genre_string, page))

        if trakt_list is None:
            tools.cancel_directory()
            return
        self.commonListBuilder(trakt_list)
        tools.addDirectoryItem(tools.lang(32019),
                               'movieGenresGet&actionArgs=%s&page=%s' %
                               (tools.quote(genre_string), int(page) + 1),
                               isFolder=True)

        tools.closeDirectory('movies')
Exemple #14
0
    def getListItems(self, arguments, page):
        lists_database = lists.TraktSyncDatabase()
        paginate_lists = (
            tools.getSetting('general.paginatetraktlists') == 'true')
        arguments = json.loads(tools.unquote(arguments))
        media_type = arguments['type']
        list_items = ast.literal_eval(
            lists_database.get_list(arguments['trakt_id'], media_type,
                                    arguments['username'])['kodi_meta'])
        max_items = len(list_items)

        if paginate_lists:
            list_items = tools.paginate_list(
                list_items, int(page), int(tools.getSetting('item.limit')))

        if media_type in ['show', 'shows']:
            from resources.lib.gui import tvshowMenus
            tvshowMenus.Menus().showListBuilder(list_items)

        if media_type in ['movie', 'movies']:
            from resources.lib.gui import movieMenus
            movieMenus.Menus().commonListBuilder(list_items)

        content_type = 'tvshows'
        if media_type in ['movie', 'movies']:
            content_type = 'movies'

        if paginate_lists:
            limit = int(tools.getSetting('item.limit'))
            if int(page) * limit < max_items:
                tools.addDirectoryItem(
                    tools.lang(32019), 'traktList&page=%s&actionArgs=%s' %
                    (int(page) + 1, tools.quote(json.dumps(arguments))))
        tools.closeDirectory(content_type)
        return
Exemple #15
0
    def myTraktLists(self, media_type):

        lists = self.getLists()

        try:
            liked_lists = [
                i for i in self.json_response(
                    'users/likes/lists', limit=True, limitOverride=500)
            ]
            liked_lists = [i['list'] for i in liked_lists]
            lists += liked_lists

        except:

            import traceback
            traceback.print_exc()
            pass

        for user_list in lists:
            arguments = {
                'trakt_id': user_list['ids']['slug'],
                'username': user_list['user']['ids']['slug'],
                'type': media_type,
                'sort_how': user_list['sort_how'],
                'sort_by': user_list['sort_by']
            }

            tools.addDirectoryItem(
                user_list['name'], 'traktList&page=1&actionArgs=%s' %
                tools.quote(json.dumps(arguments)), None, None)

        tools.closeDirectory('addons')
        return
 def moviesTrending(self, page):
     trakt_list = database.get(trakt.json_response, 12, 'movies/trending?page=%s' % page)
     if trakt_list is None:
         return
     self.commonListBuilder(trakt_list)
     tools.addDirectoryItem(tools.lang(32019), 'moviesTrending&page=%s' % (int(page) + 1), '', '',
                            isFolder=True)
     tools.closeDirectory('movies')
 def moviesAnticipated(self, page):
     trakt_list = database.get(trakt.json_response, 12, 'movies/anticipated?page=%s' % page)
     if trakt_list is None:
         return
     self.commonListBuilder(trakt_list)
     tools.addDirectoryItem(tools.lang(32019).encode('utf-8'), 'moviesAnticipated&page=%s' % (int(page) + 1), '', '',
                            isFolder=True)
     tools.closeDirectory('movies', viewType=self.viewType)
 def moviesCollected(self, page):
     trakt_list = trakt.json_response('movies/collected?page=%s' % page)
     if trakt_list is None:
         return
     self.commonListBuilder(trakt_list)
     tools.addDirectoryItem(tools.lang(32019), 'moviesCollected&page=%s' % (int(page) + 1), '', '',
                            isFolder=True)
     tools.closeDirectory('movies')
Exemple #19
0
    def showsPlayed(self, page):
        traktList = database.get(trakt.json_response, 12,
                                 'shows/played?page=%s&extended=full' % page)

        self.showListBuilder(traktList)
        tools.addDirectoryItem(tools.lang(32019),
                               'showsPlayed&page=%s' % (int(page) + 1), '', '')
        tools.closeDirectory('tvshows')
 def movieGenres(self):
     tools.addDirectoryItem(tools.lang(32065).encode('utf-8'), 'movieGenresGet', '', '', isFolder=True)
     genres = database.get(trakt.json_response, 24, 'genres/movies')
     if genres is None:
         return
     for i in genres:
         tools.addDirectoryItem(i['name'], 'movieGenresGet&actionArgs=%s' % i['slug'], '', '', isFolder=True)
     tools.closeDirectory('addons', cacheToDisc=True)
Exemple #21
0
 def showsCollected(self, page):
     trakt_list = database.get(trakt.json_response, 12, 'shows/collected?page=%s' % page)
     if trakt_list is None:
         tools.cancel_directory()
         return
     self.showListBuilder(trakt_list)
     tools.addDirectoryItem(tools.lang(32019), 'showsCollected&page=%s' % (int(page) + 1))
     tools.closeDirectory('tvshows')
Exemple #22
0
 def moviesAnticipated(self, page):
     trakt_list = database.get(trakt.json_response, 12, 'movies/anticipated?page=%s' % page)
     if trakt_list is None:
         tools.cancel_directory()
         return
     self.commonListBuilder(trakt_list)
     tools.addDirectoryItem(tools.lang(32019), 'moviesAnticipated&page=%s' % (int(page) + 1),
                            isFolder=True)
     tools.closeDirectory('movies')
Exemple #23
0
 def myWatchedEpisodes(self, page):
     if page is None:
         page = 1
     watched_episodes = trakt.json_response('/sync/history/episodes/?page=%s' % page)
     self.mixedEpisodeBuilder(watched_episodes, sort=False, hide_watched=False, hide_unaired=False)
     page = int(page)
     tools.addDirectoryItem(tools.lang(32019),
                            'myWatchedEpisodes&page={}'.format(page + 1))
     tools.closeDirectory('episodes')
Exemple #24
0
 def movieGenres(self):
     tools.addDirectoryItem(tools.lang(32065), 'movieGenresGet', isFolder=True)
     genres = database.get(trakt.json_response, 24, 'genres/movies')
     if genres is None:
         tools.cancel_directory()
         return
     for i in genres:
         tools.addDirectoryItem(i['name'], 'movieGenresGet&actionArgs=%s' % i['slug'], isFolder=True)
     tools.closeDirectory('genres')
Exemple #25
0
 def myWatchedMovies(self, page):
     if page is None:
         page = 1
     watched_movies = trakt.json_response('/sync/history/movies/?page=%s' % page)
     self.commonListBuilder(watched_movies)
     page = int(page)
     tools.addDirectoryItem(tools.lang(32019),
                            'myWatchedMovies&page={}'.format(page + 1))
     tools.closeDirectory('movies')
    def showsUpdated(self, page):
        import datetime
        date = datetime.date.today() - datetime.timedelta(days=31)
        date = date.strftime('%Y-%m-%d')
        traktList = trakt.json_response('shows/updates/%s?page=%s&extended=full' % (date, page))

        self.showListBuilder(traktList)
        tools.addDirectoryItem(tools.lang(32019), 'showsUpdated&page=%s' % (int(page) + 1), '', '')
        tools.closeDirectory('tvshows')
Exemple #27
0
 def showsUpdated(self, page):
     import datetime
     date = datetime.date.today() - datetime.timedelta(days=31)
     date = date.strftime('%Y-%m-%d')
     trakt_list = database.get(trakt.json_response, 12, 'shows/updates/%s?page=%s&extended=full' % (date, page))
     if trakt_list is None:
         return
     self.showListBuilder(trakt_list)
     tools.addDirectoryItem(tools.lang(32019).encode('utf-8'), 'showsUpdated&page=%s' % (int(page) + 1), '', '')
     tools.closeDirectory('tvshows')
Exemple #28
0
 def showsWatched(self, page):
     trakt_list = database.get(trakt.json_response, 12,
                               'shows/watched?page=%s' % page)
     if trakt_list is None:
         return
     self.showListBuilder(trakt_list)
     tools.addDirectoryItem(tools.lang(32019),
                            'showsWatched&page=%s' % (int(page) + 1), '',
                            '')
     tools.closeDirectory('tvshows')
 def movieYears(self):
     from datetime import datetime
     year = int(datetime.today().year)
     years = []
     for i in range(year - 100, year + 1):
         years.append(i)
     years = sorted(years, reverse=True)
     for i in years:
         tools.addDirectoryItem(str(i), 'movieYearsMovies&actionArgs=%s&page=1' % i, '', '')
     tools.closeDirectory('addons')
 def moviesYears(self):
     from datetime import datetime
     year = int(datetime.today().year)
     years = []
     for i in range(year-100, year+1):
         years.append(i)
     years = sorted(years, reverse=True)
     for i in years:
         tools.addDirectoryItem(str(i), '', '', '')
     tools.closeDirectory('addons', cacheToDisc=True)