Esempio n. 1
0
 def on_task_output(self, task, config):
     if not config:
         return
     with Session() as session:
         for entry in task.accepted:
             if 'series_name' in entry and 'series_id' in entry:
                 series_name = entry['series_name'].replace(r'\!', '!')
                 normalized_name = normalize_series_name(series_name)
                 series = shows_by_exact_name(normalized_name, session)
                 if not series:
                     log.info('Series not yet in database, adding `%s`' %
                              series_name)
                     series = Series()
                     series.name = series_name
                     session.add(series)
                 else:
                     series = series[0]
                 try:
                     add_series_entity(session,
                                       series,
                                       entry['series_id'],
                                       quality=entry['quality'])
                 except ValueError as e:
                     log.warn(e.args[0])
                 else:
                     log.info('Added entity `%s` to series `%s`.' %
                              (entry['series_id'], series.name.title()))
Esempio n. 2
0
def add(manager, options):
    series_name = options.series_name
    entity_ids = options.entity_id
    quality = options.quality or os.environ.get(ENV_ADD_QUALITY, None)
    series_name = series_name.replace(r'\!', '!')
    normalized_name = normalize_series_name(series_name)
    with Session() as session:
        series = shows_by_exact_name(normalized_name, session)
        if not series:
            console('Series not yet in database, adding `%s`' % series_name)
            series = Series()
            series.name = series_name
            session.add(series)
        else:
            series = series[0]
        for ent_id in entity_ids:
            try:
                add_series_entity(session, series, ent_id, quality=quality)
            except ValueError as e:
                console(e.args[0])
            else:
                console('Added entity `%s` to series `%s`.' %
                        (ent_id, series.name.title()))
        session.commit()
    manager.config_changed()
Esempio n. 3
0
 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(Series).filter(Series.name == entry['series_name']).first()
             if not fshow:
                 fshow = Series()
                 fshow.name = entry['series_name']
                 task.session.add(fshow)
             try:
                 set_series_begin(fshow, entry['series_id'])
             except ValueError as e:
                 self.log.error('An error occurred trying to set the series first episode: ' % e)
             self.log.info('First episode for "%s" set to %s' % (entry['series_name'], entry['series_id']))
Esempio n. 4
0
def begin(manager, options):
    series_name = options.series_name
    ep_id = options.episode_id
    session = Session()
    try:
        series = session.query(Series).filter(Series.name == series_name).first()
        if not series:
            console('Series not yet in database, adding `%s`' % series_name)
            series = Series()
            series.name = series_name
            session.add(series)
        try:
            set_series_begin(series, ep_id)
        except ValueError as e:
            console(e)
        else:
            console('Episodes for `%s` will be accepted starting with `%s`' % (series.name, ep_id))
            session.commit()
    finally:
        session.close()
    manager.config_changed()
Esempio n. 5
0
def begin(manager, options):
    series_name = options.series_name
    ep_id = options.episode_id
    normalized_name = normalize_series_name(series_name)
    with Session() as session:
        series = shows_by_exact_name(normalized_name, session)
        if not series:
            console('Series not yet in database, adding `%s`' % series_name)
            series = Series()
            series.name = series_name
            session.add(series)
        else:
            series = series[0]
        try:
            set_series_begin(series, ep_id)
        except ValueError as e:
            console(e)
        else:
            console('Episodes for `%s` will be accepted starting with `%s`' % (series.name, ep_id))
            session.commit()
        manager.config_changed()
Esempio n. 6
0
def begin(manager, options):
    series_name = options.series_name
    series_name = series_name.replace(r'\!', '!')
    normalized_name = normalize_series_name(series_name)
    with Session() as session:
        series = shows_by_exact_name(normalized_name, session)
        if options.forget:
            if not series:
                console('Series `%s` was not found in the database.' %
                        series_name)
            else:
                series = series[0]
                series.begin = None
                console('The begin episode for `%s` has been forgotten.' %
                        series.name)
                session.commit()
                manager.config_changed()
        elif options.episode_id:
            ep_id = options.episode_id
            if not series:
                console('Series not yet in database. Adding `%s`.' %
                        series_name)
                series = Series()
                series.name = series_name
                session.add(series)
            else:
                series = series[0]
            try:
                _, entity_type = set_series_begin(series, ep_id)
            except ValueError as e:
                console(e)
            else:
                if entity_type == 'season':
                    console('`%s` was identified as a season.' % ep_id)
                    ep_id += 'E01'
                console(
                    'Releases for `%s` will be accepted starting with `%s`.' %
                    (series.name, ep_id))
                session.commit()
            manager.config_changed()