From 1174c685e9de68fa878c37f9df1fe9010e8d064b Mon Sep 17 00:00:00 2001 From: angelblue05 Date: Sat, 13 Oct 2018 03:51:10 -0500 Subject: [PATCH] Restart service upon check for updates To reload the new objects module. --- resources/lib/entrypoint/service.py | 11 +++++++++- resources/lib/helper/utils.py | 2 +- service.py | 34 +++++++++++++++++++---------- 3 files changed, 34 insertions(+), 13 deletions(-) diff --git a/resources/lib/entrypoint/service.py b/resources/lib/entrypoint/service.py index 4cb74b74..21805587 100644 --- a/resources/lib/entrypoint/service.py +++ b/resources/lib/entrypoint/service.py @@ -115,10 +115,14 @@ class Service(xbmc.Monitor): if update: self.settings['last_progress'] = datetime.today() + if window('emby.restart.bool'): + window('emby.restart', clear=True) + + raise Exception('RestartService') + if self.waitForAbort(1): break - window('emby_should_stop.bool', True) self.shutdown() def start_default(self): @@ -400,8 +404,12 @@ class Service(xbmc.Monitor): Views().get_views() elif method == 'CheckUpdate': + if not self.check_update(): dialog("notification", heading="{emby}", message=_(21341), icon="{emby}", sound=False) + else: + dialog("notification", heading="{emby}", message=_(33181), icon="{emby}", sound=False) + window('emby.restart.bool', True) def onSettingsChanged(self): @@ -448,6 +456,7 @@ class Service(xbmc.Monitor): def shutdown(self): LOG.warn("---<[ EXITING ]") + window('emby_should_stop.bool', True) properties = [ # TODO: review "emby_state", "emby_serverStatus", diff --git a/resources/lib/helper/utils.py b/resources/lib/helper/utils.py index b737c703..c2f5db31 100644 --- a/resources/lib/helper/utils.py +++ b/resources/lib/helper/utils.py @@ -38,7 +38,7 @@ def window(key, value=None, clear=False, window_id=10000): if clear: LOG.debug("--[ window clear: %s ]", key) - window.clearProperty(key) + window.clearProperty(key.replace('.json', "").replace('.bool', "")) elif value is not None: if key.endswith('.json'): diff --git a/service.py b/service.py index 5d5782ba..985e6948 100644 --- a/service.py +++ b/service.py @@ -45,21 +45,33 @@ if __name__ == "__main__": LOG.warn("-->[ service ]") LOG.warn("Delay startup by %s seconds.", DELAY) - try: - session = Service() + while True: try: - if DELAY and xbmc.Monitor().waitForAbort(DELAY): - raise Exception("Aborted during startup delay") + session = Service() - session.service() - except Exception as error: # TODO, build exceptions + try: + if DELAY and xbmc.Monitor().waitForAbort(DELAY): + raise Exception("Aborted during startup delay") + + session.service() + + break + except Exception as error: # TODO, build exceptions + + LOG.exception(error) + session.shutdown() + + if 'RestartService' not in error: + LOG.warn("--<<[ service ]") + + break + + except Exception as error: + ''' Issue initializing the service. + ''' LOG.exception(error) - session.shutdown() - except Exception as error: - ''' Issue initializing the service. - ''' - LOG.exception(error) + break LOG.warn("--<[ service ]")