flexget.plugins.output_dump
Covered: 32 lines
Missed: 11 lines
Skipped 15 lines
Percent: 74 %
 1
from flexget.plugin import register_plugin, register_parser_option
 2
import logging
 4
log = logging.getLogger('dump')
 7
def dump(entries, debug=False):
 8
    """Dump :entries: to stdout"""
 9
    for entry in entries:
13
        for field in entry:
14
            value = entry[field]
15
            if isinstance(value, basestring):
16
                try:
17
                    print '%-17s: %s' % (field, value.replace('\r', '').replace('\n', ''))
18
                except:
19
                    print '%-17s: %s (warning: unable to print)' % (field, repr(value))
20
            elif isinstance(value, (int, float, list, dict)):
21
                print '%-17s: %s' % (field, value)
22
            elif value is None:
23
                print '%-17s: %s' % (field, value)
24
            else:
25
                if debug:
26
                    print '%-17s: [not printable] (%s)' % (field, value)
27
        print ''
30
class OutputDump(object):
31
    """
32
        Dummy plugin for testing, outputs all entries to stdout
33
    """
35
    def validator(self):
36
        from flexget import validator
37
        return validator.factory('boolean')
39
    def on_feed_output(self, feed):
40
        if not 'dump' in feed.config and not feed.manager.options.dump_entries:
41
            return
45
        undecided = [entry for entry in feed.entries if not entry in feed.accepted]
46
        if undecided:
47
            print '-- Undecided: --------------------------'
48
            dump(undecided, feed.manager.options.debug)
49
        if feed.accepted:
50
            print '-- Accepted: ---------------------------'
51
            dump(feed.accepted, feed.manager.options.debug)
52
        if feed.rejected:
53
            print '-- Rejected: ---------------------------'
54
            dump(feed.rejected, feed.manager.options.debug)
56
register_plugin(OutputDump, 'dump', builtin=True)
57
register_parser_option('--dump', action='store_true', dest='dump_entries', default=False, help='Display all feed entries')