Source code for flexget.components.series.series_begin
from loguru import logger
from flexget import plugin
from flexget.event import event
from . import db
logger = logger.bind(name='set_series_begin')
[docs]
class SetSeriesBegin:
"""Set the first episode for series. Uses series_name and series_id.
Example::
set_series_begin: yes
"""
schema = {'type': 'boolean'}
[docs]
def on_task_output(self, task, config):
if not (config and task.accepted):
return
for entry in task.accepted:
if entry.get('series_name') and entry.get('series_id'):
fshow = (
task.session
.query(db.Series)
.filter(db.Series.name == entry['series_name'])
.first()
)
if not fshow:
fshow = db.Series()
fshow.name = entry['series_name']
task.session.add(fshow)
try:
db.set_series_begin(fshow, entry['series_id'])
except ValueError as e:
logger.error(
'An error occurred trying to set begin for {}: {}', entry['series_name'], e
)
logger.info(
'First episode for "{}" set to {}', entry['series_name'], entry['series_id']
)
[docs]
@event('plugin.register')
def register_plugin():
plugin.register(SetSeriesBegin, 'set_series_begin', api_ver=2)