2
from flexget.entry import Entry
3
from flexget.plugin import register_plugin, PluginError, get_plugin_by_name, DependencyError
6
from flexget.plugins.filter.movie_queue import queue_get
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"""
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')
25
def prepare_config(self, config):
26
if isinstance(config, bool):
27
config = {'year': True, 'quality': True}
30
def on_feed_input(self, feed, config):
33
config = self.prepare_config(config)
36
imdb_entries = queue_get()
38
for imdb_entry in imdb_entries:
40
# make sure the entry has IMDB fields filled
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)
46
# check if title is a imdb url (leftovers from old database?)
47
# TODO: maybe this should be fixed at the queue_get ...
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']
53
log.error('Found imdb url in imdb queue, but lookup failed: %s' % entry['title'])
57
entry['title'] = imdb_entry.title
60
# Add the year and quality if configured to
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
66
log.debug('Added title and IMDB id to new entry: %s - %s' %
67
(entry['title'], entry['imdb_id']))
71
register_plugin(EmitIMDBQueue, 'emit_movie_queue', api_ver=2)