Source code for flexget.plugins.metainfo.media_id

from loguru import logger

from flexget import plugin
from flexget.entry import register_lazy_lookup
from flexget.event import event

logger = logger.bind(name='metainfo_media_id')


[docs] class MetainfoMediaId: """Populate media_id field based on media type etc.""" schema = {'type': 'boolean'}
[docs] @plugin.priority(0) # run after other metainfo plugins def on_task_metainfo(self, task, config): # Don't run if we are disabled if config is False: return for entry in task.entries: entry.add_lazy_fields(self.get_media_id, ['media_id'])
[docs] @register_lazy_lookup('media_id') def get_media_id(self, entry): # Try to generate a media id based on available parser fields media_id = None if entry.get('movie_name'): media_id = entry['movie_name'] if entry.get('movie_year'): media_id = f'{media_id} {entry["movie_year"]}' elif entry.get('series_name'): media_id = entry['series_name'] if entry.get('series_year'): media_id = f'{media_id} {entry["series_year"]}' if entry.get('series_episode'): media_id = f'{media_id} S{(entry.get("series_season") or 0):02}E{entry["series_episode"]:02}' elif entry.get('series_season'): media_id = f'{media_id} S{entry["series_season"]:02}E00' elif entry.get('series_date'): media_id = f'{media_id} {entry["series_date"]}' else: # We do not want a media id for series media_id = None if media_id: media_id = media_id.strip().lower() entry['media_id'] = media_id
[docs] @event('plugin.register') def register_plugin(): plugin.register(MetainfoMediaId, 'metainfo_media_id', api_ver=2, builtin=True)