def play_movie(tmdb_id, usedefault): from resources.lib.TheMovieDB import Movies play_plugin = meta_players.ADDON_SELECTOR.id players = meta_players.get_players('movies') players = [p for p in players if p.id == play_plugin] or players if not players or len(players) == 0: xbmc.executebuiltin('Action(Info)') play_base.action_cancel() return if usedefault == 'True': default = plugin.get_setting('moviesdefault', unicode) for player in players: if player.title == default: players = [player] movie = Movies(tmdb_id).info( language='en', append_to_response= 'external_ids,alternative_titles,credits,images,keywords,releases,translations,rating' ) movie_info = meta_info.get_movie_metadata(movie) imdb_id = movie['imdb_id'] if 'imdb_id' in movie else None id_type = 'imdb' if imdb_id and imdb_id.startswith('tt') else 'tmdb' id = imdb_id if imdb_id and imdb_id.startswith('tt') else tmdb_id trakt_ids = play_base.get_trakt_ids(id_type=id_type, id=id, type='movie') params = {} for lang in meta_players.get_needed_langs(players): if lang == 'en': tmdb_data = movie else: tmdb_data = Movies(tmdb_id).info( language=lang, append_to_response= 'external_ids,alternative_titles,credits,images,keywords,releases,translations,rating' ) params[lang] = get_movie_parameters(tmdb_data) if trakt_ids != None: params[lang].update(trakt_ids) params[lang]['info'] = movie_info params[lang] = text.to_unicode(params[lang]) link = play_base.on_play_video(players, params, trakt_ids) if link: movie = Movies(tmdb_id).info(language='en') play_base.action_play({ 'label': movie_info['title'], 'path': link, 'info': movie_info, 'is_playable': True, 'info_type': 'video', 'thumbnail': movie_info['poster'], 'poster': movie_info['poster'], 'fanart': movie_info['fanart'] })
def movies_add_to_library_parsed(src, id, player): from resources.lib.TheMovieDB import Movies library_folder = lib_movies.setup_library(plugin.get_setting('movies_library_folder', unicode)) date = None if src == 'tmdb': movie = Movies(id).info() date = text.date_to_timestamp(movie.get('release_date')) imdb_id = movie.get('imdb_id') if imdb_id: if imdb_id != None and imdb_id != '': src = 'imdb' id = imdb_id lib_movies.add_movie_to_library(library_folder, src, id, player) tools.scan_library(path=plugin.get_setting('movies_library_folder', unicode))
def tmdb_movies_top_rated(page, raw=False): from resources.lib.TheMovieDB import Movies result = Movies().top_rated(language='en', page=page, append_to_response='external_ids,videos') if raw: return result else: return list_tmdb_movies(result)
def tmdb_movies_popular(page, raw=False): from resources.lib.TheMovieDB import Movies result = Movies().popular(language='en', page=page) if raw: return result else: return list_tmdb_movies(result)
def play_movie(tmdb_id): from resources.lib.TheMovieDB import Movies play_plugin = meta_players.ADDON_SELECTOR.id players = meta_players.get_players('movies') players = [p for p in players if p.id == play_plugin] or players if not players or len(players) == 0: xbmc.executebuiltin('Action(Info)') play_base.action_cancel() return movie = Movies(tmdb_id).info( language='en', append_to_response= 'external_ids,alternative_titles,credits,images,keywords,releases,translations,rating' ) movie_info = meta_info.get_movie_metadata(movie) trakt_ids = play_base.get_trakt_ids('tmdb', tmdb_id, movie['original_title'], 'movie', text.parse_year(movie['release_date'])) params = {} for lang in meta_players.get_needed_langs(players): if lang == 'en': tmdb_data = movie else: tmdb_data = Movies(tmdb_id).info( language=lang, append_to_response= 'external_ids,alternative_titles,credits,images,keywords,releases,translations,rating' ) params[lang] = get_movie_parameters(tmdb_data) if trakt_ids != None: params[lang].update(trakt_ids) params[lang]['info'] = movie_info params[lang] = text.to_unicode(params[lang]) link = play_base.on_play_video(players, params, trakt_ids) if link: movie = Movies(tmdb_id).info(language='en') play_base.action_play({ 'label': movie_info['title'], 'path': link, 'info': movie_info, 'is_playable': True, 'info_type': 'video', 'thumbnail': movie_info['poster'], 'poster': movie_info['poster'], 'fanart': movie_info['fanart'] })
def movies_batch_add_to_library(): from resources.lib.TheMovieDB import Movies movie_batch_file = plugin.get_setting('movies_batch_add_file_path', unicode) if xbmcvfs.exists(movie_batch_file): try: f = open(xbmc.translatePath(movie_batch_file), 'r') r = f.read() f.close() ids = r.split('\n') except: plugin.notify('Movies', 'not found', plugin.get_addon_icon(), 3000) library_folder = lib_movies.setup_library(plugin.get_setting('movies_library_folder', unicode)) for id in ids: if ',' in id: csvs = id.split(',') for csv in csvs: if not str(csv).startswith('tt') and csv != '': movie = Movies(csv).info() csv = movie.get('imdb_id') lib_movies.batch_add_movies_to_library(library_folder, csv) else: if not str(id).startswith('tt') and id != '': movie = Movies(id).info() id = movie.get('imdb_id') lib_movies.batch_add_movies_to_library(library_folder, id) os.remove(xbmc.translatePath(movie_batch_file)) lib_movies.update_library() return True
def movies_add_to_library(src, id): from resources.lib.TheMovieDB import Movies library_folder = lib_movies.setup_library(plugin.get_setting('movies_library_folder', unicode)) if library_folder == False: return date = None if src == 'tmdb': movie = Movies(id).info() date = text.date_to_timestamp(movie.get('release_date')) imdb_id = movie.get('imdb_id') if imdb_id: src = 'imdb' id = imdb_id ids = [str(movie.get('id')), str(movie.get('imdb_id', None))] try: libmovies = RPC.VideoLibrary.GetMovies(properties=['imdbnumber', 'title', 'year'])['movies'] libmovies = [i for i in libmovies if str(i['imdbnumber']) in ids or (str(i['year']) == str(movie.get('year', 0)) and equals(movie.get['title'], i['title']))] libmovie = libmovies[0] except: libmovie = [] else: ids = [str(id), 'None'] try: libmovies = RPC.VideoLibrary.GetMovies(properties=['imdbnumber', 'title', 'year'])['movies'] libmovies = [i for i in libmovies if str(i['imdbnumber']) in ids] libmovie = libmovies[0] except: libmovie = [] if libmovie != []: return lib_movies.add_movie_to_library(library_folder, src, id) tools.scan_library(path=plugin.get_setting('movies_library_folder', unicode))
def item_images(type, tmdb_id=None, imdb_id=None, tvdb_id=None, name=None): from resources.lib.TheMovieDB import Movies, TV, Find poster = '' fanart = '' response = '' if not tmdb_id and not imdb_id and not tvdb_id and not tvrage_id and not name: return None if type == 'movie' and tmdb_id != None and tmdb_id != '': response = Movies(tmdb_id).info() elif type == 'tv' and tmdb_id != None and tmdb_id != '': response = TV(tmdb_id).info() elif type == 'tv' and tvdb_id != None and tvdb_id != '': response = Find(tvdb_id).info(external_source='tvdb_id') elif imdb_id != None and imdb_id != '': response = Find(imdb_id).info(external_source='imdb_id') if response == '': return False if tmdb_id == None: if type == 'movie': response = response.get('movie_results') elif type == 'tv': response = response.get('tv_results') elif type == 'season': response = response.get('season_results') elif type == 'episode': response = response.get('episode_results') if isinstance(response, dict): fanart = 'https://image.tmdb.org/t/p/original/%s' % response.get('backdrop_path') poster = 'https://image.tmdb.org/t/p/original/%s' % response.get('poster_path') elif isinstance(response, list): fanart = 'https://image.tmdb.org/t/p/original/%s' % response['backdrop_path'] poster = 'https://image.tmdb.org/t/p/original/%s' % response['poster_path'] images = [poster, fanart] return images