dead-cells-wiki/data/convert/31-4/outfits.py
2022-10-16 10:52:02 +08:00

49 lines
1.5 KiB
Python
Executable file

#!/usr/bin/env python3
# # -*- coding: utf-8 -*-
import json
import re
import io
from db import *
from PIL import Image
with open("../../extraction/raw-31-4/data.cdb.json") as f:
raw = json.load(f)
with open("../../clean/31-4/main.zh.mo.json") as f:
trans = json.load(f)
with open("../../clean/31-4/main.en.mo.json") as f:
trans_en = json.load(f)
img = Image.open("../../extraction/raw-31-4/cardIcons.png")
db.bind(provider="sqlite", filename="../../clean/31-4/data.sqlite3")
db.generate_mapping()
lines = raw["sheets"][1]["lines"]
with db_session:
for i in lines:
if i["group"] == 13:
if not i["name"]:
continue
if i["id"] == "KingsHandBoss":
continue
raw_name = i["name"].strip()
i["name"] = trans[raw_name]["msgstr"][0]
i["name"] = re.sub(r"", r"", i["name"])
i["name_en"] = trans_en[raw_name]["msgstr"][0]
i["name_en"] = re.sub(r"outfit", r"Outfit", i["name_en"])
i["gameplayDesc"] = trans[i["gameplayDesc"].strip()]["msgstr"][0]
x = i["icon"]["x"] * 24
y = i["icon"]["y"] * 24
box = (x, y, x + 24, y + 24)
region = img.crop(box)
region_arr = io.BytesIO()
region.save(region_arr, format="PNG")
Outfit(
name=i["name"],
name_en=i["name_en"],
description=i["gameplayDesc"],
icon=region_arr.getbuffer().tobytes(),
cell_cost=i["cellCost"],
)