Esempio n. 1
0
def tv_tvshow(id):
    """ All seasons of a TV show """
    plugin.set_content('seasons')
    return list_seasons_tvdb(id)
Esempio n. 2
0
def tv_season(id, season_num):
    """ All episodes of a TV season """
    plugin.set_content('episodes')
    return list_episodes_tvdb(id, season_num)
Esempio n. 3
0
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
Esempio n. 4
0
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
Esempio n. 5
0
def tv_season(id, season_num):
    """ All episodes of a TV season """
    plugin.set_content('episodes')
    return list_episodes_tvdb(id, season_num)
Esempio n. 6
0
def tv_tvshow(id):
    """ All seasons of a TV show """
    plugin.set_content('seasons')
    return list_seasons_tvdb(id)
Esempio n. 7
0
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)