Source code for flexget.components.rejected.cli
from flexget import options
from flexget.event import event
from flexget.manager import Session
from flexget.terminal import TerminalTable, console, table_parser
from . import db
[docs]
def do_cli(manager, options):
if options.rejected_action == 'list':
list_rejected(options)
elif options.rejected_action == 'clear':
clear_rejected(manager)
[docs]
def list_rejected(options):
with Session() as session:
results = session.query(db.RememberEntry).all()
header = ['#', 'Title', 'Task', 'Rejected by', 'Reason']
table = TerminalTable(*header, table_type=options.table_type)
for entry in results:
table.add_row(
str(entry.id), entry.title, entry.task.name, entry.rejected_by, entry.reason or ''
)
console(table)
[docs]
def clear_rejected(manager):
with Session() as session:
results = session.query(db.RememberEntry).delete()
console(f'Cleared {results} items.')
session.commit()
if results:
manager.config_changed()
[docs]
@event('options.register')
def register_parser_arguments():
parser = options.register_command(
'rejected', do_cli, help='list or clear remembered rejections'
)
subparsers = parser.add_subparsers(dest='rejected_action', metavar='<action>')
subparsers.add_parser(
'list', help='list all the entries that have been rejected', parents=[table_parser]
)
subparsers.add_parser(
'clear', help='clear all rejected entries from database, so they can be retried'
)