def tv_tvshow(id): """ All seasons of a TV show """ plugin.set_content('seasons') return list_seasons_tvdb(id)
def tv_season(id, season_num): """ All episodes of a TV season """ plugin.set_content('episodes') return list_episodes_tvdb(id, season_num)
def list_trakt_episodes(result, with_time=False): genres_dict = trakt_get_genres() items = [] for item in result: if 'episode' in item: episode = item['episode'] else: episode = item id = episode["ids"].get("tvdb") if not id: continue season_num = episode["season"] episode_num = episode["number"] info = get_tvshow_metadata_trakt(item["show"], genres_dict) info['season'] = episode["season"] info['episode'] = episode["number"] info['title'] = episode["title"] info['aired'] = episode.get('first_aired','') info['premiered'] = episode.get('first_aired','') info['rating'] = episode.get('rating', '') info['plot'] = episode.get('overview','') info['tagline'] = episode.get('tagline') info['votes'] = episode.get('votes','') #info['poster'] = episode['images']['poster']['thumb'] label = "{0} - S{1:02d}E{2:02d} - {3}".format(item["show"]["title"], season_num, episode_num, episode["title"]) if with_time and info['premiered']: airtime = time.strptime(item["first_aired"], "%Y-%m-%dt%H:%M:%S.000Z") airtime = time.strftime("%Y-%m-%d %H:%M", airtime) label = "{0}\n{1}".format(label, airtime) context_menu = [ ( _("Select stream..."), "PlayMedia({0})".format(plugin.url_for("tv_play", id=id, season=season_num, episode=episode_num, mode='select')) ), ( _("Show info"), 'Action(Info)' ) ] items.append({'label': label, 'path': plugin.url_for("tv_play", id=id, season=season_num, episode=episode_num, mode='default'), 'context_menu': context_menu, 'info': info, 'is_playable': True, 'info_type': 'video', 'stream_info': {'video': {}}, 'thumbnail': info['poster'], 'poster': info['poster'], 'icon': "DefaultVideo.png", 'properties' : {'fanart_image' : info['fanart']}, }) plugin.set_content('episodes') return items
def list_trakt_episodes(result, with_time=False): genres_dict = trakt_get_genres() items = [] for item in result: if 'episode' in item: episode = item['episode'] else: episode = item id = episode["ids"].get("tvdb") if not id: continue season_num = episode["season"] episode_num = episode["number"] info = get_tvshow_metadata_trakt(item["show"], genres_dict) info['season'] = episode["season"] info['episode'] = episode["number"] info['title'] = episode["title"] info['aired'] = episode.get('first_aired', '') info['premiered'] = episode.get('first_aired', '') info['rating'] = episode.get('rating', '') info['plot'] = episode.get('overview', '') info['tagline'] = episode.get('tagline') info['votes'] = episode.get('votes', '') #info['poster'] = episode['images']['poster']['thumb'] label = "{0} - S{1:02d}E{2:02d} - {3}".format(item["show"]["title"], season_num, episode_num, episode["title"]) if with_time and info['premiered']: airtime = time.strptime(item["first_aired"], "%Y-%m-%dt%H:%M:%S.000Z") airtime = time.strftime("%Y-%m-%d %H:%M", airtime) label = "{0}\n{1}".format(label, airtime) context_menu = [ (_("Select stream..."), "PlayMedia({0})".format( plugin.url_for("tv_play", id=id, season=season_num, episode=episode_num, mode='select'))), (_("Show info"), 'Action(Info)'), (_("Add to list"), "RunPlugin({0})".format( plugin.url_for("lists_add_episode_to_list", src='tvdb', id=id, season=season_num, episode=episode_num))), ] items.append({ 'label': label, 'path': plugin.url_for("tv_play", id=id, season=season_num, episode=episode_num, mode='default'), 'context_menu': context_menu, 'info': info, 'is_playable': True, 'info_type': 'video', 'stream_info': { 'video': {} }, 'thumbnail': info['poster'], 'poster': info['poster'], 'icon': "DefaultVideo.png", 'properties': { 'fanart_image': info['fanart'] }, }) plugin.set_content('episodes') return items
def list_aired_episodes(result): genres_dict = trakt_get_genres() items = [] count = 1 if not result: return None for day in result.iteritems(): day_nr = 1 for episode in day[1]: banner = episode["show"]["images"]["banner"]["full"] fanart = episode["show"]["images"]["fanart"]["full"] poster = episode["show"]["images"]["poster"]["full"] if episode["episode"]["title"] != None: episode_title = (episode["episode"]["title"]).encode('utf-8') elif episode["episode"]["title"] == None: episode_title = "TBA" try: id = episode["show"]["ids"].get("tvdb") except: id = episode["show"]["ids"]["tvdb"] if not id: continue season_num = episode["episode"]["season"] episode_num = episode["episode"]["number"] tvshow_title = (episode["show"]["title"]).encode('utf-8') info = get_tvshow_metadata_trakt(episode["show"], genres_dict) info['season'] = episode["episode"]["season"] info['episode'] = episode["episode"]["number"] info['title'] = episode["episode"]["title"] info['aired'] = episode["episode"].get('first_aired','') info['premiered'] = episode["episode"].get('first_aired','') info['rating'] = episode["episode"].get('rating', '') info['plot'] = episode["episode"].get('overview','') info['tagline'] = episode["episode"].get('tagline') info['votes'] = episode["episode"].get('votes','') info['showtitle'] = episode["show"]["title"] #info['poster'] = episode['images']['poster']['thumb'] label = "{0} - S{1:02d}E{2:02d} - {3}".format(tvshow_title, season_num, episode_num, episode_title) context_menu = [ ( _("Select stream..."), "PlayMedia({0})".format(plugin.url_for("tv_play", id=id, season=season_num, episode=episode_num, mode='select')) ), ( _("Show info"), 'Action(Info)' ), ( _("Add to list"), "RunPlugin({0})".format(plugin.url_for("lists_add_episode_to_list", src='tvdb', id=id, season=season_num, episode=episode_num)) ), ] items.append({'label': label, 'path': plugin.url_for("tv_play", id=id, season=season_num, episode=episode_num, mode='default'), 'context_menu': context_menu, 'info': info, 'is_playable': True, 'info_type': 'video', 'stream_info': {'video': {}}, 'thumbnail': info['poster'], 'poster': info['poster'], 'icon': "DefaultVideo.png", 'properties' : {'fanart_image' : info['fanart']}, }) day_nr = day_nr +1 plugin.set_content('episodes') if FORCE == True: return plugin.finish(items=items, sort_methods=SORT, view_mode=VIEW) else: return plugin.finish(items=items, sort_methods=SORT)