def get_tvmaze_episode_parameters(show, preason, prepisode):
	if 'status_code' in str(prepisode):
		return None
	parameters = {'id': show['externals']['thetvdb'], 'season': preason['number'], 'episode': prepisode['number']}
	network = show['network']['name']
	parameters['network'] = network
	if network:
		parameters['network_clean'] = re.sub('(\(.*?\))', '', network).strip()
	else:
		parameters['network_clean'] = network
	parameters['imdb'] = show['externals']['imdb']
	parameters['tvrage'] = show['externals']['tvrage']
	parameters['showname'] = text.escape(show['seriesname'])
	parameters['clearname'] = text.escape(show['seriesname'])
	parameters['urlname'] = urllib.quote(text.to_utf8(parameters['clearname']))
	articles = ['a ', 'A ', 'An ', 'an ', 'The ', 'the ']
	parameters['sortname'] = text.to_utf8(parameters['clearname'])
	for article in articles:
		if text.to_utf8(parameters['clearname']).startswith(article):
			parameters['sortname'] = text.to_utf8(parameters['clearname']).replace(article,'')
	parameters['shortname'] = text.to_utf8(parameters['clearname'][1:-1])
	parameters['absolute_number'] = 'na'
	parameters['title'] = prepisode['name']
	parameters['urltitle'] = urllib.quote(text.to_utf8(parameters['title']))
	parameters['sorttitle'] = text.to_utf8(parameters['title'])
	articles = ['a ', 'A ', 'An ', 'an ', 'The ', 'the ']
	for article in articles:
		if text.to_utf8(parameters['title']).startswith(article):
			parameters['sorttitle'] = text.to_utf8(parameters['title']).replace(article,'')
	parameters['shorttitle'] = text.to_utf8(parameters['title'][1:-1])
	parameters['firstaired'] = prepisode['airdate']
	parameters['year'] = int(show['premiered'].split('-')[0].strip())
	if parameters['firstaired']:
		parameters['epyear'] = int(parameters['firstaired'].split('-')[0].strip())
		parameters['epmonth'] = int(parameters['firstaired'].split('-')[1].strip())
		parameters['epday'] = int(parameters['firstaired'].split('-')[2].strip())
	else:
		parameters['epyear'] = 1900
		parameters['epmonth'] = 0
		parameters['epday'] = 0
	parameters['epid'] = prepisode['id']
	if prepisode['image'] != None:
		parameters['poster'] = prepisode['image']['original']
	elif preason['image'] != None:
		parameters['poster'] = preason['image']['original']
	elif show['image'] != None:
		parameters['poster'] = show['image']['original']
	parameters['fanart'] = ''
	parameters['thumbnail'] = parameters['poster']
	parameters['genre'] = show['type']
	parameters['now'] = datetime.datetime.now().strftime('%Y%m%d%H%M%S%f')
	return parameters
