def do_write_save(self, args): """Write the current state of the save into a file Usage: write_save <file> [<gluid>] write_save -l <file> Arguments: file Path to the new save file. gluid GLUID used to encrypt the new save file. Must be base64 encoded. Options: -l --legacy Write a legacy save file (1.8.x version). -h --help Show this help.""" if args['<gluid>'] is not None: try: args['<gluid>'] = binascii.a2b_base64( args['<gluid>'].encode('utf-8')) except binascii.Error: print("Invalid encryption key") return try: self._save_manager.save( compress_data(self._xml_handle.to_string()), args['<file>'], self.save_number, args['<gluid>'], (self.savedata.legacy or args['--legacy']) and args['<gluid>'] is None) except Exception as e: print("Was unable to write to file, reason: {}".format(str(e)))
def do_write_save(self, args): """Write the current state of the save into a file Usage: write_save <file> [<gluid>] write_save -l <file> Arguments: file Path to the new save file. gluid GLUID used to encrypt the new save file. Must be base64 encoded. Options: -l --legacy Write a legacy save file (1.8.x version). -h --help Show this help.""" if args['<gluid>'] is not None: try: args['<gluid>'] = binascii.a2b_base64(args['<gluid>'].encode('utf-8')) except binascii.Error: print("Invalid encryption key") return try: self._save_manager.save(compress_data(self._xml_handle.to_string()), args['<file>'], self.save_number, args['<gluid>'], (self.savedata.legacy or args['--legacy']) and args['<gluid>'] is None) except Exception as e: print("Was unable to write to file, reason: {}".format(str(e)))
def worker(self, queue): ThreadedBase.worker(self, queue) res = { "error": None, } try: if not self.xml: self.save_manager.save(compress_data(self.xml_handle.to_string()), self.savedata.savefile, self.save_number, self.savedata.gluid, self.savedata.legacy) else: with open(self.xml, 'wb') as f: f.write(self.xml_handle.prettify()) except Exception as e: res["error"] = e res["done"] = True queue.put(res)