From 2ec188341c76b7d708b9bc28c35a066af143f1d6 Mon Sep 17 00:00:00 2001 From: angelblue05 Date: Thu, 4 Oct 2018 23:38:55 -0500 Subject: [PATCH] Fix slowness --- resources/lib/downloader.py | 21 +++++++++++++-------- resources/lib/entrypoint/default.py | 2 +- resources/lib/entrypoint/service.py | 2 +- 3 files changed, 15 insertions(+), 10 deletions(-) diff --git a/resources/lib/downloader.py b/resources/lib/downloader.py index f63ceacf..7b0f7140 100644 --- a/resources/lib/downloader.py +++ b/resources/lib/downloader.py @@ -277,8 +277,17 @@ class GetItemWorker(threading.Thread): return + request = { + 'type': "GET", + 'handler': "Users/{UserId}/Items", + 'params': { + 'Ids': ','.join(str(x) for x in item_ids), + 'Fields': api.info() + } + } + try: - result = self.server['api'].get_items(item_ids) + result = self.server['http/request'](request, s) for item in result['Items']: @@ -313,11 +322,7 @@ class TheVoid(object): self.method = method self.data = data - def get(self, timeout=None, default=None): - - ''' Timeout in seconds, if exceeded will return the default value. - ''' - last_progress = datetime.today() + def get(self): while True: @@ -330,12 +335,12 @@ class TheVoid(object): return response - if window('emby_should_stop.bool') or timeout and (datetime.today() - last_progress).seconds > timeout: + if window('emby_should_stop.bool'): LOG.info("Abandon mission! A black hole just swallowed [ %s/%s ]", self.method, self.data['VoidName']) return default - xbmc.sleep(10) + xbmc.sleep(100) def get_objects(src, filename): diff --git a/resources/lib/entrypoint/default.py b/resources/lib/entrypoint/default.py index d76c7da4..16bfaf9c 100644 --- a/resources/lib/entrypoint/default.py +++ b/resources/lib/entrypoint/default.py @@ -68,7 +68,7 @@ class Events(object): elif mode =='play': - item = TheVoid('GetItem', {'Id': params['id'], 'ServerId': server}).get(10, {'Items': {}}) + item = TheVoid('GetItem', {'Id': params['id'], 'ServerId': server}).get() Actions(server).play(item, params.get('dbid'), playlist=params.get('playlist') == 'true') elif mode == 'playlist': diff --git a/resources/lib/entrypoint/service.py b/resources/lib/entrypoint/service.py index 66ff2919..a4c05cdd 100644 --- a/resources/lib/entrypoint/service.py +++ b/resources/lib/entrypoint/service.py @@ -228,7 +228,7 @@ class Service(xbmc.Monitor): LOG.debug("[ %s: %s ] %s", sender, method, json.dumps(data, indent=4)) if method == 'ServerOnline': - if data['ServerId'] is None: + if data.get('ServerId') is None: window('emby_online.bool', True) self.settings['auth_check'] = True