From 1832a54ee97407b5849fe3fcfb45004813e658cc Mon Sep 17 00:00:00 2001 From: angelblue05 Date: Sun, 9 Sep 2018 02:49:56 -0500 Subject: [PATCH] Update patch process Add extra verification --- .../resource.language.en_gb/strings.po | 8 +++++ resources/lib/entrypoint/service.py | 9 ++++- resources/lib/helper/__init__.py | 1 + resources/lib/helper/utils.py | 35 +++++++++++++++++-- resources/settings.xml | 2 +- 5 files changed, 50 insertions(+), 5 deletions(-) diff --git a/resources/language/resource.language.en_gb/strings.po b/resources/language/resource.language.en_gb/strings.po index 05cedd70..b0ebb0f1 100644 --- a/resources/language/resource.language.en_gb/strings.po +++ b/resources/language/resource.language.en_gb/strings.po @@ -777,3 +777,11 @@ msgstr "" msgctxt "#33159" msgid "Enable audio/subtitles selection" msgstr "" + +msgctxt "#33160" +msgid "To avoid errors, please update Emby for Kodi to version: " +msgstr "" + +msgctxt "#33161" +msgid "Check for updates" +msgstr "" diff --git a/resources/lib/entrypoint/service.py b/resources/lib/entrypoint/service.py index 64ec9dd2..5e547dc5 100644 --- a/resources/lib/entrypoint/service.py +++ b/resources/lib/entrypoint/service.py @@ -19,7 +19,7 @@ import setup import monitor from libraries import requests from views import Views, verify_kodi_defaults -from helper import _, window, settings, event, dialog, find +from helper import _, window, settings, event, dialog, find, compare_version from downloader import get_objects from emby import Emby @@ -42,6 +42,7 @@ class Service(xbmc.Monitor): def __init__(self): + self.settings['addon_version'] = client.get_version() self.settings['profile'] = xbmc.translatePath('special://profile') self.settings['mode'] = settings('useDirectPaths') self.settings['log_level'] = settings('logLevel') or "1" @@ -157,6 +158,12 @@ class Service(xbmc.Monitor): else: dialog("notification", heading="{emby}", message=_(33156), icon="{emby}") + try: + if compare_version(self.settings['addon_version'], objects.embyversion) < 0: + dialog("ok", heading="{emby}", line1="%s %s" % (_(33160), objects.embyversion)) + except Exception: + pass + except Exception as error: LOG.exception(error) diff --git a/resources/lib/helper/__init__.py b/resources/lib/helper/__init__.py index 408878de..3066cfab 100644 --- a/resources/lib/helper/__init__.py +++ b/resources/lib/helper/__init__.py @@ -13,6 +13,7 @@ from utils import values from utils import JSONRPC from utils import indent from utils import write_xml +from utils import compare_version from wrapper import progress from wrapper import catch diff --git a/resources/lib/helper/utils.py b/resources/lib/helper/utils.py index befc48f8..72a87113 100644 --- a/resources/lib/helper/utils.py +++ b/resources/lib/helper/utils.py @@ -86,6 +86,34 @@ def settings(setting, value=None): def create_id(): return uuid4() +def compare_version(a, b): + + ''' -1 a is smaller + 1 a is larger + 0 equal + ''' + a = a.split('.') + b = b.split('.') + + for i in range(0, max(len(a), len(b)), 1): + try: + aVal = a[i] + except IndexError: + aVal = 0 + + try: + bVal = b[i] + except IndexError: + bVal = 0 + + if aVal < bVal: + return -1 + + if aVal > bVal: + return 1 + + return 0 + def find(dict, item): ''' Find value in dictionary. @@ -231,7 +259,7 @@ def delete_folder(path=None): ''' Delete objects from kodi cache ''' LOG.debug("--[ delete folder ]") - + delete_path = path is not None path = path or xbmc.translatePath('special://temp/emby').decode('utf-8') dirs, files = xbmcvfs.listdir(path) @@ -240,8 +268,9 @@ def delete_folder(path=None): for file in files: xbmcvfs.delete(os.path.join(path, file.decode('utf-8'))) - xbmcvfs.delete(path) - LOG.info("deleted %s", path) + if delete_path: + xbmcvfs.delete(path) + LOG.info("DELETE %s", path) def delete_recursive(path, dirs): diff --git a/resources/settings.xml b/resources/settings.xml index 3135493f..e085a702 100644 --- a/resources/settings.xml +++ b/resources/settings.xml @@ -86,7 +86,7 @@ - +