From c0fc97a578f61658800206f8424beeee3abad433 Mon Sep 17 00:00:00 2001 From: Zhao Zuohong <1040110848@qq.com> Date: Thu, 29 Sep 2022 10:27:01 +0800 Subject: [PATCH] =?UTF-8?q?=F0=9F=97=83=EF=B8=8F=20Store=20melee=20data=20?= =?UTF-8?q?into=20SQLite?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .gitignore | 2 ++ README.md | 8 +++++ data/clean/31-0/data.sqlite3 | Bin 0 -> 90112 bytes data/convert/31-0/db.py | 10 ++++++ data/convert/31-0/melee.py | 65 +++++++++++++++++++++++------------ data/convert/README.md | 2 +- requirements.txt | 9 +++++ 7 files changed, 73 insertions(+), 23 deletions(-) create mode 100644 data/clean/31-0/data.sqlite3 create mode 100644 data/convert/31-0/db.py create mode 100644 requirements.txt diff --git a/.gitignore b/.gitignore index 1d74e21..16dcb32 100644 --- a/.gitignore +++ b/.gitignore @@ -1 +1,3 @@ .vscode/ +env/ +__pycache__/ diff --git a/README.md b/README.md index 6e947c4..a90bf10 100644 --- a/README.md +++ b/README.md @@ -4,3 +4,11 @@ - [data](data/README.md):从死亡细胞的数据包里提取数据 - [qqbot](qqbot/README.md):QQ 机器人 + +Python 的虚拟环境: + +```bash +python3 -m venv env +. env/bin/activate +pip install -r requirements.txt +``` diff --git a/data/clean/31-0/data.sqlite3 b/data/clean/31-0/data.sqlite3 new file mode 100644 index 0000000000000000000000000000000000000000..56bacbf0fd0fe25330fd0a2fc21db8411d4982c3 GIT binary patch literal 90112 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 !Nkia3C-W;Y;m;3Q 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ՆCE0c`x;gl5ExcdT-@dgOU=ek{XMD-uL7+ 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 Mbn`r^|3ifT8zLg+J^%m! literal 0 HcmV?d00001 diff --git a/data/convert/31-0/db.py b/data/convert/31-0/db.py new file mode 100644 index 0000000..f8d801d --- /dev/null +++ b/data/convert/31-0/db.py @@ -0,0 +1,10 @@ +from pony.orm import * + +db = Database() + + +class Melee(db.Entity): + name = Required(str) + description = Optional(str) + mechanism = Optional(str) + icon = Required(bytes) diff --git a/data/convert/31-0/melee.py b/data/convert/31-0/melee.py index ee4cfa7..f3b1661 100755 --- a/data/convert/31-0/melee.py +++ b/data/convert/31-0/melee.py @@ -3,36 +3,57 @@ import json import re +import io +from db import * +from PIL import Image +from playwright.sync_api import sync_playwright with open("../../extraction/raw-31-0/data.cdb.json") as f: raw = json.load(f) with open("../../clean/31-0/main.zh.mo.json") as f: trans = json.load(f) +img = Image.open("../../extraction/raw-31-0/cardIcons.png") + +db.bind(provider="sqlite", filename="../../clean/31-0/data.sqlite3") +db.generate_mapping(create_tables=True) lines = raw["sheets"][1]["lines"] -melee = [] -for i in lines: - if i["group"] == 4: - melee.append(i) - i["name"] = trans[i["name"]]["msgstr"][0] - if "ambiantDesc" in i: - i["ambiantDesc"] = trans[i["ambiantDesc"].strip()]["msgstr"][0] - if "gameplayDesc" in i: - i["gameplayDesc"] = trans[i["gameplayDesc"].strip()]["msgstr"][0] - if i["props"]: +with db_session: + for i in lines: + if i["group"] == 4: + i["name"] = trans[i["name"]]["msgstr"][0] + if "ambiantDesc" in i: + i["ambiantDesc"] = trans[i["ambiantDesc"].strip()]["msgstr"][0] + else: + i["ambiantDesc"] = "" + if "gameplayDesc" in i: + i["gameplayDesc"] = trans[i["gameplayDesc"].strip()]["msgstr"][0] + if i["props"]: - def replace_props(m): - result = i["props"][m.group(1)] - if isinstance(result, list): - result = result[0] - if not isinstance(result, str): - result = str(result) - return result + def replace_props(m): + result = i["props"][m.group(1)] + if isinstance(result, list): + result = result[0] + if not isinstance(result, str): + result = str(result) + return result - i["gameplayDesc"], _ = re.subn( - r"::\+?(.*?)::", replace_props, i["gameplayDesc"] - ) + i["gameplayDesc"], _ = re.subn( + r"::\+?(.*?)::", replace_props, i["gameplayDesc"] + ) + else: + i["gameplayDesc"] = "" + 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") - -print(json.dumps(melee, ensure_ascii=False)) + Melee( + name=i["name"], + description=i["ambiantDesc"], + mechanism=i["gameplayDesc"], + icon=region_arr.getbuffer().tobytes() + ) diff --git a/data/convert/README.md b/data/convert/README.md index 3b3bc79..7351a1b 100644 --- a/data/convert/README.md +++ b/data/convert/README.md @@ -338,4 +338,4 @@ ``` - `group` 为 15 的是 `BossRushStatueUnlock`,意义不明 -先做近战武器。在 `melee.py` 中提取了所有近战数据。数据的 `name`、`gameplayDesc` 和 `ambiantDesc` 需要翻译。其中 `name` 一定存在,其余两者不一定存在;这两者有可能有多余的空格,所以需要去掉多余的空格;`gameplayDesc` 中有 `::duration::` 格式的部分,对应的值在 `props` 属性中,需要进行替换。 +先做近战武器。在 `melee.py` 中提取了所有近战数据。数据的 `name`、`gameplayDesc` 和 `ambiantDesc` 需要翻译。其中 `name` 一定存在,其余两者不一定存在;这两者有可能有多余的空格,所以需要去掉多余的空格;`gameplayDesc` 中有 `::duration::` 格式的部分,对应的值在 `props` 属性中,需要进行替换。双手武器只有一个的 `droppable` 为 `True`。掘金镐有两份数据,其中只有一份是可掉落的。 diff --git a/requirements.txt b/requirements.txt new file mode 100644 index 0000000..22e03e2 --- /dev/null +++ b/requirements.txt @@ -0,0 +1,9 @@ +black==22.8.0 +bottle==0.12.23 +click==8.1.3 +mypy-extensions==0.4.3 +pathspec==0.10.1 +Pillow==9.2.0 +platformdirs==2.5.2 +pony==0.7.16 +tomli==2.0.1