import os
import hashlib


def prepare_images(image_folder="titles/idac/data/images"):
    print(f"Preparing image delivery files in {image_folder}...")

    for file in os.listdir(image_folder):
        if file.endswith(".png") or file.endswith(".jpg"):
            # dpg_name = "adv-" + file[:-4].upper()
            dpg_name = file[:-4]
            if file.endswith(".png"):
                dpg_name += ".dpg"
            else:
                dpg_name += ".djg"

            if os.path.exists(os.path.join(image_folder, dpg_name)):
                continue
            else:
                with open(
                    os.path.join(image_folder, file), "rb"
                ) as original_image_file:
                    original_image = original_image_file.read()
                    image_hash = hashlib.md5(original_image).hexdigest()
                    print(
                        f"DPG for {file} not found, creating with hash {image_hash.upper()} ..."
                    )
                    md5_buf = bytes.fromhex(image_hash)
                    dpg_buf = md5_buf + original_image
                    dpg_name = "adv-" + image_hash.upper() + dpg_name[:-4]
                    with open(os.path.join(image_folder, dpg_name), "wb") as dpg_file:
                        dpg_file.write(dpg_buf)

                    print(f"Created {dpg_name}.")


# Call the function to execute it
prepare_images()
