mirror of
https://github.com/robweber/xbmcbackup.git
synced 2024-11-14 20:35:48 +01:00
Launcher (#189)
* move launcher code to default.py, modify RunScript in settings
This commit is contained in:
parent
d71c923e78
commit
4b066432be
@ -1,6 +1,6 @@
|
||||
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
|
||||
<addon id="script.xbmcbackup"
|
||||
name="Backup" version="1.6.6" provider-name="robweber">
|
||||
name="Backup" version="1.6.7~beta1" provider-name="robweber">
|
||||
<requires>
|
||||
<import addon="xbmc.python" version="3.0.0"/>
|
||||
<import addon="script.module.dateutil" version="2.8.0" />
|
||||
@ -89,8 +89,8 @@
|
||||
<screenshot>resources/images/screenshot3.jpg</screenshot>
|
||||
<screenshot>resources/images/screenshot4.jpg</screenshot>
|
||||
</assets>
|
||||
<news>Version 1.6.6
|
||||
- fixed issue with backup rotations not working properly
|
||||
<news>Version 1.6.7
|
||||
- fixed issue with RunScript not launching Advanced Editor in some cases
|
||||
</news>
|
||||
</extension>
|
||||
</addon>
|
||||
|
@ -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
|
||||
|
66
default.py
66
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
|
||||
|
58
launcher.py
58
launcher.py
@ -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()
|
@ -147,7 +147,7 @@
|
||||
<dependency type="visible" setting="remote_selection">2</dependency>
|
||||
</dependencies>
|
||||
<control type="button" format="action">
|
||||
<data>RunScript(special://home/addons/script.xbmcbackup/launcher.py,action=authorize_cloud,provider=dropbox)</data>
|
||||
<data>RunScript(script.xbmcbackup,mode=launcher,action=authorize_cloud,provider=dropbox)</data>
|
||||
</control>
|
||||
</setting>
|
||||
</group>
|
||||
@ -160,7 +160,7 @@
|
||||
<dependency type="visible" setting="remote_selection">2</dependency>
|
||||
</dependencies>
|
||||
<control type="button" format="action">
|
||||
<data>RunScript(special://home/addons/script.xbmcbackup/launcher.py,action=remove_auth)</data>
|
||||
<data>RunScript(script.xbmcbackup,mode=launcher,action=remove_auth)</data>
|
||||
</control>
|
||||
</setting>
|
||||
</group>
|
||||
@ -252,7 +252,7 @@
|
||||
<dependency type="visible" setting="backup_selection_type">1</dependency>
|
||||
</dependencies>
|
||||
<control type="button" format="action">
|
||||
<data>RunScript(special://home/addons/script.xbmcbackup/launcher.py,action=advanced_editor)</data>
|
||||
<data>RunScript(script.xbmcbackup,mode=launcher,action=advanced_editor)</data>
|
||||
</control>
|
||||
</setting>
|
||||
<setting id="advanced_defaults" type="action" label="30139" help="">
|
||||
@ -262,7 +262,7 @@
|
||||
<dependency type="visible" setting="backup_selection_type">1</dependency>
|
||||
</dependencies>
|
||||
<control type="button" format="action">
|
||||
<data>RunScript(special://home/addons/script.xbmcbackup/launcher.py,action=advanced_copy_config)</data>
|
||||
<data>RunScript(script.xbmcbackup,mode=launcher,action=advanced_copy_config)</data>
|
||||
</control>
|
||||
</setting>
|
||||
</group>
|
||||
|
Loading…
Reference in New Issue
Block a user