From 2c634f9250f60acc682d2cf401d7bbb052fe8ebc Mon Sep 17 00:00:00 2001 From: Rob Weber Date: Fri, 10 Feb 2017 15:19:22 -0600 Subject: [PATCH] exclude packages dir by default, not needed closes #102 --- resources/lib/backup.py | 36 +++++++++++++++++++++++++----------- 1 file changed, 25 insertions(+), 11 deletions(-) diff --git a/resources/lib/backup.py b/resources/lib/backup.py index 5e8a165..d4c2c0b 100644 --- a/resources/lib/backup.py +++ b/resources/lib/backup.py @@ -178,6 +178,7 @@ class XbmcBackup: #go through each of the user selected items and write them to the backup store if(utils.getSetting('backup_addons') == 'true'): fileManager.addFile("-" + xbmc.translatePath('special://home/addons')) + fileManager.excludeFile(xbmc.translatePath('special://home/addons/packages')) fileManager.walkTree(xbmc.translatePath('special://home/addons')) fileManager.addFile("-" + xbmc.translatePath('special://home/userdata')) @@ -580,7 +581,8 @@ class XbmcBackup: class FileManager: not_dir = ['.zip','.xsp','.rar'] - + exclude_dir = [] + def __init__(self,vfs): self.vfs = vfs self.fileArray = [] @@ -595,20 +597,22 @@ class FileManager: #create all the subdirs first for aDir in dirs: - dirPath = xbmc.translatePath(directory + "/" + aDir) + dirPath = xbmc.validatePath(xbmc.translatePath(directory + "/" + aDir)) file_ext = aDir.split('.')[-1] - - self.addFile("-" + dirPath) - #catch for "non directory" type files - shouldWalk = True + if(not dirPath in self.exclude_dir): + + self.addFile("-" + dirPath) - for s in file_ext: - if(s in self.not_dir): - shouldWalk = False + #catch for "non directory" type files + shouldWalk = True + + for s in file_ext: + if(s in self.not_dir): + shouldWalk = False - if(shouldWalk): - self.walkTree(dirPath) + if(shouldWalk): + self.walkTree(dirPath) #copy all the files for aFile in files: @@ -625,6 +629,16 @@ class FileManager: utils.log("Add File: " + filename,xbmc.LOGDEBUG) self.fileArray.append(filename) + def excludeFile(self,filename): + try: + filename = filename.decode('UTF-8') + except UnicodeDecodeError: + filename = filename.decode('ISO-8859-2') + + #write the full remote path name of this file + utils.log("Exclude File: " + filename,xbmc.LOGDEBUG) + self.exclude_dir.append(filename) + def getFiles(self): result = self.fileArray self.fileArray = []