diff --git a/addon.xml b/addon.xml
index be588cd..400369a 100644
--- a/addon.xml
+++ b/addon.xml
@@ -1,6 +1,6 @@
+ name="Backup" version="1.6.7~beta1" provider-name="robweber">
@@ -89,8 +89,8 @@
resources/images/screenshot3.jpg
resources/images/screenshot4.jpg
- Version 1.6.6
- - fixed issue with backup rotations not working properly
+ Version 1.6.7
+ - fixed issue with RunScript not launching Advanced Editor in some cases
diff --git a/changelog.md b/changelog.md
index 4cb189d..eb8df80 100644
--- a/changelog.md
+++ b/changelog.md
@@ -4,6 +4,12 @@ All notable changes to this project will be documented in this file.
The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/)
+## [Unreleased](https://github.com/robweber/xbmcbackup/compare/matrix-1.6.5...robweber:matrix)
+
+### Fixed
+
+- fixed issue when using ```RunScript()``` within settings to launch Advanced Editor
+
## [Version 1.6.6](https://github.com/robweber/xbmcbackup/compare/matrix-1.6.5...robweber:matrix-1.6.6) - 2020-03-15
### Fixed
diff --git a/default.py b/default.py
index d1a7267..bef946a 100644
--- a/default.py
+++ b/default.py
@@ -1,7 +1,37 @@
-import xbmc
import xbmcgui
+import xbmcvfs
import resources.lib.utils as utils
from resources.lib.backup import XbmcBackup
+from resources.lib.authorizers import DropboxAuthorizer
+from resources.lib.advanced_editor import AdvancedBackupEditor
+
+# mode constants
+BACKUP = 0
+RESTORE = 1
+SETTINGS = 2
+ADVANCED_EDITOR = 3
+LAUNCHER = 4
+
+
+def authorize_cloud(cloudProvider):
+ # drobpox
+ if(cloudProvider == 'dropbox'):
+ authorizer = DropboxAuthorizer()
+
+ if(authorizer.authorize()):
+ xbmcgui.Dialog().ok(utils.getString(30010), '%s %s' % (utils.getString(30027), utils.getString(30106)))
+ else:
+ xbmcgui.Dialog().ok(utils.getString(30010), '%s %s' % (utils.getString(30107), utils.getString(30027)))
+
+
+def remove_auth():
+ # triggered from settings.xml - asks if user wants to delete OAuth token information
+ shouldDelete = xbmcgui.Dialog().yesno(utils.getString(30093), utils.getString(30094), utils.getString(30095), autoclose=7000)
+
+ if(shouldDelete):
+ # delete any of the known token file types
+ xbmcvfs.delete(xbmcvfs.translatePath(utils.data_dir() + "tokens.txt")) # dropbox
+ xbmcvfs.delete(xbmcvfs.translatePath(utils.data_dir() + "google_drive.dat")) # google drive
def get_params():
@@ -13,6 +43,7 @@ def get_params():
if(args.startswith('?')):
args = args[1:] # legacy in case of url params
splitString = args.split('=')
+ utils.log(splitString[1])
param[splitString[0]] = splitString[1]
except:
pass
@@ -24,12 +55,13 @@ def get_params():
mode = -1
params = get_params()
-
if("mode" in params):
if(params['mode'] == 'backup'):
- mode = 0
+ mode = BACKUP
elif(params['mode'] == 'restore'):
- mode = 1
+ mode = RESTORE
+ elif(params['mode'] == 'launcher'):
+ mode = LAUNCHER
# if mode wasn't passed in as arg, get from user
@@ -49,15 +81,30 @@ if(mode != -1):
# run the profile backup
backup = XbmcBackup()
- if(mode == 2):
+ if(mode == SETTINGS):
# open the settings dialog
utils.openSettings()
- elif(mode == 3 and utils.getSettingInt('backup_selection_type') == 1):
- # open the advanced editor
- xbmc.executebuiltin('RunScript(special://home/addons/script.xbmcbackup/launcher.py, action=advanced_editor)')
+ elif(mode == ADVANCED_EDITOR and utils.getSettingInt('backup_selection_type') == 1):
+ # open the advanced editor but only if in advanced mode
+ editor = AdvancedBackupEditor()
+ editor.showMainScreen()
+ elif(mode == LAUNCHER):
+ # copied from old launcher.py
+ if(params['action'] == 'authorize_cloud'):
+ authorize_cloud(params['provider'])
+ elif(params['action'] == 'remove_auth'):
+ remove_auth()
+ elif(params['action'] == 'advanced_editor'):
+ editor = AdvancedBackupEditor()
+ editor.showMainScreen()
+ elif(params['action'] == 'advanced_copy_config'):
+ editor = AdvancedBackupEditor()
+ editor.copySimpleConfig()
+
elif(backup.remoteConfigured()):
- if(mode == backup.Restore):
+ # if mode was RESTORE
+ if(mode == RESTORE):
# get list of valid restore points
restorePoints = backup.listBackups()
pointNames = []
@@ -90,6 +137,7 @@ if(mode != -1):
else:
backup.restore()
else:
+ # mode was BACKUP
backup.backup()
else:
# can't go any further
diff --git a/launcher.py b/launcher.py
deleted file mode 100644
index 4494ac4..0000000
--- a/launcher.py
+++ /dev/null
@@ -1,58 +0,0 @@
-# launcher for various helpful functions found in the settings.xml area
-import sys
-import xbmcgui
-import xbmcvfs
-import resources.lib.utils as utils
-from resources.lib.authorizers import DropboxAuthorizer
-from resources.lib.advanced_editor import AdvancedBackupEditor
-
-
-def authorize_cloud(cloudProvider):
- # drobpox
- if(cloudProvider == 'dropbox'):
- authorizer = DropboxAuthorizer()
-
- if(authorizer.authorize()):
- xbmcgui.Dialog().ok(utils.getString(30010), '%s %s' % (utils.getString(30027), utils.getString(30106)))
- else:
- xbmcgui.Dialog().ok(utils.getString(30010), '%s %s' % (utils.getString(30107), utils.getString(30027)))
-
-
-def remove_auth():
- # triggered from settings.xml - asks if user wants to delete OAuth token information
- shouldDelete = xbmcgui.Dialog().yesno(utils.getString(30093), utils.getString(30094), utils.getString(30095), autoclose=7000)
-
- if(shouldDelete):
- # delete any of the known token file types
- xbmcvfs.delete(xbmcvfs.translatePath(utils.data_dir() + "tokens.txt")) # dropbox
- xbmcvfs.delete(xbmcvfs.translatePath(utils.data_dir() + "google_drive.dat")) # google drive
-
-
-def get_params():
- param = {}
- try:
- for i in sys.argv:
- args = i
- if('=' in args):
- if(args.startswith('?')):
- args = args[1:] # legacy in case of url params
- splitString = args.split('=')
- param[splitString[0]] = splitString[1]
- except:
- pass
-
- return param
-
-
-params = get_params()
-
-if(params['action'] == 'authorize_cloud'):
- authorize_cloud(params['provider'])
-elif(params['action'] == 'remove_auth'):
- remove_auth()
-elif(params['action'] == 'advanced_editor'):
- editor = AdvancedBackupEditor()
- editor.showMainScreen()
-elif(params['action'] == 'advanced_copy_config'):
- editor = AdvancedBackupEditor()
- editor.copySimpleConfig()
diff --git a/resources/settings.xml b/resources/settings.xml
index efa5c41..d6b3a7a 100644
--- a/resources/settings.xml
+++ b/resources/settings.xml
@@ -147,7 +147,7 @@
2
- RunScript(special://home/addons/script.xbmcbackup/launcher.py,action=authorize_cloud,provider=dropbox)
+ RunScript(script.xbmcbackup,mode=launcher,action=authorize_cloud,provider=dropbox)
@@ -160,7 +160,7 @@
2
- RunScript(special://home/addons/script.xbmcbackup/launcher.py,action=remove_auth)
+ RunScript(script.xbmcbackup,mode=launcher,action=remove_auth)
@@ -252,7 +252,7 @@
1
- RunScript(special://home/addons/script.xbmcbackup/launcher.py,action=advanced_editor)
+ RunScript(script.xbmcbackup,mode=launcher,action=advanced_editor)
@@ -262,7 +262,7 @@
1
- RunScript(special://home/addons/script.xbmcbackup/launcher.py,action=advanced_copy_config)
+ RunScript(script.xbmcbackup,mode=launcher,action=advanced_copy_config)