Exemple #1
0
    def _common_menu_builder(self,
                             trakt_list,
                             content_type,
                             action="getSources",
                             **params):
        if len(trakt_list) == 0:
            g.log("We received no titles to build a list", "warning")
            g.cancel_directory()
            return

        list_items = []
        smart_play = params.pop("smart_play", False)
        no_paging = params.pop("no_paging", False)
        sort = params.pop("sort", False)
        prepend_date = params.pop("prepend_date", False)
        mixed_list = params.pop("mixed_list", False)
        next_args = params.pop("next_args", None)

        params.pop("hide_unaired", None)
        params.pop("hide_watched", None)
        try:
            params["bulk_add"] = True
            list_items = [
                g.add_directory_item(item.get("name"),
                                     action=action,
                                     menu_item=item,
                                     action_args=item.get("args"),
                                     **params) for item in
                self._post_process_list(trakt_list, prepend_date, mixed_list)
                if item is not None
            ]

            if smart_play:
                return list_items
            else:
                xbmcplugin.addDirectoryItems(g.PLUGIN_HANDLE, list_items,
                                             len(list_items))
        except Exception as e:
            g.log_stacktrace()
            if not smart_play:
                g.cancel_directory()
            raise e

        finally:
            if not smart_play:
                if (not (g.FROM_WIDGET
                         and g.get_bool_setting("general.widget.hide_next"))
                        and not no_paging
                        and len(list_items) >= self.page_limit):
                    g.REQUEST_PARAMS["page"] = g.PAGE + 1
                    if next_args:
                        g.REQUEST_PARAMS["action_args"] = next_args
                    elif g.REQUEST_PARAMS.get("action_args") is not None:
                        g.REQUEST_PARAMS["action_args"] = g.REQUEST_PARAMS.get(
                            "action_args")
                    params = g.REQUEST_PARAMS
                    params.update({"special_sort": "bottom"})
                    g.add_directory_item(g.get_language_string(30016),
                                         **params)
                g.close_directory(content_type, sort=sort)
    def shows_genres(self):
        g.add_directory_item(
            g.get_language_string(30045),
            action="showGenresGet",
            menu_item={
                "art":
                dict.fromkeys(['icon', 'poster', 'thumb', 'fanart'],
                              g.GENRES_PATH + "list.png")
            })
        genres = self.trakt_api.get_json_cached("genres/shows",
                                                extended="full")

        if genres is None:
            g.cancel_directory()
            return

        for i in genres:
            g.add_directory_item(
                i["name"],
                action="showGenresGet",
                action_args=i["slug"],
                menu_item={
                    "art":
                    dict.fromkeys(['icon', 'poster', 'thumb', 'fanart'],
                                  "{}{}.png".format(g.GENRES_PATH, i["slug"]))
                })
        g.close_directory(g.CONTENT_GENRES)
 def home(self):
     for key, value in sorted(self.providers.items()):
         args = {'debrid_provider': key, 'id': None}
         g.add_directory_item(value[0],
                              action='myFilesFolder',
                              action_args=args)
     g.close_directory(g.CONTENT_MENU, sort='title')
    def movies_years():
        from datetime import datetime

        year = int(datetime.today().year)

        for year in range(year, 1899, -1):
            g.add_directory_item(g.UNICODE(year),
                                 action="movieYearsMovies",
                                 action_args=year)
        g.close_directory(g.CONTENT_MENU)
Exemple #5
0
 def provider_menu():
     g.add_directory_item(g.get_language_string(30139),
                          action='manualProviderUpdate',
                          is_folder=False,
                          description=g.get_language_string(30386))
     g.add_directory_item(g.get_language_string(30140),
                          action='manageProviders',
                          is_folder=False,
                          description=g.get_language_string(30387))
     g.close_directory(g.CONTENT_MENU)
 def provider_menu():
     g.add_directory_item(g.get_language_string(30150),
                          action='manualProviderUpdate',
                          is_folder=False,
                          description=g.get_language_string(30419))
     g.add_directory_item(g.get_language_string(30151),
                          action='manageProviders',
                          is_folder=False,
                          description=g.get_language_string(30420))
     g.close_directory(g.CONTENT_FOLDER)
 def movies_genres(self):
     g.add_directory_item(g.get_language_string(30046), action="movieGenresGet")
     genres = self.trakt.get_json("genres/movies")
     if genres is None:
         g.cancel_directory()
         return
     for i in genres:
         g.add_directory_item(
             i["name"], action="movieGenresGet", action_args=i["slug"]
         )
     g.close_directory(g.CONTENT_GENRES)
