Пример #1
0
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']
        })
Пример #2
0
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))
Пример #3
0
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)
Пример #4
0
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)
Пример #5
0
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']
        })
Пример #6
0
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
Пример #7
0
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))
Пример #8
0
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