2
from optparse import SUPPRESS_HELP
3
from flexget.plugin import register_plugin, register_parser_option, plugins, FEED_EVENTS, EVENT_METHODS, get_plugins_by_event
5
log = logging.getLogger('plugins')
8
class PluginsList(object):
13
def on_process_start(self, feed):
14
if feed.manager.options.plugins:
15
feed.manager.disable_feeds()
16
self.plugins_summary(feed.manager.options)
18
def plugins_summary(self, options):
20
print '%-20s%-30s%s' % ('Name', 'Roles (priority)', 'Info')
26
for event in FEED_EVENTS:
27
event_plugins = get_plugins_by_event(event)
28
for info in event_plugins:
29
for plugin in plugins:
30
if plugin['name'] == info['name']:
36
for info in event_plugins:
37
method_name = EVENT_METHODS[event]
38
priority = info.event_handlers[method_name].priority
40
if info['name'] in roles:
41
roles[info['name']].append('%s(%s)' % (event, priority))
43
roles[info['name']] = ['%s(%s)' % (event, priority)]
46
for plugin in plugins:
47
# do not include test classes, unless in debug mode
48
if plugin.get('debug_plugin', False) and not options.debug:
51
if plugin.instance.__doc__:
54
flags.append('builtin')
58
print '%-20s%-30s%s' % (name, ', '.join(roles[name]), ', '.join(flags))
62
register_plugin(PluginsList, '--plugins', builtin=True)
63
register_parser_option('--plugins', action='store_true', dest='plugins', default=False,
64
help='Print registered plugins summary')
65
register_parser_option('--list', action='store_true', dest='plugins', default=False,