Exemple #8
0
    def list_rd_transfers(self):

        from resources.lib.debrid import real_debrid
        transfer_list = real_debrid.RealDebrid().list_torrents()
        if len(transfer_list) == 0:
            g.close_directory(self.view_type)
            return
        for i in transfer_list:
            title = '{} - {}% : {}' \
                .format(g.color_string(i['status'].title()), g.UNICODE(i['progress']), i['filename'][:50] + "...")
            g.add_directory_item(title)
        g.close_directory(self.view_type)
Exemple #9
0
    def list_premiumize_transfers(self):

        from resources.lib.debrid import premiumize
        transfer_list = premiumize.Premiumize().list_transfers()
        if len(transfer_list['transfers']
               ) == 0 or 'transfers' not in transfer_list:
            g.close_directory(self.view_type)
            return
        for i in transfer_list['transfers']:
            title = '{} - {}% : {}' \
                .format(g.color_string(i['status'].title()), g.UNICODE(i['progress'] * 100), i['name'][:50] + "...")
            g.add_directory_item(title)
        g.close_directory(self.view_type)
Exemple #10
0
    def shows_genres(self):
        g.add_directory_item(g.get_language_string(30046), action="showGenresGet")
        genres = self.trakt.get_json_cached("genres/shows", extended="full")

        if genres is None:
            g.cancel_directory()
            return

        for i in genres:
            g.add_directory_item(
                i["name"], action="showGenresGet", action_args=i["slug"]
            )
        g.close_directory(g.CONTENT_GENRES)
Exemple #11
0
    def get_assist_torrents(self):
        g.add_directory_item(g.get_language_string(30245),
                             action='nonActiveAssistClear')
        torrent_list = self.torrent_assist.get_assist_torrents()
        if torrent_list is not None:

            for i in torrent_list:
                debrid = tools.shortened_debrid(i['provider'])
                title = g.color_string('{} - {} - {}% : {}'.format(
                    debrid, i['status'].title(), i['progress'],
                    i['release_title']))
                g.add_directory_item(title)

        g.close_directory(self.view_type)
    def list_premiumize_transfers(self):
        from resources.lib.debrid import premiumize

        transfer_list = premiumize.Premiumize().list_transfers()
        if len(transfer_list['transfers']
               ) == 0 or "transfers" not in transfer_list:
            g.close_directory(self.view_type)
            return
        for i in transfer_list['transfers']:
            title = "{} - {}% : {}".format(
                g.color_string(i['status'].title().title()),
                g.UNICODE(i['progress'] * 100),
                (i['name'][:50] + "...") if len(i['name']) > 50 else i['name'])
            g.add_directory_item(title, is_playable=False, is_folder=False)
        g.close_directory(self.view_type)
 def shows_years(self, year=None):
     if year is None:
         current_year = datetime.datetime.today().year
         for year in range(current_year, 1899, -1):
             g.add_directory_item(g.UNICODE(year),
                                  action="showYears",
                                  action_args=year)
         g.close_directory(g.CONTENT_MENU)
     else:
         trakt_list = self.shows_database.extract_trakt_page(
             "shows/popular",
             years=year,
             page=g.PAGE,
             extended="full",
             hide_watched=False)
         self.list_builder.show_list_builder(trakt_list)
