Esempio n. 1
0
 def __init__(self,
              tmdb_type,
              tmdb_id=None,
              season=None,
              episode=None,
              ignore_default=False,
              **kwargs):
     self.players = get_players_from_file()
     self.details = get_item_details(tmdb_type, tmdb_id, season, episode)
     self.item = get_detailed_item(
         tmdb_type, tmdb_id, season, episode, details=self.details) or {}
     self.playerstring = get_playerstring(tmdb_type,
                                          tmdb_id,
                                          season,
                                          episode,
                                          details=self.details)
     self.dialog_players = self._get_players_for_dialog(tmdb_type)
     self.default_player = ADDON.getSettingString(
         'default_player_movies'
     ) if tmdb_type == 'movie' else ADDON.getSettingString(
         'default_player_episodes')
     self.ignore_default = ignore_default
     self.tmdb_type, self.tmdb_id, self.season, self.episode = tmdb_type, tmdb_id, season, episode
     self.dummy_duration = try_float(
         ADDON.getSettingString('dummy_duration')) or 1.0
     self.dummy_delay = try_float(
         ADDON.getSettingString('dummy_delay')) or 1.0
     self.force_xbmcplayer = ADDON.getSettingBool('force_xbmcplayer')
 def __init__(self,
              tmdb_type,
              tmdb_id=None,
              season=None,
              episode=None,
              ignore_default=False,
              **kwargs):
     with busy_dialog():
         self.players = get_players_from_file()
         self.details = get_item_details(tmdb_type, tmdb_id, season,
                                         episode)
         self.item = get_detailed_item(
             tmdb_type, tmdb_id, season, episode,
             details=self.details) or {}
         self.playerstring = get_playerstring(tmdb_type,
                                              tmdb_id,
                                              season,
                                              episode,
                                              details=self.details)
         self.dialog_players = self._get_players_for_dialog(tmdb_type)
         self.default_player = ADDON.getSettingString(
             'default_player_movies'
         ) if tmdb_type == 'movie' else ADDON.getSettingString(
             'default_player_episodes')
         self.ignore_default = ignore_default
Esempio n. 3
0
def _get_monitor_userlists(list_slugs=None, user_slugs=None):
    saved_lists = list_slugs or ADDON.getSettingString(
        'monitor_userlist') or ''
    saved_users = user_slugs or ADDON.getSettingString(
        'monitor_userslug') or ''
    saved_lists = saved_lists.split(' | ') or []
    saved_users = saved_users.split(' | ') or []
    return [(i, saved_users[x]) for x, i in enumerate(saved_lists)]
Esempio n. 4
0
 def get_stored_token(self):
     try:
         token = loads(ADDON.getSettingString('trakt_token')) or {}
     except Exception as exc:
         token = {}
         kodi_log(exc, 1)
     return token
 def __init__(self):
     self.handle = int(sys.argv[1])
     self.paramstring = sys.argv[2][1:]
     self.params = parse_paramstring(self.paramstring)
     self.parent_params = self.params
     # self.container_path = u'{}?{}'.format(sys.argv[0], self.paramstring)
     self.update_listing = False
     self.plugin_category = ''
     self.container_content = ''
     self.container_update = None
     self.container_refresh = False
     self.item_type = None
     self.kodi_db = None
     self.kodi_db_tv = {}
     self.library = None
     self.tmdb_cache_only = True
     self.tmdb_api = TMDb()
     self.trakt_watchedindicators = ADDON.getSettingBool('trakt_watchedindicators')
     self.trakt_api = TraktAPI()
     self.is_widget = True if self.params.pop('widget', '').lower() == 'true' else False
     self.hide_watched = ADDON.getSettingBool('widgets_hidewatched') if self.is_widget else False
     self.flatten_seasons = ADDON.getSettingBool('flatten_seasons')
     self.ftv_forced_lookup = self.params.pop('fanarttv', '').lower()
     self.ftv_api = FanartTV(cache_only=self.ftv_is_cache_only())
     self.omdb_api = OMDb() if ADDON.getSettingString('omdb_apikey') else None
     self.filter_key = self.params.pop('filter_key', None)
     self.filter_value = split_items(self.params.pop('filter_value', None))[0]
     self.exclude_key = self.params.pop('exclude_key', None)
     self.exclude_value = split_items(self.params.pop('exclude_value', None))[0]
     self.pagination = self.pagination_is_allowed()
     self.params = reconfigure_legacy_params(**self.params)
     self.thumb_override = 0
Esempio n. 6
0
 def __init__(self):
     self.properties = set()
     self.index_properties = set()
     self.trakt_api = TraktAPI()
     self.tmdb_api = TMDb()
     self.fanarttv = FanartTV()
     self.omdb_api = OMDb() if ADDON.getSettingString('omdb_apikey') else None
     self.imdb_top250 = {}
     self.property_prefix = 'ListItem'
Esempio n. 7
0
 def list_nextepisodes(self, info, tmdb_type, page=None, **kwargs):
     if tmdb_type != 'tv':
         return
     sort_by_premiered = True if ADDON.getSettingString('trakt_nextepisodesort') == 'airdate' else False
     items = self.trakt_api.get_upnext_episodes_list(page=page, sort_by_premiered=sort_by_premiered)
     self.tmdb_cache_only = False
     # self.kodi_db = self.get_kodi_database(tmdb_type)
     self.library = 'video'
     self.container_content = 'episodes'
     return items
