can restore full file tree

This commit is contained in:
Rob Weber 2014-08-01 12:57:55 -05:00
parent c28f9fd26b
commit 9a89066e66
2 changed files with 18 additions and 11 deletions

View File

@ -270,15 +270,18 @@ class XbmcBackup:
else:
utils.log("zip file exists already")
#set the new remote vfs
self.remote_vfs = ZipFileSystem(xbmc.translatePath(utils.data_dir() + self.restore_point),'r')
self.remote_vfs.set_root(self.restore_point.split(".")[0] + "/")
#extract the zip file
zip_vfs = ZipFileSystem(xbmc.translatePath(utils.data_dir() + self.restore_point),'r')
zip_vfs.extract(xbmc.translatePath(utils.data_dir()))
else:
#for restores remote path must exist
if(not self.remote_vfs.exists(self.remote_vfs.root_path)):
xbmcgui.Dialog().ok(utils.getString(30010),utils.getString(30045),self.remote_vfs.root_path)
return
#set the new remote vfs
self.remote_vfs = XBMCFileSystem(xbmc.translatePath(utils.data_dir() + self.restore_point.split(".")[0] + "/"))
#for restores remote path must exist
if(not self.remote_vfs.exists(self.remote_vfs.root_path)):
xbmcgui.Dialog().ok(utils.getString(30010),utils.getString(30045),self.remote_vfs.root_path)
return
if(not self._checkValidationFile(self.remote_vfs.root_path)):
#don't continue

View File

@ -82,25 +82,29 @@ class ZipFileSystem(Vfs):
self.zip = zipfile.ZipFile(rootString,mode=mode)
def listdir(self,directory):
return True
return [[],[]]
def mkdir(self,directory):
#self.zip.write(directory[len(self.root_path):])
return True
return False
def put(self,source,dest):
self.zip.write(source,dest,compress_type=zipfile.ZIP_DEFLATED)
return True
def rmdir(self,directory):
return True
return False
def exists(self,aFile):
return True
return False
def cleanup(self):
self.zip.close()
def extract(self,path):
#extract zip file to path
self.zip.extractall(path)
class DropboxFileSystem(Vfs):
client = None