All notable changes to this project will be documented in this file.
The format is based on Keep a Changelog
utils.getSettingStripped
to trim whitespace around setting strings
- Dropbox Secret and App Key are trimmed on loading - thanks @rjclark99
- added additional dialog information when gathering files for a Restore. This doesn't fix the speed which these happen since that is related to the platform but does provide more info that it's working.
- issue where Zip file restores were failing due to a missing
is_dir
attribute
- You can now append a suffix to the end of each backup name (folder or zip file). This is only available in the Advanced or Expert settings.
- validation file now saves a list of all installed addons and versions
- prompt to close Kodi at the end of successful restore
- added new line between file size and file name, was unreadable on some systems due to string resizing
- modified GitHub issue template slightly
- translations sync
- token files are stored in a
.json
instead of a.txt
file - file discovery process now flags directories with an
is_dir
metadata property instead of prefixing with a dash (-). This was done for legacy reasons and there is no reason for it.
- fixed minor UI issues
- division error when transferSize = 0
- fixed Dropbox tokens expiring by using refresh tokens
- use the
<source>files</source>
tag on the remote path browser to bring in saved file paths from the File Manager - multiple language files updated through integration with Weblate, thanks to @gade01 for helping to get it working.
- default en_gb file must use empty
msgstr
value - minor UI fixes for dialog prompts
- fixed catch22 situation where Dropbox remote tries to load prior to authorization flow
- travis CI links in README
Version 1.6.7 - 2021-04-16
- added QRcode when setting up Dropbox, uses pyqrcode
- fixed issue when using
RunScript()
within settings to launch Advanced Editor - error on advanced settings restore prior to reboot
- minor gui dialog fixes
Version 1.6.6 - 2021-03-15
- error when typing the remote path,
listBackups()
function was not working if final slash not included in typed directory path name. - added
force=True
flag to thermdir()
function. Fixes issue with directories being removed when not empty
Version 1.6.5 - 2021-03-06
- added Expert setting to change location of zip file temp location as it's being built or extracted
- updated
settings.xml
to match new Kodi settings syntax, including visibility levels
- when restoring from a zip file the command to delete the extracted directory was incorrect
Dialog().yesno()
no longer takes line1 arg, changed to message
Version 1.6.4 - 2020-12-23
- merged duplicate copy code into
_copyFile
method - added method to backup/restore Kodi settings via the GetSettings/SetSettingValue JSON methods in the validation file
- added setting to always restore settings or prompt at the time of backup
- updated script.module.future version to current
- swapped xbmc.translatePath for xbmcvfs.translatePath, deprecated
- fixed calls to
xbmcgui.Dialog().ok()
, method definition changed to only allow one message arg with Kodi 19 - fixed import of dropbox Oauth package in authorizer flow
- removed old xml GuiSettings parsing for settings restore
Version 1.6.3 - 2020-06-15
- fixed validatePath error (issue #166) thanks (thanks @AnonTester)
Version 1.6.2 - 2019-04-09
- changed PNG screenshots to JPG (per #165)
Version 1.6.1 - 2019-12-30
- added method to get size of a file from the VFS
- added total transfer size information to progress bar with appropriate precision (KB, MB, etc)
- show file size of zip files in the restore selection dialog
- added getSettingInt and getSettingBool to utils.py class
- added verbose logging setting and tied it to logging related to file paths added/written, this will significantly reduce the debug log size (thanks CastagnaIT)
- localize advanced editor strings instead of hard coding English
- display every file transfered in progress bar, not just directory
- base progress bar percent on transfer size, not total files
- changed getSettings where needed to getSettingBool and getSettingInt
- use service.py to start scheduler, moving scheduler to resources/lib/scheduler.py Kodi doesn't cache files in the root directory
- fixed issues with rotating backups where trailing slash was missing (thanks @AnonTester)
- read/write files using contextlib
Version 1.6.0 - 2019-11-26
- added new badges for Kodi Version, TravisCI and license information from shields.io
- dependency on script.module.dateutil for relativedelta.py class
- addon.xml updated to use Leia specific syntax and library imports
- removed specific encode() calls per Python2/3 compatibility
- call isdigit() method on the string directly instead of str.isdigit() (results in unicode error)
- added flake8 testing to travis-ci
- updated code to make python3 compatible
- updated code for pep9 styling
- use setArt() to set ListItem icons as the icon= constructor is deprecated
- Dropbox dependency is now 9.4.0
- removed need for urlparse library
- Removed GoogleDrive support - issues with python 3 compatibility
- removed relativedelta.py, use the dateutil module for this
Version 1.5.2 - 2019-09-30
- Updated Changelog format to the one suggested by Keep a Changelog
- Added script.module.dropbox import as a dependency for Dropbox filesystem
- Fixed issue getting xbmcbackup.val file from non-zipped remote directories. Was being copied as though it was a local file so it was failing.
- Use linux path separator (/) all the time, Kodi will interpret this correctly on windows. Was causing issues with remote file systems since os.path.sep
- Fixed minor python code style changes based on kodi-addon-checker output
- files releated to dropbox library, using script.module.dropbox import now
- Fixed guisettings restores not working - thanks Bluerayx
- Added new Advanced file editor and file selection based on a .json
- File backups and restores will not work with old version - breaking change with previous versions PR117
- added file chunk support for Dropbox uploads
- added scheduler delay to assist with time sync (rpi mostly), will delay startup by 2 min
- fixed settings duplicate ids, thanks aster-anto
- Fixes to the Dropbox lib for python 2.6
- added ability to "catchup" on missed scheduled backup
- fixed error on authorizers (missing secret/key)
- updated google oauth and client versions
- merged in dropbox v2 library code
- added tinyurl generation for oauth urls
- moved authorize to settings area for cloud storage
- fixed dropbox rest.py for Python 2.6 - thanks koying!
- updated dropbox api
- updated google client api version
- added progress for zip extraction - hopefully helps with extract errors
- fix for custom directories not working recursively
- added google drive support
- added settings dialog option - thanks ed_davidson
- make compression setting compatible with python 2.6 and above
- fix for growing backups - thanks brokeh
- exit if we can't delete the old archive, non recoverable
- added "delete auth" dialog to delete oauth files in settings
- updated xbmc.python version to 2.19.0 - should be helix only
- rebranded as "Backup"
- removed XBMC references and replaced with Kodi
- tweaked file walking for Helix
- create restored version of guisettings for easy local restoration
- fixed dropbox unicode error
- allow limited updating of guisettings file through json
- show notification if some files failed
- check if destination is writeable - thanks war59312
- added custom library nodes to config backup options - thanks Ned Scott
- backup compression should use zip64 as sizes may be over 2GB
- need to expand out path -bugfix
- fixes path substitution errors
- added option to compress backups, uses local source for staging the zip before sending to remote
- fix dropbox delete recursion error - thanks durd updated language files
- fix for dropbox errors during repeated file upload attempts
- check xbmc version when doing a restore
- updated python version
- added additional script and window parameters, thanks Samu-rai
- critical error in backup rotation
- updated progress bar display
- updated for new Gotham xbmc python updates
- New Version for Gotham
- modified backup folder names to include time, also modified display listing
- added version info to logs
- added try/catch for unicode errors
- modified the check for invalid file types
- added error message if remote directory is blank
- added license tag
- Added support for userdata/profiles folder - thanks TUSSFC
- added encode() around notifications
- fixed settings display error - thanks zer04c
- added "just once" scheduler for one-off type backups
- show notification on scheduler
- update updated language files from Transifex
- added advancedsettings check on restore. prompts user to restore only this file and restart xbmc to continue. This fixes issues where path substitution was not working during restores - thanks ctrlbru
- added optional addon.xml tags
- update language files from Transifex
- added up to 2 custom directories, can be toggled on/off
- added a check for backup verification before rotation - no more deleting non backup related files
- use monitor class for onSettingsChanged method
- test of custom directories - only 1 at the moment
- added ability to take parameters via RunScript() or JSONRPC.Addons.ExecuteAddon()
- updated xbmc python version (2.1.0)
- added settings for user provided Dropbox key and secret
- added try/except for multiple character encodings
- remove token.txt file if Dropbox Authorization is revoked
- can shutdown xbmc after scheduled backup
- major vfs rewrite
- Added Dropbox as storage target
- updated gui/removed settings - thanks SFX Group for idea!
- first official frodo build
- fix for backup rotation sort
- added ability to rotate backups, keeping a set number of days
- removed the vfs.py helper library
- default.py file now uses xbmcvfs python library exclusively for listing directories and copy operations
- minor bug fixes and translations updates
- merged scheduler branch with master, can now schedule backups on an interval
- pulled xbmcbackup class into separate library
- added more verbose error message for incorrect paths
- backup folder format - thanks zeroram
- added German translations - thanks dersphere
- removed need for separate verbose logging setting
- updated utf-8 encoding for all logging
- backup now uses date as folder name, restore allows user to type date of last backup
- added French language translation - thanks mikebzh44
- added some utf-8 encoding tags to filenames
- added check for key in vfs.py - Thanks Martijn!
- removed transparency from icon.png
- modified vfs.py again to filter out xsp files (smart playlists). Created running list for these types of compressed files
- added enable/disable logging toggle in settings
- modified vfs.py script to exclude handling zip files as directories, added keymap and peripheral data folders in the "config" section
- removed "restore.txt" file and now write file listing to memory list instead
- Added the vfs module created by paddycarey
- File Selection is now followed for both backup and restore options
- Added option to manually type a path rather than browse for one (only one used)
- Show progress bar right away so you know this is doing something
- Finished code for restore mode.
- Added progress bar and "silent" option for running on startup or as a script
- First version, should backup directories as needed