Source code for flexget.components.emby.emby_list
from loguru import logger
from flexget import plugin
from flexget.components.emby.api_emby import EmbyApi, EmbyApiList, EmbyAuth
from flexget.components.emby.emby_util import SCHEMA_SERVER_TAG
from flexget.event import event
logger = logger.bind(name='emby_list')
[docs]
class PluginEmbyList:
"""Return Emby Lists.
Example::
emby_list:
server:
host: http://localhost:8096
username: <username>
apikey: <apikey>
return_host: wan
list: watched
"""
auth = None
schema = {
'type': 'object',
'properties': {
**SCHEMA_SERVER_TAG,
'list': {'type': 'string'},
},
'required': ['server', 'list'],
'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 get_list(self, config):
self.login(config)
return EmbyApiList(auth=self.auth, **config)
[docs]
def on_task_start(self, task, config):
self.login(config)
@plugin.internet(logger)
def on_task_input(self, task, config):
self.login(config)
s_lists = EmbyApi.search_list(auth=self.auth, **config)
for s_list in s_lists:
entry = s_list.to_entry()
yield entry
[docs]
@event('plugin.register')
def register_plugin():
plugin.register(PluginEmbyList, 'emby_list', api_ver=2, interfaces=['task', 'list'])