mirror of
https://github.com/d0zingcat/rime_wanxiang.git
synced 2026-05-20 07:36:44 +00:00
fix: 新增自动化apk打包
This commit is contained in:
55
.github/workflows/scripts/openccset.py
vendored
Normal file
55
.github/workflows/scripts/openccset.py
vendored
Normal file
@@ -0,0 +1,55 @@
|
||||
import os
|
||||
import json
|
||||
import subprocess
|
||||
import sys
|
||||
|
||||
def process_opencc():
|
||||
# 获取路径参数
|
||||
input_folder = sys.argv[1] if len(sys.argv) > 1 else "./opencc"
|
||||
if not os.path.exists(input_folder):
|
||||
print(f"跳过:路径 {input_folder} 不存在")
|
||||
return
|
||||
|
||||
for filename in os.listdir(input_folder):
|
||||
file_path = os.path.join(input_folder, filename)
|
||||
|
||||
# 1. 处理 TXT -> OCD2
|
||||
if filename.endswith(".txt"):
|
||||
ocd2_filename = filename.replace(".txt", ".ocd2")
|
||||
ocd2_path = os.path.join(input_folder, ocd2_filename)
|
||||
cmd = f'opencc_dict -i "{file_path}" -o "{ocd2_path}" -f text -t ocd2'
|
||||
try:
|
||||
subprocess.run(cmd, shell=True, check=True)
|
||||
print(f"✅ 转换完成: {ocd2_filename}")
|
||||
os.remove(file_path)
|
||||
except Exception as e:
|
||||
print(f"❌ 转换失败: {filename}, {e}")
|
||||
|
||||
# 2. 修改 JSON
|
||||
elif filename.endswith(".json"):
|
||||
with open(file_path, "r", encoding="utf-8") as f:
|
||||
try:
|
||||
data = json.load(f)
|
||||
except: continue
|
||||
|
||||
state = {"modified": False}
|
||||
def update_json(obj):
|
||||
if isinstance(obj, dict):
|
||||
if "type" in obj and obj["type"] == "text":
|
||||
obj["type"] = "ocd2"
|
||||
state["modified"] = True
|
||||
if "file" in obj and obj["file"].endswith(".txt"):
|
||||
obj["file"] = obj["file"].replace(".txt", ".ocd2")
|
||||
state["modified"] = True
|
||||
for key in obj: update_json(obj[key])
|
||||
elif isinstance(obj, list):
|
||||
for item in obj: update_json(item)
|
||||
|
||||
update_json(data)
|
||||
if state["modified"]:
|
||||
with open(file_path, "w", encoding="utf-8") as f:
|
||||
json.dump(data, f, ensure_ascii=False, indent=2)
|
||||
print(f"📝 已更新 JSON: {filename}")
|
||||
|
||||
if __name__ == "__main__":
|
||||
process_opencc()
|
||||
Reference in New Issue
Block a user