def extract_mod(self, modid): """ Extract the .z files using the arkit lib. If any file fails to download this whole script will abort :return: None """ print("[+] Extracting .z Files.") try: for curdir, subdirs, files in os.walk(os.path.join(self.temp_mod_path, modid, "WindowsNoEditor")): for file in files: name, ext = os.path.splitext(file) if ext == ".z": src = os.path.join(curdir, file) dst = os.path.join(curdir, name) uncompressed = os.path.join(curdir, file + ".uncompressed_size") arkit.unpack(src, dst) #print("[+] Extracted " + file) os.remove(src) if os.path.isfile(uncompressed): os.remove(uncompressed) except (arkit.UnpackException, arkit.SignatureUnpackException, arkit.CorruptUnpackException) as e: print("[x] Unpacking .z files failed, aborting mod install") return False if self.create_mod_file(modid): if self.move_mod(modid): return True else: return False
def extract_mod(self, modid): """ Extract the .z files using the arkit lib. :returns false, if any file fails to download """ log.info("- Extracting mod " + str(modid) + "...") try: for curdir, subdirs, files in os.walk( os.path.join(self.download_mod_directory, modid, WINDOWS_NOEDITOR)): for file in files: name, ext = os.path.splitext(file) if ext == ".z": src = os.path.join(curdir, file) dst = os.path.join(curdir, name) uncompressed = os.path.join( curdir, file + ".uncompressed_size") log.debug(f"Unpacking {src} to {dst}") arkit.unpack(src, dst) log.debug(f"Remove {src}") os.remove(src) if os.path.isfile(uncompressed): log.debug(f"Also remove {uncompressed}") os.remove(uncompressed) return True except (arkit.UnpackException, arkit.SignatureUnpackException, arkit.CorruptUnpackException) as e: log.error(str(e)) return False