Exemple #14
0
 def shows_years(self, year=None):
     if year is None:
         current_year = int(
             tools.parse_datetime(datetime.datetime.today().strftime(
                 g.DATE_FORMAT)).year)
         all_years = reversed(
             [year for year in range(1900, current_year + 1)])
         menu_items = []
         for year in all_years:
             menu_items.append(
                 g.add_directory_item(g.UNICODE(year),
                                      action="showYears",
                                      action_args=year,
                                      bulk_add=True))
         xbmcplugin.addDirectoryItems(g.PLUGIN_HANDLE, menu_items,
                                      len(menu_items))
         g.close_directory(g.CONTENT_SHOW)
     else:
         trakt_list = self.shows_database.extract_trakt_page(
             "shows/popular",
             years=year,
             page=g.PAGE,
             extended="full",
             hide_watched=False)
         self.list_builder.show_list_builder(trakt_list)
Exemple #15
0
    def _format_items(self, items):
        for i in items:
            i.update({'debrid_provider': self.provider})
            if self._is_folder(i):
                is_playable = False
                is_folder = True
                action = 'myFilesFolder'
            else:
                is_folder = False
                is_playable = True
                action = 'myFilesPlay'

            g.add_directory_item(i['name'],
                                 action=action,
                                 is_playable=is_playable,
                                 is_folder=is_folder,
                                 action_args=i)
 def shows_search_history(self):
     history = self.search_history.get_search_history("tvshow")
     g.add_directory_item(
         g.get_language_string(30182),
         action="showsSearch",
         description=g.get_language_string(30372),
     )
     g.add_directory_item(
         g.get_language_string(30180),
         action="clearSearchHistory",
         mediatype="tvshow",
         is_folder=False,
         description=g.get_language_string(30180),
     )
     for i in history:
         remove_path = g.create_url(
             g.BASE_URL,
             {
                 "action": "removeSearchHistory",
                 "mediatype": "tvshow",
                 "endpoint": i
             },
         )
         g.add_directory_item(
             i,
             action="showsSearchResults",
             action_args=tools.construct_action_args(i),
             cm=[(g.get_language_string(30565),
                  "RunPlugin({})".format(remove_path))],
         )
     g.close_directory(g.CONTENT_MENU)
 def test_windows():
     g.add_directory_item(g.get_language_string(30498),
                          action='testPlayingNext',
                          is_folder=False,
                          description=g.get_language_string(30425))
     g.add_directory_item(g.get_language_string(30499),
                          action='testStillWatching',
                          is_folder=False,
                          description=g.get_language_string(30426))
     g.add_directory_item(g.get_language_string(30500),
                          action='testResolverWindow',
                          is_folder=False,
                          description=g.get_language_string(30427))
     g.add_directory_item(g.get_language_string(30501),
                          action='testSourceSelectWindow',
                          is_folder=False,
                          description=g.get_language_string(30428))
     g.add_directory_item(g.get_language_string(30502),
                          action='testManualCacheWindow',
                          is_folder=False,
                          description=g.get_language_string(30496))
     g.close_directory(g.CONTENT_FOLDER)
    def movies_years():
        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)
        [
            g.add_directory_item(str(i), action="movieYearsMovies", action_args=i)
            for i in years
        ]
        g.close_directory(g.CONTENT_FOLDER)
