Source code for flexget.plugins.operate.entry_trace
from loguru import logger
from flexget import plugin
from flexget.event import event
logger = logger.bind(name='entry_trace')
[docs]
def on_entry_action(entry, act=None, task=None, reason=None, **kwargs):
entry[act.lower() + '_by'] = task.current_plugin
entry.pop('reason', None)
if reason:
entry['reason'] = reason
[docs]
class EntryOperations:
"""Records accept, reject and fail metainfo into entries.
Creates fields::
accepted_by: <plugin name>
rejected_by: <plugin name>
failed_by: <plugin name>
reason: <given message by plugin>
"""
[docs]
@plugin.priority(plugin.PRIORITY_LAST)
def on_task_input(self, task, config):
for entry in task.all_entries:
entry.on_accept(on_entry_action, act='accepted', task=task)
entry.on_reject(on_entry_action, act='rejected', task=task)
entry.on_fail(on_entry_action, act='failed', task=task)
[docs]
@event('plugin.register')
def register_plugin():
plugin.register(EntryOperations, 'entry_operations', builtin=True, api_ver=2)