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)