flexget.plugins.module_plugins
Covered: 16 lines
Missed: 35 lines
Skipped 16 lines
Percent: 31 %
 1
import logging
 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):
 9
    """
10
        Implements --plugins
11
    """
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):
19
        print '-' * 79
20
        print '%-20s%-30s%s' % ('Name', 'Roles (priority)', 'Info')
21
        print '-' * 79
24
        plugins = []
25
        roles = {}
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']:
31
                        break
32
                else:
33
                    plugins.append(info)
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))
42
                else:
43
                    roles[info['name']] = ['%s(%s)' % (event, priority)]
46
        for plugin in plugins:
48
            if plugin.get('debug_plugin', False) and not options.debug:
49
                continue
50
            flags = []
51
            if plugin.instance.__doc__:
52
                flags.append('--doc')
53
            if plugin.builtin:
54
                flags.append('builtin')
55
            if plugin.debug:
56
                flags.append('debug')
57
            name = plugin['name']
58
            print '%-20s%-30s%s' % (name, ', '.join(roles[name]), ', '.join(flags))
60
        print '-' * 79
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,
66
                       help=SUPPRESS_HELP)