import os
import json

# === 配置区 ===
input_folder = "./json_folder"    # 原始 JSON 文件夹路径
output_folder = "./output_json"   # 输出文件夹路径

# 如果输出文件夹不存在，则自动创建
os.makedirs(output_folder, exist_ok=True)

# === 主逻辑 ===
for filename in os.listdir(input_folder):
    if filename.endswith(".json"):
        input_path = os.path.join(input_folder, filename)
        output_path = os.path.join(output_folder, filename)

        # 提取 replacer（文件名第一个下划线前部分）
        replacer = filename.split("_")[0]

        # 尝试读取 JSON 数据
        try:
            with open(input_path, "r", encoding="utf-8") as f:
                data = json.load(f)
        except json.JSONDecodeError:
            print(f"⚠️ 跳过非标准 JSON 文件: {filename}")
            continue

        # 递归替换所有出现的 "chainmail"
        def replace_all(obj):
            if isinstance(obj, dict):
                return {replace_all(k): replace_all(v) for k, v in obj.items()}
            elif isinstance(obj, list):
                return [replace_all(i) for i in obj]
            elif isinstance(obj, str):
                return obj.replace("chainmail", replacer)
            else:
                return obj

        new_data = replace_all(data)

        # 写入新的 JSON 文件到 output 文件夹
        with open(output_path, "w", encoding="utf-8") as f:
            json.dump(new_data, f, ensure_ascii=False, indent=4)

        print(f"✅ 已生成: {output_path} （替换为 '{replacer}'）")

print("\n🎉 全部替换完成！结果已保存在 output_json 文件夹中 >w<")
