Merge pull request #682 from oddstr13/pr-queue-plugin-check-1

Improve KodiSyncQueue presence test
This commit is contained in:
mcarlton00 2022-10-18 23:11:10 -04:00 committed by GitHub
commit 3f540f96ab
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
2 changed files with 34 additions and 14 deletions

View file

@ -258,11 +258,35 @@ class API(object):
return self._get("Plugins") return self._get("Plugins")
def check_companion_installed(self): def check_companion_installed(self):
"""
None = Unknown
True = Installed, but possibly not loaded right now
False = Not installed, scheduled for uninstalling or disabled
"""
try: try:
self._get("Jellyfin.Plugin.KodiSyncQueue/GetServerDateTime") kodi_sync_queue = [
return True x
except Exception: for x in self.get_plugins()
return False if x.get("Id") == "771e19d653854cafb35c28a0e865cf63"
]
LOG.debug("KodiSyncQueue Plugins result: %s", kodi_sync_queue)
kodi_sync_queue_filtered = [
x
for x in kodi_sync_queue
if x.get("Status")
in ["Active", "Restart", "Malfunctioned", "NotSupported"]
]
if kodi_sync_queue_filtered:
return True
else:
return False
except requests.RequestException as e:
LOG.warning("Error checking companion installed state: %s", e)
return None
def get_seasons(self, show_id): def get_seasons(self, show_id):
return self.shows("/%s/Seasons" % show_id, params={ return self.shows("/%s/Seasons" % show_id, params={

View file

@ -343,8 +343,8 @@ class Library(threading.Thread):
if settings('SyncInstallRunDone.bool') and settings( if settings('SyncInstallRunDone.bool') and settings(
'kodiCompanion.bool' 'kodiCompanion.bool'
): ):
# None == Unknown
if self.server.jellyfin.check_companion_installed(): if self.server.jellyfin.check_companion_installed() is not False:
if not self.fast_sync(): if not self.fast_sync():
dialog("ok", "{jellyfin}", translate(33128)) dialog("ok", "{jellyfin}", translate(33128))
@ -353,8 +353,11 @@ class Library(threading.Thread):
LOG.info("--<[ retrieve changes ]") LOG.info("--<[ retrieve changes ]")
# is False
else: else:
raise LibraryException('CompanionMissing') dialog("ok", "{jellyfin}", translate(33099))
settings("kodiCompanion.bool", False)
return True
return True return True
except LibraryException as error: except LibraryException as error:
@ -370,13 +373,6 @@ class Library(threading.Thread):
return True return True
elif error.status == 'CompanionMissing':
dialog("ok", "{jellyfin}", translate(33099))
settings('kodiCompanion.bool', False)
return True
except Exception as error: except Exception as error:
LOG.exception(error) LOG.exception(error)