workaround corruzzione settings.xml
This commit is contained in:
@@ -72,9 +72,19 @@ def run(item=None):
|
|||||||
else:
|
else:
|
||||||
item = Item(channel="channelselector", action="getmainlist", viewmode="movie")
|
item = Item(channel="channelselector", action="getmainlist", viewmode="movie")
|
||||||
if not config.get_setting('show_once'):
|
if not config.get_setting('show_once'):
|
||||||
from platformcode import xbmc_videolibrary
|
if not config.get_all_settings_addon():
|
||||||
xbmc_videolibrary.ask_set_content(silent=False)
|
logger.error('corrupted settings.xml!!')
|
||||||
config.set_setting('show_once', True)
|
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, '<settings version="2">\n</settings>') # 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())
|
logger.info(item.tostring())
|
||||||
|
|
||||||
|
|||||||
@@ -326,6 +326,9 @@ class AddonMonitor(xbmc.Monitor):
|
|||||||
def onSettingsChanged(self):
|
def onSettingsChanged(self):
|
||||||
logger.debug('settings changed')
|
logger.debug('settings changed')
|
||||||
settings_post = config.get_all_settings_addon()
|
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
|
from platformcode import xbmc_videolibrary
|
||||||
|
|
||||||
if self.settings_pre.get('downloadpath', None) != settings_post.get('downloadpath', None):
|
if self.settings_pre.get('downloadpath', None) != settings_post.get('downloadpath', None):
|
||||||
|
|||||||
Reference in New Issue
Block a user