47 lines
1.2 KiB
Python
47 lines
1.2 KiB
Python
import os, sys, re, datetime
|
|
from pypinyin import pinyin, Style
|
|
|
|
workDir = os.path.abspath(os.path.dirname(sys.path[0]))
|
|
pattern = re.compile(r"^[\u4e00-\u9fa5]+$")
|
|
|
|
# now = datetime.datetime.now().strftime("%Y-%m-%d")
|
|
# dateStr = now.strftime("%Y-%m-%d")
|
|
infoStr = f"""# Rime dictionary
|
|
# encoding: utf-8
|
|
# source: https://github.com/iDvel/rime-ice/blob/main/opencc/emoji.txt
|
|
|
|
---
|
|
name: emoji
|
|
version: "{datetime.datetime.now().strftime("%Y-%m-%d")}"
|
|
sort: by_weight
|
|
...
|
|
|
|
"""
|
|
|
|
with open(
|
|
os.path.join(workDir, "opencc", "emoji_word.txt"), "r", encoding="utf-8"
|
|
) as f:
|
|
text = f.read()
|
|
|
|
lines = text.split("\n")
|
|
|
|
|
|
with open(
|
|
os.path.join(workDir, "dicts", "emoji.dict.yaml"),
|
|
"w",
|
|
encoding="utf-8",
|
|
newline="\n",
|
|
) as outFile:
|
|
outFile.write(infoStr)
|
|
for line in lines:
|
|
if line:
|
|
parts = line.split("\t")
|
|
# emoji = parts[1].strip().split(" ")[-1]
|
|
name = parts[0].strip().split(" ")[-1]
|
|
pinyin_name = " ".join([p[0] for p in pinyin(name, style=Style.NORMAL)])
|
|
if pattern.match(name):
|
|
# print(f"{name}\t{pinyin_name}")
|
|
outFile.write(f"{name}\t{pinyin_name}\n")
|
|
|
|
print("Emoji to dictionary successfully")
|