Source code for flexget.components.emby.emby_refresh

from loguru import logger

from flexget import plugin
from flexget.components.emby.api_emby import EmbyApiLibrary, EmbyAuth
from flexget.components.emby.emby_util import SCHEMA_SERVER_TAG
from flexget.config_schema import one_or_more
from flexget.event import event

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


[docs] class EmbyRefreshLibrary: """Refresh Emby Library. Example:: emby_refresh: server: host: http://localhost:8096 username: <username> apikey: <apikey> return_host: wan when: accepted """ auth = None schema = { 'type': 'object', 'properties': { **SCHEMA_SERVER_TAG, 'when': one_or_more({ 'type': 'string', 'enum': ['accepted', 'rejected', 'failed', 'no_entries', 'aborted', 'always'], }), }, 'required': ['server'], 'additionalProperties': False, }
[docs] def login(self, config): if self.auth and self.auth.logged: return if not isinstance(config, dict): config = {} self.auth = EmbyAuth(**config) self.auth.login(True)
[docs] def prepare_config(self, config): config.setdefault('when', ['always']) when = config['when'] if when and not isinstance(when, list): config['when'] = [when]
[docs] def library_refresh(self): EmbyApiLibrary.library_refresh(self.auth)
[docs] def on_task_start(self, task, config): self.login(config)
@plugin.internet(logger) def on_task_exit(self, task, config): self.login(config) self.prepare_config(config) conditions = [ task.accepted and 'accepted' in config['when'], task.rejected and 'rejected' in config['when'], task.failed and 'failed' in config['when'], not task.all_entries and 'no_entries' in config['when'], 'always' in config['when'], ] if any(conditions): self.library_refresh()
[docs] def on_task_abort(self, task, config): self.prepare_config(config) if 'aborted' in config['when']: self.library_refresh()
[docs] @event('plugin.register') def register_plugin(): plugin.register(EmbyRefreshLibrary, 'emby_refresh', api_ver=2)