Esempio n. 2
0
def get_episode_parameters(show, season, episode):
	from resources.lib.TheMovieDB import Find
	if season in show and episode in show[season]:
		season_obj = show[season]
		episode_obj = show[season][episode]
	else:
		return
	episodes = 0
	count = 0
	for i in show.items():
		episodes += len(i[1].items())
		if i[0] != 0 and i[0] < (season -1):
			count += len(i[1].items())
	parameters = {'id': show['id'], 'season': season, 'episode': episode}
	if season in NTH:
		parameters['season_ordinal'] = NTH[season]
	else:
		try:
			if text.number_to_text(season) in (season, ''):
				if int(str(season)[-1]) in NTH:
					parameters['season_ordinal'] = '%s%s' % (DCS[int(str(season)[-2])], NTH[int(str(season)[-1])])
				else:
					parameters['season_ordinal'] = '%s%sth' % (DCS[int(str(season)[-2])], text.number_to_text(int(str(season)[-1])))
			else:
				parameters['season_ordinal'] = '%sth' % text.number_to_text(season)
		except:
			pass
	parameters['episodes'] = episodes
	parameters['seasons'] = len(show.items())
	parameters['seasons_no_specials'] = len([season_num for (season_num, season) in show.items() if season_num != 0])
	show_info = meta_info.get_tvshow_metadata_tvdb(show, banners=True)
	network = show.get('network', '')
	parameters['network'] = network
	if network:
		parameters['network_clean'] = re.sub('(\(.*?\))', '', network).strip()
	else:
		parameters['network_clean'] = network
	try:
		parameters['absolute_number'] = int(episode_obj.get('absolute_number'))
	except:
		parameters['absolute_number'] = count + episode
	parameters['showname'] = show['seriesname'].replace('&', '%26')
	parameters['clearname'] = re.sub('(\(.*?\))', '', show['seriesname']).strip()
	parameters['stripname'] = ' '.join(re.compile('[\W_]+').sub(' ', show['seriesname']).split())
	parameters['sortname'] = text.to_utf8(parameters['clearname'])
	parameters['urlname'] = urllib.quote(text.to_utf8(parameters['clearname']))
	parameters['shortname'] = text.to_utf8(parameters['clearname'][1:-1])
	parameters['title'] = text.escape(episode_obj.get('episodename', str(episode)))
	parameters['urltitle'] = urllib.quote(text.to_utf8(parameters['title']))
	parameters['sorttitle'] = text.to_utf8(parameters['title'])
	parameters['shorttitle'] = text.to_utf8(parameters['title'][1:-1])
	articles = ['a ', 'A ', 'An ', 'an ', 'The ', 'the ']
	for article in articles:
		if text.to_utf8(parameters['clearname']).startswith(article):
			parameters['sortname'] = text.to_utf8(parameters['clearname']).replace(article,'')
		if text.to_utf8(parameters['title']).startswith(article):
			parameters['sorttitle'] = text.to_utf8(parameters['title']).replace(article,'')
	parameters['firstaired'] = episode_obj.get('firstaired')
	parameters['series_firstaired'] = show.get('firstaired')
	parameters['year'] = show.get('year', 0)
	if parameters['firstaired']:
		parameters['epyear'] = int(parameters['firstaired'].split('-')[0].strip())
		parameters['epmonth'] = int(parameters['firstaired'].split('-')[1].strip())
		parameters['epday'] = int(parameters['firstaired'].split('-')[2].strip())
	else:
		parameters['epyear'] = 1980
		parameters['epmonth'] = 0
		parameters['epday'] = 0
	parameters['imdb'] = show.get('imdb_id', '')
	parameters['tvrage'] = 0
	parameters['epimdb'] = episode_obj.get('imdb_id', '')
	parameters['eptmdb'] = 0
	parameters['eptrakt'] = 0
	parameters['eptvrage'] = 0
	parameters['epid'] = episode_obj.get('id')
	if episode_obj.get('id') != '':
		parameters['plot'] = text.escape(episode_obj.get('overview'))
	else:
		parameters['plot'] = text.escape(show['overview'])
	parameters['series_plot'] = text.escape(show['overview'])
	if episode_obj.get('rating') not in (None, ''):
		parameters['rating'] = episode_obj.get('rating')
	elif show.get('rating') not in (None, ''):
		parameters['rating'] = show.get('rating')
	else:
		parameters['rating'] = 0.0
	if show.get('rating') not in (None, ''):
		parameters['series_rating'] = show.get('rating')
	else:
		parameters['series_rating'] = 0
	if episode_obj.get('ratingcount') != '':
		parameters['votes'] = episode_obj.get('ratingcount')
	else:
		parameters['votes'] = show['ratingcount']
	parameters['mpaa'] = show.get('contentrating')
	parameters['writers'] = episode_obj.get('writer')
	parameters['directors'] = episode_obj.get('director')
	parameters['status'] = show.get('status')
	if show.get('actors') != None and show.get('actors') != '':
		parameters['actors'] = re.sub(r'\<[^)].*?\>', '', show.get('actors'))
	if show.get('genre') != None and '|' in show.get('genre'):
		parameters['genres'] = show.get('genre').replace('|',' / ')[3:-3]
	else:
		parameters['genres'] = show.get('genre')
	parameters['runtime'] = show['runtime']
	parameters['duration'] = int(show['runtime']) * 60
	tvdb_base = 'https://thetvdb.com/banners/'
	if episode_obj.get('filename') != '':
		parameters['thumbnail'] = tvdb_base + str(episode_obj.get('filename'))
	elif show.get('poster') != '':
		parameters['thumbnail'] = show.get('poster')
	if show.get('poster') != '' and show.get('poster') is not None:
		parameters['poster'] = show.get('poster')
	parameters['thumbnail'] = '%sepisodes/%s/%s.jpg' % (tvdb_base, str(show['id']), str(parameters['epid']))
	parameters['banner'] = show.get('banner')
	if show.get('fanart') != None and show.get('fanart') != '':
		parameters['fanart'] = show.get('fanart')
	else:
		parameters['fanart'] = get_background_path()
	is_anime = False
	if parameters['genres'] != None and parameters['absolute_number'] and parameters['absolute_number'] != '0' and 'animation' in parameters['genres'].lower():
		tmdb_results = Find(show['id']).info(external_source='tvdb_id')
		for tmdb_show in tmdb_results.get('tv_results', []):
			if 'JP' in tmdb_show['origin_country']:
				is_anime = True
	if is_anime:
		parameters['name'] = u'%s %s' % (parameters['showname'], parameters['absolute_number'])
	else:
		parameters['name'] = u'%s S%02dE%02d' % (parameters['showname'], parameters['season'], parameters['episode'])
	parameters['now'] = datetime.datetime.now().strftime('%Y%m%d%H%M%S%f')
	trakt_ids = play_base.get_trakt_ids('tvdb', show['id'], parameters['clearname'], 'show', parameters['year'])
	if 'slug' in trakt_ids:
		if trakt_ids['slug'] != '' and trakt_ids['slug'] != None:
			parameters['slug'] = trakt_ids['slug']
		else:
			parameters['slug'] = text.clean_title(parameters['clearname'].lower())
	return parameters
