Source code for flexget.plugins.cli.templates
from flexget import options
from flexget.event import event
from flexget.terminal import TerminalTable, console, table_parser
from flexget.utils.template import get_template, list_templates
[docs]
def list_file_templates(manager, options):
header = [
'Name',
'Use with',
TerminalTable.Column('Full Path', overflow='fold'),
TerminalTable.Column('Contents', overflow='ignore'),
]
table = TerminalTable(*header, table_type=options.table_type, show_lines=True)
console('Fetching all file templates, stand by...')
for template_name in list_templates(extensions=['template']):
if options.name and options.name not in template_name:
continue
template = get_template(template_name)
if 'entries' in template_name:
plugin = 'notify_entries'
elif 'task' in template_name:
plugin = 'notify_task'
else:
plugin = '-'
name = template_name.replace('.template', '').split('/')[-1]
with open(template.filename) as contents:
table.add_row(name, plugin, template.filename, contents.read().strip())
console(table)
[docs]
@event('options.register')
def register_parser_arguments():
parser = options.register_command(
'templates',
list_file_templates,
help='View all available templates',
parents=[table_parser],
)
parser.add_argument('--name', help='Filter results by template name')