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()
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()
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()))
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 begin for %s: %s' % (entry['series_name'], e)) self.log.info('First episode for "%s" set to %s' % (entry['series_name'], entry['series_id']))
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']))
def begin(manager, options): series_name = options.series_name ep_id = options.episode_id with Session() as session: series = shows_by_name(series_name, session)[0] 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() manager.config_changed()
def begin(self, manager, options): series_name = options.series_name ep_id = options.episode_id session = Session() 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()
def series_begin(manager): if not manager.options.series_begin: return manager.disable_tasks() series_name, ep_id = manager.options.series_begin session = Session() 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()
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()
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()
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()
def begin(manager, options): series_name = options.series_name series_name = series_name.replace(r'\!', '!') 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()