Exemple #19
0
 def test_windows():
     g.add_directory_item(g.get_language_string(30486),
                          action='testPlayingNext',
                          is_folder=False,
                          description=g.get_language_string(30413))
     g.add_directory_item(g.get_language_string(30487),
                          action='testStillWatching',
                          is_folder=False,
                          description=g.get_language_string(30414))
     g.add_directory_item(g.get_language_string(30488),
                          action='testResolverWindow',
                          is_folder=False,
                          description=g.get_language_string(30415))
     g.add_directory_item(g.get_language_string(30489),
                          action='testSourceSelectWindow',
                          is_folder=False,
                          description=g.get_language_string(30416))
     g.add_directory_item(g.get_language_string(30490),
                          action='testManualCacheWindow',
                          is_folder=False,
                          description=g.get_language_string(30484))
     g.close_directory(g.CONTENT_MENU)
 def create_single_item_playlist_from_info(self):
     g.cancel_playback()
     name = self.item_information["info"]["title"]
     item = g.add_directory_item(
         name,
         action="getSources",
         menu_item=self.item_information,
         action_args=tools.construct_action_args(self.item_information),
         bulk_add=True,
         is_playable=True,
         )
     g.PLAYLIST.add(url=g.BASE_URL + "/?" + g.PARAM_STRING, listitem=item[1])
     return g.PLAYLIST
    def _format_items(self, items):
        for i in items:
            i.update({'debrid_provider': self.provider})
            if self._is_folder(i):
                name = i['name']
                is_playable = False
                is_folder = True
                action = 'myFilesFolder'
            else:
                name = "{}  ({})".format(
                    i['name'], tools.bytes_size_display(
                        i['size'])) if i.get("size") else i['name']
                is_folder = False
                is_playable = True
                action = 'myFilesPlay'

            i.pop('links', None)  # De-clutter our action args a bit

            g.add_directory_item(name,
                                 action=action,
                                 is_playable=is_playable,
                                 is_folder=is_folder,
                                 action_args=i)
 def shows_networks(self):
     trakt_list = self.trakt_api.get_json_cached("networks")
     list_items = []
     for i in trakt_list:
         list_items.append(
             g.add_directory_item(
                 i["name"],
                 action="showsNetworkShows",
                 action_args=i["name"],
                 bulk_add=True,
             ))
     xbmcplugin.addDirectoryItems(g.PLUGIN_HANDLE, list_items,
                                  len(list_items))
     g.close_directory(g.CONTENT_MENU)
Exemple #23
0
 def home(self):
     g.add_directory_item(g.get_language_string(30242),
                          action='cacheAssistStatus')
     if g.get_bool_setting('premiumize.enabled'):
         g.add_directory_item(g.get_language_string(30243),
                              action='premiumize_transfers')
     if g.get_bool_setting('realdebrid.enabled'):
         g.add_directory_item(g.get_language_string(30244),
                              action='realdebridTransfers')
     g.close_directory(self.view_type)
 def trakt_sync_tools():
     g.add_directory_item(g.get_language_string(30238),
                          action='flushTraktActivities',
                          is_folder=False,
                          description=g.get_language_string(30421))
     g.add_directory_item(g.get_language_string(30239),
                          action='forceTraktSync',
                          is_folder=False,
                          description=g.get_language_string(30422))
     g.add_directory_item(g.get_language_string(30240),
                          action='flushTraktDBMeta',
                          is_folder=False,
                          description=g.get_language_string(30423))
     g.add_directory_item(g.get_language_string(30241),
                          action='rebuildTraktDatabase',
                          is_folder=False,
                          description=g.get_language_string(30424))
     g.close_directory(g.CONTENT_FOLDER)
Exemple #25
0
 def trakt_sync_tools():
     g.add_directory_item(g.get_language_string(30216),
                          action='flushTraktActivities',
                          is_folder=False,
                          description=g.get_language_string(30388))
     g.add_directory_item(g.get_language_string(30217),
                          action='forceTraktSync',
                          is_folder=False,
                          description=g.get_language_string(30389))
     g.add_directory_item(g.get_language_string(30218),
                          action='rebuildTraktDatabase',
                          is_folder=False,
                          description=g.get_language_string(30390))
     g.close_directory(g.CONTENT_MENU)
    def movies_search_history():
        history = SearchHistory().get_search_history("movie")
        g.add_directory_item(
            g.get_language_string(30203),
            action="moviesSearch",
            description=g.get_language_string(30404),
        )
        g.add_directory_item(
            g.get_language_string(30202),
            action="clearSearchHistory",
            mediatype="movie",
            is_folder=False,
            description=g.get_language_string(30414),
        )

        for i in history:
            g.add_directory_item(i, action="moviesSearchResults", action_args=i)
        g.close_directory(g.CONTENT_FOLDER)
