2
from flexget.plugin import *
3
from flexget.utils import qualities
5
log = logging.getLogger('metainfo_quality')
8
class MetainfoQuality(object):
12
Set quality attribute for entries.
16
from flexget import validator
17
return validator.factory('boolean')
19
def on_feed_metainfo(self, feed):
20
# check if disabled (value set to false)
21
if 'metainfo_quality' in feed.config:
22
if not feed.config['metainfo_quality']:
24
for entry in feed.entries:
25
self.get_quality(entry)
27
def field_order(self, x):
28
"""helper function, iterate entry fields in certain order"""
29
order = ['title', 'description']
30
return order.index(x[0]) if x[0] in order else len(order)
32
def get_quality(self, entry):
33
for field_name, field_value in sorted(entry.items(),
34
key=self.field_order):
35
if not isinstance(field_value, basestring):
37
# ignore some fields ...
38
if field_name in ['feed']:
40
quality = qualities.parse_quality(field_value)
41
if quality > qualities.UNKNOWN:
42
# if we find a quality in this field, stop searching
44
entry['quality'] = quality
45
log.debugall('Found quality %s (%s) for %s from field %s' % \
46
(entry['quality'], quality, entry['title'], field_name))
49
register_plugin(MetainfoQuality, 'metainfo_quality', builtin=True)