コード例 #1
0
    def post(self, session):
        """ Create a new show and set its first accepted episode and/or alternate names """
        data = request.json
        series_name = data.get('series_name')

        normalized_name = series.normalize_series_name(series_name)
        matches = series.shows_by_exact_name(normalized_name, session=session)
        if matches:
            return {'status': 'error',
                    'message': 'Show `%s` already exist in DB' % series_name
                    }, 500
        show = series.Series()
        show.name = series_name
        session.add(show)

        ep_id = data.get('episode_identifier')
        alt_names = data.get('alternate_names')
        if ep_id:
            try:
                series.set_series_begin(show, ep_id)
            except ValueError as e:
                return {'status': 'error',
                        'message': e.args[0]
                        }, 501
        if alt_names:
            try:
                series.set_alt_names(alt_names, show, session)
            except PluginError as e:
                return {'status': 'error',
                        'message': e.value
                        }, 502

        return jsonify(get_series_details(show))
コード例 #2
0
ファイル: series.py プロジェクト: NoMaillard/Flexget
    def post(self, session):
        """ Create a new show and set its first accepted episode and/or alternate names """
        data = request.json
        series_name = data.get('series_name')

        normalized_name = series.normalize_series_name(series_name)
        matches = series.shows_by_exact_name(normalized_name, session=session)
        if matches:
            return {'status': 'error',
                    'message': 'Show `%s` already exist in DB' % series_name
                    }, 500
        show = series.Series()
        show.name = series_name
        session.add(show)

        ep_id = data.get('episode_identifier')
        alt_names = data.get('alternate_names')
        if ep_id:
            try:
                series.set_series_begin(show, ep_id)
            except ValueError as e:
                return {'status': 'error',
                        'message': e.args[0]
                        }, 501
        if alt_names:
            try:
                series.set_alt_names(alt_names, show, session)
            except PluginError as e:
                return {'status': 'error',
                        'message': e.value
                        }, 502

        return jsonify(get_series_details(show))
コード例 #3
0
    def put(self, show_id, session):
        """ Set the initial episode of an existing show """
        try:
            show = series.show_by_id(show_id, session=session)
        except NoResultFound:
            return {'status': 'error',
                    'message': 'Show with ID %s not found' % show_id
                    }, 404
        data = request.json
        ep_id = data.get('episode_identifier')
        alt_names = data.get('alternate_names')
        if ep_id:
            try:
                series.set_series_begin(show, ep_id)
            except ValueError as e:
                return {'status': 'error',
                        'message': e.args[0]
                        }, 501
        if alt_names:
            try:
                series.set_alt_names(alt_names, show, session)
            except PluginError as e:
                return {'status': 'error',
                        'message': e.value
                        }, 502

        return jsonify(get_series_details(show))
コード例 #4
0
ファイル: series.py プロジェクト: NoMaillard/Flexget
    def put(self, show_id, session):
        """ Set the initial episode of an existing show """
        try:
            show = series.show_by_id(show_id, session=session)
        except NoResultFound:
            return {'status': 'error',
                    'message': 'Show with ID %s not found' % show_id
                    }, 404
        data = request.json
        ep_id = data.get('episode_identifier')
        alt_names = data.get('alternate_names')
        if ep_id:
            try:
                series.set_series_begin(show, ep_id)
            except ValueError as e:
                return {'status': 'error',
                        'message': e.args[0]
                        }, 501
        if alt_names:
            try:
                series.set_alt_names(alt_names, show, session)
            except PluginError as e:
                return {'status': 'error',
                        'message': e.value
                        }, 502

        return jsonify(get_series_details(show))
コード例 #5
0
ファイル: series.py プロジェクト: BackSlasher/Flexget
    def post(self, session):
        """ Create a new show and set its first accepted episode and/or alternate names """
        data = request.json
        series_name = data.get('name')

        normalized_name = series.normalize_series_name(series_name)
        matches = series.shows_by_exact_name(normalized_name, session=session)
        if matches:
            raise Conflict('Show `%s` already exist in DB' % series_name)
        show = series.Series()
        show.name = series_name
        session.add(show)

        ep_id = data.get('begin_episode')
        alt_names = data.get('alternate_names')
        if ep_id:
            series.set_series_begin(show, ep_id)
        if alt_names:
            try:
                series.set_alt_names(alt_names, show, session)
            except PluginError as e:
                # Alternate name already exist for a different show
                raise Conflict(e.value)
        session.commit()
        rsp = jsonify(series_details(show, begin=ep_id is not None))
        rsp.status_code = 201
        return rsp
