diff --git a/resources/lib/backup.py b/resources/lib/backup.py index 5e8a1654..d4c2c0b7 100644 --- a/resources/lib/backup.py +++ b/resources/lib/backup.py @@ -178,6 +178,7 @@ def run(self,mode=-1,progressOverride=False): #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 @@ def _createResumeBackupFile(self): class FileManager: not_dir = ['.zip','.xsp','.rar'] - + exclude_dir = [] + def __init__(self,vfs): self.vfs = vfs self.fileArray = [] @@ -595,20 +597,22 @@ def walkTree(self,directory): #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) + + #catch for "non directory" type files + shouldWalk = True - for s in file_ext: - if(s in self.not_dir): - shouldWalk = False + 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 @@ def addFile(self,filename): 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 = []