Source code for flexget.plugins.metainfo.quality
from loguru import logger
from flexget import plugin
from flexget.entry import register_lazy_lookup
from flexget.event import event
from flexget.utils import qualities
logger = logger.bind(name='metainfo_quality')
[docs]
class MetainfoQuality:
"""Utility: Set quality attribute for entries."""
schema = {'type': 'boolean'}
[docs]
@plugin.priority(127) # Run after other plugins that might fill quality (series)
def on_task_metainfo(self, task, config):
# check if disabled (value set to false)
if config is False:
return
for entry in task.entries:
if isinstance(entry.get('quality', eval_lazy=False), str):
logger.debug(
'Quality is already set to {} for {}, but has not been instantiated properly.',
entry['quality'],
entry['title'],
)
entry['quality'] = qualities.Quality(entry.get('quality', eval_lazy=False))
else:
entry.add_lazy_fields(self.get_quality, ['quality'])
[docs]
@register_lazy_lookup('quality')
def get_quality(self, entry):
if entry.get('quality', eval_lazy=False):
logger.debug(
'Quality is already set to {} for {}, skipping quality detection.',
entry['quality'],
entry['title'],
)
return
entry['quality'] = qualities.Quality(entry['title'])
if entry['quality']:
logger.trace('Found quality {} for {}', entry['quality'], entry['title'])
[docs]
@event('plugin.register')
def register_plugin():
plugin.register(MetainfoQuality, 'metainfo_quality', api_ver=2, builtin=True)