def backup(self): '''(BTool) -> NoneType saves the entire library to pickle ''' #initialize connection zot = zotero.Zotero(self._userData['user_id'], self._userData['user_type'], self._userData['api_key']) #get the data to backup and name the save file #library_id + current (24 hour) time to allow for easy backing up data = zot.items() version = self._userData["user_id"] + str(data[-1]["version"]) p = Pickler(version) #save the data and update savelog p.save(data) self.update_savelog("add", version)
def update_savelog(self, mode, item): '''(BTool, string, string)-> NoneType updates the savelog, adds item if mode = 'add' and removes item if mode = 'remove'. *** should only be used my backup() and restore() methods in this class to ensure save corruption doesn't occur. *** ''' p = Pickler("savelog") try: #add/remove item from the list of items data = p.load() if mode == "add": data.append(item) else: data.remove(item) p.save(data) except: #in this case there is no savelog, so make one containing item data = [] data.append(item) p.save(data)
def backup_library(self): #untested ''' backup entire library, this overwrites any previous backup''' #initialize a pickle and save @lib_backup.p picklesave = 'lib_backup' pickle = Pickler(picklesave) pickle.save(self._zot.items())