Source code for flexget.plugins.operate.sleep

import time

from loguru import logger

from flexget import plugin
from flexget.event import event

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


[docs] class PluginSleep: """Cause a pause in execution to occur at the beginning of the specified phase of a task. The point at which the pause occurs can be adjusted using the `plugin_priority` plugin. """ schema = { 'oneOf': [ { 'type': 'object', 'properties': { 'seconds': {'type': 'integer'}, 'phase': { 'type': 'string', 'enum': [ 'start', 'input', 'metainfo', 'filter', 'download', 'modify', 'output', 'learn', 'abort', 'exit', ], 'default': 'start', }, }, 'required': ['seconds'], 'additionalProperties': False, }, {'type': 'integer'}, ] }
[docs] def do_sleep(self, config, phase): if isinstance(config, int): config = {'phase': 'start', 'seconds': config} if config and config['phase'] == phase: logger.verbose('Sleeping for {} seconds.', config['seconds']) time.sleep(int(config['seconds']))
[docs] @plugin.priority(plugin.PRIORITY_FIRST) def on_task_start(self, task, config): self.do_sleep(config, 'start')
[docs] @plugin.priority(plugin.PRIORITY_FIRST) def on_task_input(self, task, config): self.do_sleep(config, 'input')
[docs] @plugin.priority(plugin.PRIORITY_FIRST) def on_task_metainfo(self, task, config): self.do_sleep(config, 'metainfo')
[docs] @plugin.priority(plugin.PRIORITY_FIRST) def on_task_filter(self, task, config): self.do_sleep(config, 'filter')
[docs] @plugin.priority(plugin.PRIORITY_FIRST) def on_task_download(self, task, config): self.do_sleep(config, 'download')
[docs] @plugin.priority(plugin.PRIORITY_FIRST) def on_task_modify(self, task, config): self.do_sleep(config, 'modify')
[docs] @plugin.priority(plugin.PRIORITY_FIRST) def on_task_output(self, task, config): self.do_sleep(config, 'output')
[docs] @plugin.priority(plugin.PRIORITY_FIRST) def on_task_learn(self, task, config): self.do_sleep(config, 'learn')
[docs] @plugin.priority(plugin.PRIORITY_FIRST) def on_task_abort(self, task, config): self.do_sleep(config, 'abort')
[docs] @plugin.priority(plugin.PRIORITY_FIRST) def on_task_exit(self, task, config): self.do_sleep(config, 'exit')
[docs] @event('plugin.register') def register_plugin(): plugin.register(PluginSleep, 'sleep', api_ver=2)