robweber / xbmcbackup

Backup Addon for Kodi
MIT License
107 stars 48 forks source link

Guisettings Restore Broken #154

Closed robweber closed 4 years ago

robweber commented 4 years ago

Describe the problem From Bluerayx on the Kodi Forum - settings restores are not working and haven't in some time.

After further investigation of this it appears the GuiSettingsManager class is not parsing the guisettings.xml file correctly. Upon restore this file is supposed to be read in and any settings that can be set using a JSONRPC call are set. The xml file parser is not giving back the correct key/value pairs so nothing is being set.

Platform and Kodi version Seems to be everything

Link to Debug Log Nothing to log by default but using a test addon to parse the guisettings.xml file this what is being returned by the GuiSettingsManager class:

2019-09-10 14:40:05.905 T:14476  NOTICE: plugin.addon.test: [settings.setting : false, settings.setting : false, settings.setting : false, settings.setting : true, settings.setting : 0, settings.setting : true, settings.setting : audioencoder.kodi.builtin.aac, settings.setting : , settings.setting : %A/%A - %B/[%N. ][%A - ]%T, settings.setting : true, settings.setting : true, settings.setting : false, settings.setting : 2, settings.setting : DIRECTSOUND:default, settings.setting : 1, settings.setting : 2, settings.setting : false, settings.setting : false, settings.setting : false, settings.setting : 1, settings.setting : true, settings.setting : false, settings.setting : DIRECTSOUND:default, settings.setting : 30, settings.setting : 48000, settings.setting : false, settings.setting : true, settings.setting : 1, settings.setting : false, settings.setting : 90, settings.setting : 1, settings.setting : 256, settings.setting : 256, settings.setting : 256, settings.setting : 256, settings.setting : 2048, settings.setting : 2048, settings.setting : 4096, settings.setting : 2048, settings.setting : 4096, settings.setting : 2048, settings.setting : false, settings.setting : , settings.setting : , settings.setting : true, settings.setting : 0, settings.setting : false, settings.setting : false, settings.setting : 0, settings.setting : 120, settings.setting : 3, settings.setting : true, settings.setting : false, settings.setting : 1, settings.setting : false, settings.setting : 2, settings.setting : true, settings.setting : false, settings.setting : false, settings.setting : true, settings.setting : true, settings.setting : true, settings.setting : false, settings.setting : true, settings.setting : true, settings.setting : true, settings.setting : true, settings.setting : 60, settings.setting : true, settings.setting : true, settings.setting : false, settings.setting : false, settings.setting : 0, settings.setting : true, settings.setting : false, settings.setting : true, settings.setting : false, settings.setting : English QWERTY, settings.setting : mediadefault, settings.setting : DEFAULT, settings.setting : USA (12h), settings.setting : English QWERTY, settings.setting : resource.language.en_gb, settings.setting : regional, settings.setting : regional, settings.setting : regional, settings.setting : original, settings.setting : regional, settings.setting : regional, settings.setting : default, settings.setting : default, settings.setting : regional, settings.setting : false, settings.setting : Default, settings.setting : , settings.setting : skin.estuary, settings.setting : SKINDEFAULT, settings.setting : SKINDEFAULT, settings.setting : 0, settings.setting : resource.uisounds.kodi, settings.setting : 0, settings.setting : 10000, settings.setting : 5, settings.setting : 3, settings.setting : false, settings.setting : true, settings.setting : , settings.setting : , settings.setting : [%N. ]%A - %T, settings.setting : true, settings.setting : metadata.album.universal, settings.setting : , settings.setting : metadata.artists.universal, settings.setting : false, settings.setting : false, settings.setting : false, settings.setting : 0, settings.setting : , settings.setting : 48, settings.setting : false, settings.setting : false, settings.setting : false, settings.setting : false, settings.setting : false, settings.setting : true, settings.setting : true, settings.setting : false, settings.setting : false, settings.setting : true, settings.setting : 0, settings.setting : true, settings.setting : false, settings.setting : false, settings.setting : 89, settings.setting : 89, settings.setting : 1, settings.setting : 750, settings.setting : -60,-30,-10,10,30,60, settings.setting : , settings.setting : , settings.setting : false, settings.setting : true, settings.setting : true, settings.setting : true, settings.setting : false, settings.setting : true, settings.setting : 1, settings.setting : false, settings.setting : false, settings.setting : 0, settings.setting : , settings.setting : 8080, settings.setting : , settings.setting : 0, settings.setting : , settings.setting : false, settings.setting : 14, settings.setting : true, settings.setting : true, settings.setting : true, settings.setting : 0, settings.setting : 0, settings.setting : 0, settings.setting : 0, settings.setting : false, settings.setting : true, settings.setting : false, settings.setting : true, settings.setting : false, settings.setting : true, settings.setting : 5, settings.setting : , settings.setting : 300, settings.setting : false, settings.setting : , settings.setting : 0, settings.setting : true, settings.setting : 0, settings.setting : true, settings.setting : 0, settings.setting : true, settings.setting : true, settings.setting : false, settings.setting : 10, settings.setting : 15, settings.setting : false, settings.setting : 00:00:00, settings.setting : false, settings.setting : 15, settings.setting : , settings.setting : true, settings.setting : 0, settings.setting : 120, settings.setting : 0, settings.setting : 0, settings.setting : true, settings.setting : false, settings.setting : metadata.themoviedb.org, settings.setting : metadata.local, settings.setting : metadata.tvshows.themoviedb.org, settings.setting : screensaver.xbmc.builtin.dim, settings.setting : 3, settings.setting : true, settings.setting : true, settings.setting : false, settings.setting : , settings.setting : false, settings.setting : true, settings.setting : Kodi, settings.setting : 1888932c-0fa7-49aa-b247-574b63397ca6, settings.setting : false, settings.setting : 25, settings.setting : true, settings.setting : 750, settings.setting : 20, settings.setting : 9777, settings.setting : 10, settings.setting : false, settings.setting : true, settings.setting : false, settings.setting : false, settings.setting : false, settings.setting : false, settings.setting : false, settings.setting : false, settings.setting : , settings.setting : 8080, settings.setting : false, settings.setting : kodi, settings.setting : webinterface.default, settings.setting : false, settings.setting : true, settings.setting : false, settings.setting : false, settings.setting : 5, settings.setting : false, settings.setting : 3, settings.setting : 0, settings.setting : 0.0.0.0, settings.setting : WORKGROUP, settings.setting : 0, settings.setting : 0, settings.setting : 0, settings.setting : DEFAULT, settings.setting : 1, settings.setting : , settings.setting : false, settings.setting : arial.ttf, settings.setting : 28, settings.setting : English, settings.setting : , settings.setting : false, settings.setting : false, settings.setting : true, settings.setting : 0, settings.setting : 0, settings.setting : 1, settings.setting : , settings.setting : special://profile/playlists/, settings.setting : true, settings.setting : false, settings.setting : 1, settings.setting : false, settings.setting : false, settings.setting : true, settings.setting : false, settings.setting : 0,1,2, settings.setting : 0, settings.setting : 0, settings.setting : false, settings.setting : 0, settings.setting : , settings.setting : 0, settings.setting : 20, settings.setting : true, settings.setting : true, settings.setting : 0, settings.setting : 750, settings.setting : -600,-300,-180,-60,-30,-10,10,30,60,180,300,600, settings.setting : 0, settings.setting : 0, settings.setting : true, settings.setting : true, settings.setting : true, settings.setting : 0, settings.setting : 0, settings.setting : 800, settings.setting : false, settings.setting : true, settings.setting : true, settings.setting : true, settings.setting : true, settings.setting : true, settings.setting : false, settings.setting : , settings.setting : false, settings.setting : 220, settings.setting : 0, settings.setting : 6, settings.setting : 0, settings.setting : 0, settings.setting : 0, settings.setting : 0, settings.setting : , settings.setting : false, settings.setting : 8, settings.setting : true, settings.setting : false, settings.setting : Default, settings.setting : 3, settings.setting : 100, settings.setting : 15, settings.setting : -1, settings.setting : WINDOW, settings.setting : 0, settings.setting : , settings.setting : , settings.setting : 1, settings.setting : 550, settings.setting : 928, settings.audio : , settings.resolutions : , settings.general : , settings.defaultvideosettings : , settings.defaultaudiosettings : , settings.defaultgamesettings : , settings.mymusic : , settings.myvideos : , settings.viewstates : ]

The keys for all of these are incorrect and need to be fixed.

robweber commented 4 years ago

Not sure when but seems the format of this file changed at some point from each key/value being:

<screenshotpath>/home/osmc/Programs/</screenshotpath>

To

<setting id="debug.screenshotpath" default="true"></setting>

Much easier to parse and get the ID for each entry but definitely broke the GuiSettingsManager class with this change.

robweber commented 4 years ago

going to re-open this, not sure this 100% fixed the problem. More testing needed.