Exemple #27
0
 def shows_search_history():
     history = SearchHistory().get_search_history("tvshow")
     g.add_directory_item(
         g.get_language_string(30195),
         action="showsSearch",
         description=g.get_language_string(30394),
     )
     g.add_directory_item(
         g.get_language_string(30193),
         action="clearSearchHistory",
         mediatype="tvshow",
         is_folder=False,
         description=g.get_language_string(30193),
     )
     for i in history:
         g.add_directory_item(
             i,
             action="showsSearchResults",
             action_args=tools.construct_action_args(i),
         )
     g.close_directory(g.CONTENT_MENU)
    def discover_shows():

        g.add_directory_item(
            g.get_language_string(30004),
            action="genericEndpoint",
            mediatype="shows",
            endpoint="popular",
            description=g.get_language_string(30416),
        )
        g.add_directory_item(
            g.get_language_string(30345),
            action="showsPopularRecent",
            description=g.get_language_string(30417),
        )
        if g.get_setting("trakt.auth"):
            g.add_directory_item(
                g.get_language_string(30005),
                action="showsRecommended",
                description=g.get_language_string(30418),
            )
        g.add_directory_item(
            g.get_language_string(30006),
            action="genericEndpoint",
            mediatype="shows",
            endpoint="trending",
            description=g.get_language_string(30419),
        )
        g.add_directory_item(
            g.get_language_string(30346),
            action="showsTrendingRecent",
            description=g.get_language_string(30420),
        )
        g.add_directory_item(
            g.get_language_string(30046),
            action="showsNew",
            description=g.get_language_string(30421),
        )
        g.add_directory_item(
            g.get_language_string(30007),
            action="genericEndpoint",
            mediatype="shows",
            endpoint="played",
            description=g.get_language_string(30422),
        )
        g.add_directory_item(
            g.get_language_string(30008),
            action="genericEndpoint",
            mediatype="shows",
            endpoint="watched",
            description=g.get_language_string(30423),
        )
        g.add_directory_item(
            g.get_language_string(30009),
            action="genericEndpoint",
            mediatype="shows",
            endpoint="collected",
            description=g.get_language_string(30424),
        )
        g.add_directory_item(
            g.get_language_string(30352),
            action="TrendingLists",
            mediatype="shows",
            description=g.get_language_string(30425),
        )
        g.add_directory_item(
            g.get_language_string(30354),
            action="PopularLists",
            mediatype="shows",
            description=g.get_language_string(30426),
        )
        if not g.get_bool_setting("general.hideUnAired"):
            g.add_directory_item(
                g.get_language_string(30010),
                action="genericEndpoint",
                mediatype="shows",
                endpoint="anticipated",
                description=g.get_language_string(30427),
            )

        g.add_directory_item(
            g.get_language_string(30011),
            action="showsUpdated",
            description=g.get_language_string(30428),
        )
        g.add_directory_item(
            g.get_language_string(30169),
            action="showsNetworks",
            description=g.get_language_string(30429),
        )
        g.add_directory_item(
            g.get_language_string(30171),
            action="showYears",
            description=g.get_language_string(30430),
        )
        g.add_directory_item(
            g.get_language_string(30042),
            action="tvGenres",
            description=g.get_language_string(30431),
        )
        g.add_directory_item(
            g.get_language_string(30190),
            action="showsByActor",
            description=g.get_language_string(30432),
        )
        if not g.get_bool_setting("searchHistory"):
            g.add_directory_item(
                g.get_language_string(30013),
                action="showsSearch",
                description=g.get_language_string(30372),
            )
        else:
            g.add_directory_item(
                g.get_language_string(30013),
                action="showsSearchHistory",
                description=g.get_language_string(30374),
            )
        g.close_directory(g.CONTENT_MENU)
 def my_shows():
     g.add_directory_item(
         g.get_language_string(30043),
         action="onDeckShows",
         description=g.get_language_string(30433),
     )
     g.add_directory_item(
         g.get_language_string(30014),
         action="showsMyCollection",
         description=g.get_language_string(30434),
     )
     g.add_directory_item(
         g.get_language_string(30015),
         action="showsMyWatchlist",
         description=g.get_language_string(30435),
     )
     g.add_directory_item(
         g.get_language_string(30090),
         action="showsRecentlyWatched",
         description=g.get_language_string(30479),
     )
     g.add_directory_item(
         g.get_language_string(30210),
         action="showsNextUp",
         description=g.get_language_string(30436),
     )
     g.add_directory_item(
         g.get_language_string(30211),
         action="myUpcomingEpisodes",
         description=g.get_language_string(30437),
     )
     g.add_directory_item(
         g.get_language_string(30212),
         action="showsMyProgress",
         description=g.get_language_string(30438),
     )
     g.add_directory_item(
         g.get_language_string(30213),
         action="showsMyRecentEpisodes",
         description=g.get_language_string(30439),
     )
     g.add_directory_item(
         g.get_language_string(30214),
         action="myTraktLists",
         mediatype="shows",
         description=g.get_language_string(30440),
     )
     g.add_directory_item(
         g.get_language_string(30350),
         action="myLikedLists",
         mediatype="shows",
         description=g.get_language_string(30441),
     )
     g.add_directory_item(
         g.get_language_string(30325),
         action="myWatchedEpisodes",
         description=g.get_language_string(30442),
     )
     g.close_directory(g.CONTENT_MENU)