def get_trakt_episode_parameters(show, preason, prepisode):
    if 'status_code' in str(prepisode):
        return None
    parameters = {
        'id': show['external_ids']['tvdb_id'],
        'season': preason['season_number'],
        'episode': prepisode['episode_number']
    }
    network = show['networks'][0]['name']
    parameters['network'] = network
    if network:
        parameters['network_clean'] = re.sub('(\(.*?\))', '', network).strip()
    else:
        parameters['network_clean'] = network
    parameters['imdb'] = show['external_ids']['imdb_id']
    parameters['tmdb'] = show['id']
    parameters['showname'] = text.escape(show['seriesname'])
    parameters['clearname'] = text.escape(show['seriesname'])
    parameters['urlname'] = urllib.quote(text.to_utf8(parameters['clearname']))
    articles = ['a ', 'A ', 'An ', 'an ', 'The ', 'the ']
    parameters['sortname'] = text.to_utf8(parameters['clearname'])
    for article in articles:
        if text.to_utf8(parameters['clearname']).startswith(article):
            parameters['sortname'] = text.to_utf8(
                parameters['clearname']).replace(article, '')
    parameters['shortname'] = text.to_utf8(parameters['clearname'][1:-1])
    parameters['absolute_number'] = 'na'
    parameters['title'] = prepisode['name']
    parameters['urltitle'] = urllib.quote(text.to_utf8(parameters['title']))
    parameters['sorttitle'] = text.to_utf8(parameters['title'])
    articles = ['a ', 'A ', 'An ', 'an ', 'The ', 'the ']
    for article in articles:
        if text.to_utf8(parameters['title']).startswith(article):
            parameters['sorttitle'] = text.to_utf8(
                parameters['title']).replace(article, '')
    parameters['shorttitle'] = text.to_utf8(parameters['title'][1:-1])
    parameters['firstaired'] = prepisode['air_date']
    parameters['year'] = int(show['first_air_date'].split('-')[0].strip())
    if parameters['firstaired']:
        parameters['epyear'] = int(
            parameters['firstaired'].split('-')[0].strip())
        parameters['epmonth'] = int(
            parameters['firstaired'].split('-')[1].strip())
        parameters['epday'] = int(
            parameters['firstaired'].split('-')[2].strip())
    else:
        parameters['epyear'] = 1900
        parameters['epmonth'] = 0
        parameters['epday'] = 0
    parameters['epid'] = prepisode['id']
    if preason['episodes'][0] != None and preason['episodes'][
            0] != '' and preason['episodes'][0] != []:
        parameters['poster'] = u'https://image.tmdb.org/t/p/w500%s' % preason[
            'episodes'][0]['still_path']
    elif show['poster_path'] != None and show['poster_path'] != '' and show[
            'poster_path'] != []:
        parameters['poster'] = u'https://image.tmdb.org/t/p/w500%s' % show[
            'poster_path']
    if show['backdrop_path'] != None and show['backdrop_path'] != '' and show[
            'backdrop_path'] != []:
        parameters['fanart'] = u'https://image.tmdb.org/t/p/original%s' % show[
            'backdrop_path']
    else:
        parameters['fanart'] = ''
    parameters['thumbnail'] = parameters['poster']
    try:
        genre = [x for x in show['genre'].split('|') if not x == '']
    except:
        genre = ''
    parameters['genre'] = ' / '.join(genre)
    if 'JP' in show['origin_country']:
        is_anime = True
    else:
        is_anime = False
    if is_anime:
        parameters['name'] = u'%s %s' % (parameters['showname'],
                                         parameters['absolute_number'])
    else:
        parameters['name'] = u'%s S%02dE%02d' % (parameters['showname'],
                                                 parameters['season'],
                                                 parameters['episode'])
    parameters['now'] = datetime.datetime.now().strftime('%Y%m%d%H%M%S%f')
    return parameters
