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 @@
-
+