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
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
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']) })