Esempio n. 4
0
def get_movie_parameters(movie):
	parameters = {}
	parameters['date'] = movie['release_date']
	parameters['premiered'] = movie['release_date']
	parameters['year'] = text.parse_year(movie['release_date'])
	parameters['released'] = movie['release_date']
	parameters['id'] = movie['id']
	parameters['imdb'] = movie['imdb_id']
	parameters['realtitle'] = re.sub('\(\d{4}\)', '', movie['title']).strip()
	parameters['title'] = text.escape(movie['title'])
	parameters['striptitle'] = ' '.join(re.compile('[\W_]+').sub(' ', movie['title']).split())
	parameters['urltitle'] = urllib.quote(text.to_utf8(parameters['title']))
	parameters['sorttitle'] = text.to_utf8(parameters['title'])
	articles = ['a ', 'A ', 'An ', 'an ', 'The ', 'the ']
	for article in articles:
		if text.to_utf8(parameters['title']).startswith(article):
			parameters['sorttitle'] = text.to_utf8(parameters['title']).replace(article,'')
	parameters['shorttitle'] = text.to_utf8(parameters['title'][1:-1])
	if 'movie' in str(parameters['sorttitle']).lower():
		parameters['sortesttitle'] = str(parameters['sorttitle']).lower().replace(' movie', '')
	elif 'movi' in str(parameters['sorttitle']).lower():
		parameters['sortesttitle'] = str(parameters['sorttitle']).lower().replace(' movi', '')
	else:
		parameters['sortesttitle'] = parameters['sorttitle']
	parameters['original_title'] = text.escape(movie['original_title'])
	parameters['name'] = u'%s (%s)' % (parameters['title'], parameters['year'])
	parameters['urlname'] = urllib.quote(text.to_utf8(parameters['name']))
	parameters['released'] = movie['release_date']
	parameters['rating'] = movie['vote_average']
	studios = [x['name'] for x in movie['production_companies'] if not x == '']
	parameters['studios'] = ' / '.join(studios)
	genre = [x['name'] for x in movie['genres'] if not x == '']
	parameters['genres'] = ' / '.join(genre)
	if movie['runtime'] and movie['runtime'] != '' and movie['runtime'] != None:
		parameters['runtime'] = movie['runtime']
	else:
		parameters['runtime'] = '0'
	if movie['vote_count'] and movie['vote_count'] != '' and movie['vote_count'] != None and movie['vote_count'] != 0:
		parameters['votes'] = movie['vote_count']
	else:
		parameters['votes'] = '0'
	if movie['vote_average'] and movie['vote_average'] != '' and movie['vote_average'] != None and movie['vote_average'] != 0:
		parameters['rating'] = movie['vote_average']
	else:
		parameters['rating'] = '0'
	if movie['credits']['crew']:
		prewriters = [i['name'] for i in movie['credits']['crew'] if i['department'] == 'Writing']
		writers = []
		for item in prewriters:
			if item not in writers:
				writers.append(item)
		parameters['writers'] = ', '.join(writers)
	else:
		parameters['writers'] = ''
	if movie['credits']['crew']:
		predirectors = [i['name'] for i in movie['credits']['crew'] if i['department'] == 'Directing']
		directors = []
		for item in predirectors:
			if item not in directors:
				directors.append(item)
		parameters['directors'] = ', '.join(directors)
	else:
		parameters['directors'] = ''
	if movie['credits']['cast']:
		preactors = [i['name'] for i in movie['credits']['cast']]
		actors = []
		for item in preactors:
			if item not in actors:
				actors.append(item)
		parameters['actors'] = actors
	else:
		parameters['actors'] = ''
	if movie['releases']['countries'][0]['certification']:
		parameters['mpaa'] = movie['releases']['countries'][0]['certification']
	else:
		parameters['mpaa'] = ''
	parameters['duration'] = int(parameters['runtime']) * 60
	parameters['plot'] = text.escape(movie['overview'])
	parameters['tagline'] = text.escape(movie['tagline'])
	if 'https://image.tmdb.org/t/p/w300%s' % str(movie['poster_path']):
		parameters['poster'] = 'https://image.tmdb.org/t/p/w300%s' % str(movie['poster_path'])
	else:
		parameters['poster'] = 'https://image.tmdb.org/t/p/original%s' % str(movie['poster_path'])
	if 'https://image.tmdb.org/t/p/w1280%s' % str(movie['backdrop_path']):
		parameters['fanart'] = 'https://image.tmdb.org/t/p/w1280%s' % str(movie['backdrop_path'])
	else:
		parameters['fanart'] = 'https://image.tmdb.org/t/p/original%s' % str(movie['backdrop_path'])
	parameters['now'] = datetime.datetime.now().strftime('%Y%m%d%H%M%S%f')
	trakt_ids = play_base.get_trakt_ids(id_type='tmdb', id=movie['id'], type='movie')
	if 'slug' in trakt_ids and trakt_ids['slug'] != '' and trakt_ids['slug'] != None:
		try:
			parameters['slug'] = trakt_ids['slug']
		except:
			pass
	else:
		parameters['slug'] = text.clean_title(parameters['title'].lower())
	return parameters