Exemple #30
0
    def discover_shows():

        g.add_directory_item(
            g.get_language_string(30004),
            action="genericEndpoint",
            mediatype="shows",
            endpoint="popular",
            description=g.get_language_string(30438),
        )
        g.add_directory_item(
            g.get_language_string(30367),
            action="showsPopularRecent",
            description=g.get_language_string(30439),
        )
        if g.get_setting("trakt.auth"):
            g.add_directory_item(
                g.get_language_string(30005),
                action="showsRecommended",
                description=g.get_language_string(30440),
            )
        g.add_directory_item(
            g.get_language_string(30006),
            action="genericEndpoint",
            mediatype="shows",
            endpoint="trending",
            description=g.get_language_string(30441),
        )
        g.add_directory_item(
            g.get_language_string(30368),
            action="showsTrendingRecent",
            description=g.get_language_string(30442),
        )
        g.add_directory_item(
            g.get_language_string(30046),
            action="showsNew",
            description=g.get_language_string(30443),
        )
        g.add_directory_item(
            g.get_language_string(30007),
            action="genericEndpoint",
            mediatype="shows",
            endpoint="played",
            description=g.get_language_string(30444),
        )
        g.add_directory_item(
            g.get_language_string(30008),
            action="genericEndpoint",
            mediatype="shows",
            endpoint="watched",
            description=g.get_language_string(30445),
        )
        g.add_directory_item(
            g.get_language_string(30009),
            action="genericEndpoint",
            mediatype="shows",
            endpoint="collected",
            description=g.get_language_string(30446),
        )
        g.add_directory_item(
            g.get_language_string(30374),
            action="TrendingLists",
            mediatype="shows",
            description=g.get_language_string(30447),
        )
        g.add_directory_item(
            g.get_language_string(30376),
            action="PopularLists",
            mediatype="shows",
            description=g.get_language_string(30448),
        )
        if not g.get_bool_setting("general.hideUnAired"):
            g.add_directory_item(
                g.get_language_string(30010),
                action="genericEndpoint",
                mediatype="shows",
                endpoint="anticipated",
                description=g.get_language_string(30449),
            )

        g.add_directory_item(
            g.get_language_string(30011),
            action="showsUpdated",
            description=g.get_language_string(30450),
        )
        g.add_directory_item(
            g.get_language_string(30182),
            action="showsNetworks",
            description=g.get_language_string(30451),
        )
        g.add_directory_item(
            g.get_language_string(30184),
            action="showYears",
            description=g.get_language_string(30452),
        )
        g.add_directory_item(
            g.get_language_string(30042),
            action="tvGenres",
            description=g.get_language_string(30453),
        )
        g.add_directory_item(
            g.get_language_string(30203),
            action="showsByActor",
            description=g.get_language_string(30454),
        )
        if not g.get_bool_setting("searchHistory"):
            g.add_directory_item(
                g.get_language_string(30013),
                action="showsSearch",
                description=g.get_language_string(30394),
            )
        else:
            g.add_directory_item(
                g.get_language_string(30013),
                action="showsSearchHistory",
                description=g.get_language_string(30396),
            )
        g.close_directory(g.CONTENT_MENU)