示例#1
0
def build_tvshow_info(tvdb_show, tmdb_show=None):
    tvdb_info = meta_info.get_tvshow_metadata_tvdb(tvdb_show)
    tmdb_info = meta_info.get_tvshow_metadata_tmdb(tmdb_show)
    info = {}
    info.update(tvdb_info)
    info.update(dict((k, v) for k, v in tmdb_info.iteritems() if v))
    return info
示例#2
0
def build_tvshow_info(tvdb_show, tmdb_show):
    tmdb_info = meta_info.get_tvshow_metadata_tmdb(tmdb_show)
    #	try:
    #		tvdb_info = meta_info.get_tvshow_metadata_tvdb(tvdb_show)
    #	except:
    #		tmdb_info = meta_info.get_tvshow_metadata_tmdb(tmdb_show)
    #		pass
    #	tmdb_info = meta_info.get_tvshow_metadata_tmdb(tmdb_show)
    info = {}
    #	info.update(tvdb_info)
    info.update(dict((k, v) for k, v in tmdb_info.iteritems() if v))
    return info
示例#3
0
def tmdb_play_episode(id, season, episode):
	from resources.lib.TheMovieDB import TV, TV_Seasons, TV_Episodes
	tried = 'tvdb'
	id = int(id)
	season = int(season)
	episode = int(episode)
	dbid = xbmc.getInfoLabel('ListItem.DBID')
	try:
		dbid = int(dbid)
	except:
		dbid = None
	show = TV(id).info(language='en', append_to_response='external_ids,images')
	if 'first_air_date' in show and show['first_air_date'] != None:
		year = show['first_air_date'][:4]
	else:
		year = None
	trakt_ids = play_base.get_trakt_ids('tmdb', id)
	if 'status_code' in show:
		return trakt_play_episode(trakt_ids['trakt'], season, episode)
	if 'name' in show:
		title = show['name']
	else:
		title = None
	show_info = meta_info.get_tvshow_metadata_tmdb(show)
	title = show_info['name']
	preason = TV_Seasons(id, season).info(language='en', append_to_response='external_ids,images')
	if 'The resource you requested could not be found' in str(preason):
		return trakt_play_episode(trakt_ids['trakt'], season, episode)
	season_info = meta_info.get_season_metadata_tmdb(show_info, preason)
	prepisode = TV_Episodes(id, season, episode).info(language='en', append_to_response='external_ids,images')
	if prepisode == '{u"status_code": 34, u"status_message": u"The resource you requested could not be found."}':
		return trakt_play_episode(trakt_ids['tmdb'], season, episode)
	episode_info = meta_info.get_episode_metadata_tmdb(season_info, prepisode)
	if show_info['poster'] != None and show_info['poster'] != '':
		show_poster = show_info['poster']
	else:
		show_poster = ''
	if show_info['fanart'] != None and show_info['fanart'] != '':
		show_fanart = show_info['fanart']
	else:
		show_fanart = ''
	episodes = preason['episodes']
	items = []
	play_plugin = meta_players.ADDON_SELECTOR.id
	players = meta_players.get_players('tvshows')
	players = [p for p in players if p.id == play_plugin] or players
	if not players:
		return xbmc.executebuiltin('Action(Info)')
	trakt_ids = play_base.get_trakt_ids('tmdb', id, show_info['name'], 'show', show['first_air_date'][:4])
	params = {}
	for lang in meta_players.get_needed_langs(players):
		if show['name'] is None:
			continue
		episode_parameters = get_tmdb_episode_parameters(show, preason, prepisode)
		if episode_parameters is not None:
			params[lang] = episode_parameters
		else:
			if trakt_ids['trakt'] != None and trakt_ids['trakt'] != '':
				return trakt_play_episode(trakt_ids['trakt'], season, episode)
			else:
				msg = 'No TMDb information found for %s - S%sE%s' % (show_info['name'], season, episode)
				plugin.ok('Episode information not found', msg)
		if trakt_ids != None:
			params[lang].update(trakt_ids)
		params[lang]['info'] = show_info
		params[lang] = text.to_unicode(params[lang])
	link = play_base.on_play_video(players, params, trakt_ids)
	if link:
		plugin.setProperty('plugin.video.openmeta.data', json.dumps(
			{
				'dbid': dbid,
				'tmdb': id,
				'season': season,
				'episode': episode
			}))
		episode_metadata = meta_info.get_episode_metadata_tmdb(season_info, prepisode)
		play_base.action_play(
			{
				'label': episode_info['title'],
				'path': link,
				'info': [],
				'is_playable': True,
				'info_type': 'video',
				'thumbnail': episode_info['poster'],
				'poster': episode_info['poster'],
				'fanart': str(show_info['fanart'])
			})