Esempio n. 8
0
    def __init__(self,
                 tmdb_type,
                 tmdb_id=None,
                 season=None,
                 episode=None,
                 ignore_default=False,
                 islocal=False,
                 **kwargs):
        with ProgressDialog('TMDbHelper',
                            u'{}...'.format(ADDON.getLocalizedString(32374)),
                            total=3) as _p_dialog:
            self.api_language = None
            self.players = get_players_from_file()

            _p_dialog.update(u'{}...'.format(ADDON.getLocalizedString(32375)))
            self.details = get_item_details(tmdb_type, tmdb_id, season,
                                            episode)
            self.item = get_detailed_item(
                tmdb_type, tmdb_id, season, episode,
                details=self.details) or {}

            _p_dialog.update(u'{}...'.format(ADDON.getLocalizedString(32376)))
            self.playerstring = get_playerstring(tmdb_type,
                                                 tmdb_id,
                                                 season,
                                                 episode,
                                                 details=self.details)
            self.dialog_players = self._get_players_for_dialog(tmdb_type)

            self.default_player = ADDON.getSettingString(
                'default_player_movies'
            ) if tmdb_type == 'movie' else ADDON.getSettingString(
                'default_player_episodes')
            self.ignore_default = ignore_default
            self.tmdb_type, self.tmdb_id, self.season, self.episode = tmdb_type, tmdb_id, season, episode
            self.dummy_duration = try_float(
                ADDON.getSettingString('dummy_duration')) or 1.0
            self.dummy_delay = try_float(
                ADDON.getSettingString('dummy_delay')) or 1.0
            self.force_xbmcplayer = ADDON.getSettingBool('force_xbmcplayer')
            self.is_strm = islocal
Esempio n. 9
0
def update_players():
    players_url = ADDON.getSettingString('players_url')
    players_url = xbmcgui.Dialog().input(ADDON.getLocalizedString(32313),
                                         defaultt=players_url)
    if not xbmcgui.Dialog().yesno(
            ADDON.getLocalizedString(32032),
            ADDON.getLocalizedString(32314).format(players_url)):
        return
    ADDON.setSettingString('players_url', players_url)
    downloader = Downloader(
        extract_to=
        'special://profile/addon_data/plugin.video.themoviedb.helper/players',
        download_url=players_url)
    downloader.get_extracted_zip()
Esempio n. 10
0
 def __init__(self,
              api_key='fcca59bee130b70db37ee43e63f8d6c1',
              client_key=ADDON.getSettingString('fanarttv_clientkey'),
              language=get_language(),
              cache_only=False,
              cache_refresh=False):
     super(FanartTV,
           self).__init__(req_api_name='FanartTV',
                          req_api_url=API_URL,
                          req_api_key='api_key={}'.format(api_key))
     self.req_api_key = 'api_key={0}'.format(
         api_key) if api_key else self.req_api_key
     self.req_api_key = '{0}&client_key={1}'.format(
         self.req_api_key, client_key) if client_key else self.req_api_key
     self.language = language[:2] if language else 'en'
     self.cache_only = cache_only
     self.cache_refresh = cache_refresh
Esempio n. 11
0
 def __init__(self, api_key=ADDON.getSettingString('omdb_apikey')):
     super(OMDb, self).__init__(req_api_key=u'apikey={0}'.format(api_key),
                                req_api_name='OMDb',
                                req_api_url='http://www.omdbapi.com/')
Esempio n. 12
0
import xbmcvfs
import xbmcgui
from resources.lib.addon.decorators import busy_dialog
from resources.lib.addon.plugin import kodi_log, ADDON
from resources.lib.addon.parser import try_int
from resources.lib.files.utils import validify_filename, make_path, write_to_file, get_tmdb_id_nfo
from resources.lib.trakt.api import TraktAPI


STRM_MOVIE = 'plugin://plugin.video.themoviedb.helper/?info=play&tmdb_id={}&tmdb_type=movie&islocal=True'
STRM_EPISODE = 'plugin://plugin.video.themoviedb.helper/?info=play&tmdb_type=tv&islocal=True&tmdb_id={}&season={}&episode={}'
BASEDIR_MOVIE = ADDON.getSettingString('movies_library') or 'special://profile/addon_data/plugin.video.themoviedb.helper/movies/'
BASEDIR_TV = ADDON.getSettingString('tvshows_library') or 'special://profile/addon_data/plugin.video.themoviedb.helper/tvshows/'
"""
IMPORTANT: These limits are set to prevent excessive API data usage.
Please respect the APIs that provide this data for free.
"""
LIBRARY_ADD_LIMIT_TVSHOWS = 500
LIBRARY_ADD_LIMIT_MOVIES = 2500


def replace_content(content, old, new):
    content = content.replace(old, new)
    return replace_content(content, old, new) if old in content else content


def clean_content(content, details='info=play'):
    content = content.replace('info=related', details)
    content = content.replace('info=flatseasons', details)
    content = content.replace('info=details', details)
    content = content.replace('fanarttv=True', '')