2
from flexget.entry import Entry
3
from flexget.plugin import register_plugin, DependencyError
5
log = logging.getLogger('emit_series')
8
from flexget.plugins.filter.series import Series, Episode, SeriesDatabase
11
raise DependencyError(issued_by='emit_series', missing='series')
14
class EmitSeries(SeriesDatabase):
16
Emit next episode number from all known series.
18
Supports only series enumerated by season, episode.
22
from flexget import validator
23
return validator.factory('boolean')
25
def on_feed_input(self, feed, config):
27
for series in feed.session.query(Series).all():
28
latest = self.get_latest_info(feed.session, series.name)
30
# no latest known episode, skip
33
# TODO: do this only after average time between episode has been passed since
36
# try next episode (eg. S01E02)
37
title = '%s S%02dE%02d' % (series.name, latest['season'], latest['episode'] + 1)
38
feed.entries.append(Entry(title=title, url=''))
40
# different syntax (eg. 01x02)
41
title = '%s %02dx%02d' % (series.name, latest['season'], latest['episode'] + 1)
42
feed.entries.append(Entry(title=title, url=''))
44
# TODO: do this only if there hasn't been new episode in few weeks
47
title = '%s S%02dE%02d' % (series.name, latest['season'] + 1, 1)
48
feed.entries.append(Entry(title=title, url=''))
53
register_plugin(EmitSeries, 'emit_series', api_ver=2)