flexget.plugins.input.emit_movie_queue
Covered: 20 lines
Missed: 32 lines
Skipped 20 lines
Percent: 38 %
 1
import logging
 2
from flexget.entry import Entry
 3
from flexget.plugin import register_plugin, PluginError, get_plugin_by_name, DependencyError
 5
try:
 6
    from flexget.plugins.filter.movie_queue import queue_get
 7
except ImportError:
 8
    raise DependencyError(issued_by='emit_movie_queue', missing='movie_queue')
10
log = logging.getLogger('emit_movie_queue')
13
class EmitIMDBQueue(object):
14
    """Use your imdb queue as an input by emitting the content of it"""
16
    def validator(self):
17
        from flexget import validator
18
        root = validator.factory()
19
        root.accept('boolean')
20
        advanced = root.accept('dict')
21
        advanced.accept('boolean', key='year')
22
        advanced.accept('boolean', key='quality')
23
        return root
25
    def prepare_config(self, config):
26
        if isinstance(config, bool):
27
            config = {'year': True, 'quality': True}
28
        return config
30
    def on_feed_input(self, feed, config):
31
        if not config:
32
            return
33
        config = self.prepare_config(config)
35
        entries = []
36
        imdb_entries = queue_get()
38
        for imdb_entry in imdb_entries:
39
            entry = Entry()
41
            entry['url'] = ''
42
            entry['imdb_url'] = 'http://www.imdb.com/title/' + imdb_entry.imdb_id
43
            entry['imdb_id'] = imdb_entry.imdb_id
45
            get_plugin_by_name('tmdb_lookup').instance.lookup(entry)
48
            if 'http://' in imdb_entry.title:
49
                log.debug('queue contains url instead of title')
50
                if entry.get('movie_name'):
51
                    entry['title'] = entry['movie_name']
52
                else:
53
                    log.error('Found imdb url in imdb queue, but lookup failed: %s' % entry['title'])
54
                    continue
55
            else:
57
                entry['title'] = imdb_entry.title
61
            if config.get('year') and entry.get('movie_year'):
62
                entry['title'] += ' %s' % entry['movie_year']
63
            if config.get('quality') and imdb_entry.quality != 'ANY':
64
                entry['title'] += ' %s' % imdb_entry.quality
65
            entries.append(entry)
66
            log.debug('Added title and IMDB id to new entry: %s - %s' %
67
                     (entry['title'], entry['imdb_id']))
69
        return entries
71
register_plugin(EmitIMDBQueue, 'emit_movie_queue', api_ver=2)