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
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)]
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
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'
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
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
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()
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
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/')
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', '')