コード例 #6
0
    def post(self, session):
        """ Create a new show and set its first accepted episode and/or alternate names """
        data = request.json
        series_name = data.get('name')

        normalized_name = series.normalize_series_name(series_name)
        matches = series.shows_by_exact_name(normalized_name, session=session)
        if matches:
            raise Conflict('Show `%s` already exist in DB' % series_name)
        show = series.Series()
        show.name = series_name
        session.add(show)

        ep_id = data.get('begin_episode')
        alt_names = data.get('alternate_names')
        if ep_id:
            series.set_series_begin(show, ep_id)
        if alt_names:
            try:
                series.set_alt_names(alt_names, show, session)
            except PluginError as e:
                # Alternate name already exist for a different show
                raise Conflict(e.value)
        session.commit()
        rsp = jsonify(series_details(show, begin=ep_id is not None))
        rsp.status_code = 201
        return rsp
コード例 #7
0
ファイル: series_begin.py プロジェクト: thisirs/Flexget
 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']))
コード例 #8
0
ファイル: series_begin.py プロジェクト: ARLahan/Flexget
 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']))
コード例 #9
0
ファイル: series.py プロジェクト: AnthonyGuerreiro/Flexget
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()
コード例 #10
0
ファイル: series.py プロジェクト: psuedoSudo/Flexget
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()
コード例 #11
0
 def put(self, show_id, session):
     """ Set the initial episode of an existing show """
     try:
         show = series.show_by_id(show_id, session=session)
     except NoResultFound:
         raise NotFoundError('Show with ID %s not found' % show_id)
     data = request.json
     ep_id = data.get('begin_episode')
     alt_names = data.get('alternate_names')
     if ep_id:
         series.set_series_begin(show, ep_id)
     if alt_names:
         try:
             series.set_alt_names(alt_names, show, session)
         except PluginError as e:
             # Alternate name already exist for a different show
             raise Conflict(e.value)
     return jsonify(series_details(show, begin=ep_id is not None))
コード例 #12
0
ファイル: series.py プロジェクト: BackSlasher/Flexget
 def put(self, show_id, session):
     """ Set the initial episode of an existing show """
     try:
         show = series.show_by_id(show_id, session=session)
     except NoResultFound:
         raise NotFoundError('Show with ID %s not found' % show_id)
     data = request.json
     ep_id = data.get('begin_episode')
     alt_names = data.get('alternate_names')
     if ep_id:
         series.set_series_begin(show, ep_id)
     if alt_names:
         try:
             series.set_alt_names(alt_names, show, session)
         except PluginError as e:
             # Alternate name already exist for a different show
             raise Conflict(e.value)
     return jsonify(series_details(show, begin=ep_id is not None))
コード例 #13
0
 def post(self, name, session):
     """ Create a new show and set its first accepted episode """
     normalized_name = series.normalize_series_name(name)
     matches = series.shows_by_exact_name(normalized_name, session=session)
     if matches:
         return {
             'status': 'error',
             'message': 'Show `%s` already exist in DB' % name
         }, 500
     show = series.Series()
     show.name = name
     session.add(show)
     data = request.json
     ep_id = data.get('episode_identifier')
     try:
         series.set_series_begin(show, ep_id)
     except ValueError as e:
         return {'status': 'error', 'message': e.args[0]}, 400
     return jsonify(get_series_details(show))
コード例 #14
0
ファイル: series.py プロジェクト: bhcommander/Flexget
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('Unknown series `%s`' % series_name)
        return
    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()
コード例 #15
0
ファイル: series.py プロジェクト: Klaboe/Flexget
 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()
コード例 #16
0
ファイル: series.py プロジェクト: Marmau/Flexget
 def post(self, name, session):
     """ Create a new show and set its first accepted episode """
     normalized_name = series.normalize_series_name(name)
     matches = series.shows_by_exact_name(normalized_name, session=session)
     if matches:
         return {'status': 'error',
                 'message': 'Show `%s` already exist in DB' % name
                 }, 500
     show = series.Series()
     show.name = name
     session.add(show)
     data = request.json
     ep_id = data.get('episode_identifier')
     try:
         series.set_series_begin(show, ep_id)
     except ValueError as e:
         return {'status': 'error',
                 'message': e.args[0]
                 }, 400
     return jsonify(get_series_details(show))
コード例 #17
0
ファイル: series.py プロジェクト: psuedoSudo/Flexget
 def put(self, show_id, session):
     """ Set the initial episode of an existing show """
     try:
         show = series.show_by_id(show_id, session=session)
     except NoResultFound:
         return {'status': 'error',
                 'message': 'Show with ID %s not found' % show_id
                 }, 404
     data = request.json
     ep_id = data.get('episode_identifier')
     try:
         series.set_series_begin(show, ep_id)
     except ValueError as e:
         return {'status': 'error',
                 'message': e.args[0]
                 }, 400
     return jsonify({'status': 'success',
             'message': 'Episodes will be accepted starting with `%s`' % ep_id,
             'show': get_series_details(show)
             })
コード例 #18
0
ファイル: series.py プロジェクト: cyberguard/Flexget
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()
コード例 #19
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()
コード例 #20
0
ファイル: series.py プロジェクト: Davst/Flexget
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()
コード例 #21
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()