Ejemplo n.º 1
0
    def _tvrageEpisideInfo(self):
        log.debug('_tvrageEpisideInfo: Input Parm: {!s}'.format(
            self.series.getDict()))

        self.series.episodeData = []
        _epinfo = etree_to_dict(
            feeds.episode_list(self.series.tvrage_id,
                               node='Episodelist'))['Episodelist']['Season']
        _seasons = self._tvrageBuildTVSeason(_epinfo)
        self.series.seasons = _seasons
        if self.series.season is not None:
            _season = self.series.seasons['<Season {0:04}>'.format(
                int(self.series.season))]
            if self.series.episodeNums:
                for epno in self.series.episodeNums:
                    _episode = _season.episodes['E{0:02d}'.format(int(epno))]
                    self.series.addRageEpisode(_season, _episode)
            else:
                for _episode in _season.episodes.itervalues():
                    self.series.addRageEpisode(_season, _episode)
        else:
            for _season in _seasons.itervalues():
                for _episode in _season.episodes.itervalues():
                    self.series.addRageEpisode(_season, _episode)

        return
Ejemplo n.º 2
0
def save_episodes(show_id):
    show = db.Show.query.filter_by(show_id=show_id).first()
    if show is None:
        return jsonify({
            'status': 'error',
            'message': 'Show not found. First save the show then add episode'
        })

    show_id = show.show_id
    el = feeds.episode_list(show_id, node='Episodelist')

    episode_count = 0
    for s in el.findall('Season'):
        season_no = s.get('no')
        for e in s.findall('episode'):
            episode_info = parse_episode_info(e)
            episode = db.Episode.query.filter_by(show_id=show_id, season_number=season_no,
                                                 season_episode_number=episode_info['seasonnum']).first()

            if episode is None:
                episode = db.Episode(episode_id=None,
                                     show_id=show_id,
                                     season_episode_number=episode_info['seasonnum'],
                                     season_number=season_no,
                                     episode_number=episode_info['epnum'],
                                     air_date=datetime.strptime(episode_info['airdate'], '%Y-%m-%d'),
                                     title=episode_info['title'],
                                     link=episode_info['link'],
                                     watched='N')
                db.db.session.add(episode)
            else:
                episode.episode_number = episode_info['epnum']
                episode.air_date = datetime.strptime(episode_info['airdate'], '%Y-%m-%d')
                episode.title = episode_info['title']
                episode.link = episode_info['link']

            episode_count += 1

    show.episodes_saved_at = datetime.now()
    db.db.session.commit()
    return jsonify({
        'status': 'success',
        'message': 'Successfully episode list',
        'show_id': show_id,
        'episode_count': episode_count,
        'episode_saved_at_iso': show.episodes_saved_at.isoformat(),
        'episode_saved_at_readable': show.episodes_saved_at.strftime('%c')
    })
Ejemplo n.º 3
0
Archivo: parser.py Proyecto: ekohl/next
def get_all_eps(sid):
    '''
    This method parses episode list from the TVRage database for a given sid and
    returns an Episode object for each episode in the list
    '''
    tree = ET.ElementTree(feeds.episode_list(sid))
    showname = tree.find(tvrpath.EPLIST_NAME).text
    results = []
    seasons = map(ET.ElementTree, tree.findall(tvrpath.EPLIST_SEASON))
    for season in seasons:
        seasonnum = season.getroot().get(tvrpath.EPLIST_SEASONNUM)
        eps = map(ET.ElementTree, season.findall(tvrpath.EPLIST_EPISODE))
        for ep in eps:
            epnum = ep.find(tvrpath.EPLIST_EPNUM).text
            title = ep.find(tvrpath.EPLIST_TITLE).text
            airdate = ep.find(tvrpath.EPLIST_AIRDATE).text
            results.append(Episode(sid, showname, seasonnum, epnum, title, airdate))
    return results
Ejemplo n.º 4
0
    def _tvrageEpisideInfo(self):
        log.debug("_tvrageEpisideInfo: Input Parm: {!s}".format(self.series.getDict()))

        self.series.episodeData = []
        _epinfo = etree_to_dict(feeds.episode_list(self.series.tvrage_id, node="Episodelist"))["Episodelist"]["Season"]
        _seasons = self._tvrageBuildTVSeason(_epinfo)
        self.series.seasons = _seasons
        if self.series.season is not None:
            _season = self.series.seasons["<Season {0:04}>".format(int(self.series.season))]
            if self.series.episodeNums:
                for epno in self.series.episodeNums:
                    _episode = _season.episodes["E{0:02d}".format(int(epno))]
                    self.series.addRageEpisode(_season, _episode)
            else:
                for _episode in _season.episodes.itervalues():
                    self.series.addRageEpisode(_season, _episode)
        else:
            for _season in _seasons.itervalues():
                for _episode in _season.episodes.itervalues():
                    self.series.addRageEpisode(_season, _episode)

        return