Updated to include return as an output type

This commit is contained in:
2025-09-21 14:09:26 -06:00
parent 775203c6ce
commit 5bcbd881fb

12
main.py
View File

@@ -4,10 +4,13 @@ from pathlib import Path
class BZZCompressor:
def decompress(self, input_file_path, input_file, output_folder="out/") -> bytes:
def decompress(
self, input_file_path, input_file, output_type="file", output_folder="out/"
) -> bytes:
data = bytes()
output_buffer = bytearray()
overflow_buffer = bytearray()
return_files = []
# read the input file
try:
@@ -214,6 +217,7 @@ class BZZCompressor:
# I need to
out_data = output_buffer
if output_type == "file":
try:
with open(
f"{output_folder}/{input_file}_{str(file_num).zfill(3)}.file{file['type'][2:]}",
@@ -227,7 +231,10 @@ class BZZCompressor:
raise IOError(
f"Unable to write file for {input_file_path}/{input_file} on {file_num}/{len(files)}. Error: {e}"
)
elif output_type == "return":
return_files.append(out_data)
if not skip_overflow and output_type == "file":
index = starting_index
skip_overflow = True
@@ -240,12 +247,13 @@ class BZZCompressor:
if item != 0x00:
skip_overflow = False
if not skip_overflow:
with open(f"{output_folder}/{input_file}.overflow.file", "wb") as outfile:
outfile.write(overflow_buffer)
print(
f"File {output_folder}/{input_file}.overflow.file saved successfully!"
)
elif output_type == "return":
return return_files
if __name__ == "__main__":