From 7c4f18da4bc41cad68dbd02a2abb150c83084236 Mon Sep 17 00:00:00 2001 From: marco <10120390+mac12m99@users.noreply.github.com> Date: Sun, 8 Nov 2020 11:35:14 +0100 Subject: [PATCH] workaround corruzzione settings.xml --- platformcode/launcher.py | 16 +++++++++++++--- service.py | 3 +++ 2 files changed, 16 insertions(+), 3 deletions(-) diff --git a/platformcode/launcher.py b/platformcode/launcher.py index d16ddf26..4d950d4b 100644 --- a/platformcode/launcher.py +++ b/platformcode/launcher.py @@ -72,9 +72,19 @@ def run(item=None): else: item = Item(channel="channelselector", action="getmainlist", viewmode="movie") if not config.get_setting('show_once'): - from platformcode import xbmc_videolibrary - xbmc_videolibrary.ask_set_content(silent=False) - config.set_setting('show_once', True) + if not config.get_all_settings_addon(): + logger.error('corrupted settings.xml!!') + settings_xml = os.path.join(config.get_data_path(), "settings.xml") + settings_bak = os.path.join(config.get_data_path(), "settings.bak") + if filetools.exists(settings_bak): + filetools.copy(settings_bak, settings_xml, True) + logger.info('restored settings.xml from backup') + else: + filetools.write(settings_xml, '\n') # resetted settings + else: + from platformcode import xbmc_videolibrary + xbmc_videolibrary.ask_set_content(silent=False) + config.set_setting('show_once', True) logger.info(item.tostring()) diff --git a/service.py b/service.py index ada1b043..ad4182fe 100644 --- a/service.py +++ b/service.py @@ -326,6 +326,9 @@ class AddonMonitor(xbmc.Monitor): def onSettingsChanged(self): logger.debug('settings changed') settings_post = config.get_all_settings_addon() + if settings_post: # backup settings + filetools.copy(os.path.join(config.get_data_path(), "settings.xml"), + os.path.join(config.get_data_path(), "settings.bak"), True) from platformcode import xbmc_videolibrary if self.settings_pre.get('downloadpath', None) != settings_post.get('downloadpath', None):