mirror of
https://github.com/zhenxun-org/zhenxun_bot.git
synced 2025-12-15 14:22:55 +08:00
Add files via upload
This commit is contained in:
parent
53d1ab9948
commit
5c6063d466
49
plugins/genshin/almanac/__init__.py
Normal file
49
plugins/genshin/almanac/__init__.py
Normal file
@ -0,0 +1,49 @@
|
|||||||
|
from .alc import get_almanac_base64_str, load_data
|
||||||
|
import os
|
||||||
|
from util.utils import get_bot, scheduler
|
||||||
|
from nonebot import on_command
|
||||||
|
from models.level_user import LevelUser
|
||||||
|
from nonebot.typing import T_State
|
||||||
|
from nonebot.adapters.cqhttp import Bot, GroupMessageEvent
|
||||||
|
from util.init_result import image
|
||||||
|
from services.log import logger
|
||||||
|
from models.group_remind import GroupRemind
|
||||||
|
|
||||||
|
FILE_PATH = os.path.dirname(__file__)
|
||||||
|
|
||||||
|
almanac = on_command('原神黄历', priority=5, block=True)
|
||||||
|
reload = on_command('重载原神黄历数据', priority=5, block=True)
|
||||||
|
|
||||||
|
|
||||||
|
@almanac.handle()
|
||||||
|
async def _(bot: Bot, event: GroupMessageEvent, state: T_State):
|
||||||
|
almanac_base64 = get_almanac_base64_str()
|
||||||
|
mes = image(b64=almanac_base64) + "\n ※ 黄历数据来源于 genshin.pub"
|
||||||
|
await almanac.send(mes)
|
||||||
|
logger.info(
|
||||||
|
f"(USER {event.user_id}, GROUP {event.group_id if event.message_type != 'private' else 'private'})"
|
||||||
|
f" 发送查看原神黄历")
|
||||||
|
|
||||||
|
|
||||||
|
@reload.handle()
|
||||||
|
async def _(bot: Bot, event: GroupMessageEvent, state: T_State):
|
||||||
|
if await LevelUser.check_level(event.user_id, event.group_id, 5):
|
||||||
|
load_data()
|
||||||
|
await reload.send("重载成功")
|
||||||
|
|
||||||
|
|
||||||
|
@scheduler.scheduled_job(
|
||||||
|
'cron',
|
||||||
|
hour=10,
|
||||||
|
minute=25,
|
||||||
|
)
|
||||||
|
async def _():
|
||||||
|
# 每日提醒
|
||||||
|
bot = get_bot()
|
||||||
|
gl = await bot.get_group_list(self_id=bot.self_id)
|
||||||
|
gl = [g['group_id'] for g in gl]
|
||||||
|
almanac_base64 = get_almanac_base64_str()
|
||||||
|
mes = image(b64=almanac_base64) + "\n ※ 黄历数据来源于 genshin.pub"
|
||||||
|
for gid in gl:
|
||||||
|
if await GroupRemind.get_status(gid, 'almanac'):
|
||||||
|
await bot.send_group_msg(group_id=int(gid), message=mes)
|
||||||
123
plugins/genshin/almanac/alc.py
Normal file
123
plugins/genshin/almanac/alc.py
Normal file
@ -0,0 +1,123 @@
|
|||||||
|
from PIL import Image, ImageDraw, ImageFont
|
||||||
|
from io import BytesIO
|
||||||
|
|
||||||
|
import os
|
||||||
|
import json
|
||||||
|
import random
|
||||||
|
import base64
|
||||||
|
import time
|
||||||
|
|
||||||
|
FILE_PATH = os.path.dirname(__file__)
|
||||||
|
FONT_PATH = os.path.join(FILE_PATH, "汉仪文黑.ttf")
|
||||||
|
|
||||||
|
data = {} # configs.json里的数据
|
||||||
|
|
||||||
|
almanac_data = {
|
||||||
|
# 生成的黄历base64字符串和黄历更新日期
|
||||||
|
"date": "",
|
||||||
|
"almanac_base64_str": ""
|
||||||
|
}
|
||||||
|
|
||||||
|
chinese = {"0": "", "1": "一", "2": "二", "3": "三", "4": "四", "5": "五", "6": "六", "7": "七", "8": "八", "9": "九"}
|
||||||
|
|
||||||
|
|
||||||
|
def month_to_chinese(month: str):
|
||||||
|
# 把日期数字转成中文数字
|
||||||
|
m = int(month)
|
||||||
|
if m < 10:
|
||||||
|
return chinese[month[-1]]
|
||||||
|
elif m < 20:
|
||||||
|
return "十" + chinese[month[-1]]
|
||||||
|
else:
|
||||||
|
return chinese[month[0]] + "十" + chinese[month[-1]]
|
||||||
|
|
||||||
|
|
||||||
|
def load_data():
|
||||||
|
# 载入config.json文件的数据
|
||||||
|
global data
|
||||||
|
with open(os.path.join(FILE_PATH, 'config.json'), 'r', encoding='UTF-8') as f:
|
||||||
|
data = json.load(f)
|
||||||
|
|
||||||
|
almanac_data["date"] = ""
|
||||||
|
almanac_data["almanac_base64_str"] = ""
|
||||||
|
|
||||||
|
|
||||||
|
load_data()
|
||||||
|
|
||||||
|
|
||||||
|
def seed_random_list(seed: str, l: list):
|
||||||
|
# 使用随机种子随机选择列表中的元素,相同的种子和列表将返回同样的输出
|
||||||
|
seed = seed + str(l)
|
||||||
|
random.seed(seed)
|
||||||
|
index = random.random() * len(l)
|
||||||
|
return l[int(index)]
|
||||||
|
|
||||||
|
|
||||||
|
def generate_almanac():
|
||||||
|
# 生成黄历图片,然后转换成base64保存到 almanac_data["almanac_base64_str"]
|
||||||
|
|
||||||
|
seed = time.strftime("%Y-%m-%d")
|
||||||
|
offset = 1
|
||||||
|
today_luck = []
|
||||||
|
l = list(data.keys())
|
||||||
|
|
||||||
|
while len(today_luck) < 6:
|
||||||
|
# 随机6个不同的运势放到 today_luck
|
||||||
|
r = seed_random_list(str(offset) + seed, l)
|
||||||
|
if r in today_luck:
|
||||||
|
offset += 1
|
||||||
|
else:
|
||||||
|
today_luck.append(r)
|
||||||
|
|
||||||
|
back = Image.open(os.path.join(FILE_PATH, "back.png"))
|
||||||
|
|
||||||
|
year = time.strftime("%Y")
|
||||||
|
month = month_to_chinese(time.strftime("%m")) + "月"
|
||||||
|
day = month_to_chinese(time.strftime("%d")) + "日"
|
||||||
|
|
||||||
|
draw = ImageDraw.Draw(back)
|
||||||
|
draw.text((118, 165), year, fill="#8d7650ff", font=ImageFont.truetype(FONT_PATH, size=30), anchor="mm",
|
||||||
|
align="center")
|
||||||
|
draw.text((260, 165), day, fill="#f7f8f2ff", font=ImageFont.truetype(FONT_PATH, size=35), anchor="mm",
|
||||||
|
align="center")
|
||||||
|
draw.text((410, 165), month, fill="#8d7650ff", font=ImageFont.truetype(FONT_PATH, size=30), anchor="mm",
|
||||||
|
align="center")
|
||||||
|
|
||||||
|
buff = Image.new("RGBA", (325, 160))
|
||||||
|
debuff = Image.new("RGBA", (325, 160))
|
||||||
|
|
||||||
|
buff_draw = ImageDraw.Draw(buff)
|
||||||
|
debuff_draw = ImageDraw.Draw(debuff)
|
||||||
|
|
||||||
|
for i in range(3):
|
||||||
|
buff_name = today_luck[i]
|
||||||
|
debuff_name = today_luck[(i + 3)]
|
||||||
|
|
||||||
|
buff_effect = seed_random_list(seed, data[buff_name]["buff"])
|
||||||
|
debuff_effect = seed_random_list(seed, data[debuff_name]["debuff"])
|
||||||
|
|
||||||
|
buff_draw.text((0, i * 53), buff_name, fill="#756141ff", font=ImageFont.truetype(FONT_PATH, size=25))
|
||||||
|
debuff_draw.text((0, i * 53), debuff_name, fill="#756141ff", font=ImageFont.truetype(FONT_PATH, size=25))
|
||||||
|
|
||||||
|
buff_draw.text((0, i * 53 + 28), buff_effect, fill="#b5b3acff", font=ImageFont.truetype(FONT_PATH, size=19))
|
||||||
|
debuff_draw.text((0, i * 53 + 28), debuff_effect, fill="#b5b3acff", font=ImageFont.truetype(FONT_PATH, size=19))
|
||||||
|
|
||||||
|
back.paste(buff, (150, 230), buff)
|
||||||
|
back.paste(debuff, (150, 400), debuff)
|
||||||
|
|
||||||
|
bio = BytesIO()
|
||||||
|
back.save(bio, format='PNG')
|
||||||
|
base64_str = base64.b64encode(bio.getvalue()).decode()
|
||||||
|
|
||||||
|
almanac_data["date"] = time.strftime("%Y-%m-%d")
|
||||||
|
almanac_data["almanac_base64_str"] = 'base64://' + base64_str
|
||||||
|
|
||||||
|
|
||||||
|
def get_almanac_base64_str():
|
||||||
|
# if almanac_data["date"] == time.strftime("%Y-%m-%d"):
|
||||||
|
# return almanac_data["almanac_base64_str"]
|
||||||
|
# else:
|
||||||
|
# generate_almanac()
|
||||||
|
# return almanac_data["almanac_base64_str"]
|
||||||
|
generate_almanac()
|
||||||
|
return almanac_data["almanac_base64_str"]
|
||||||
BIN
plugins/genshin/almanac/back.png
Normal file
BIN
plugins/genshin/almanac/back.png
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 26 KiB |
70
plugins/genshin/almanac/config.json
Normal file
70
plugins/genshin/almanac/config.json
Normal file
@ -0,0 +1,70 @@
|
|||||||
|
{
|
||||||
|
"抽卡":{
|
||||||
|
"buff": ["欧气满满,十连出金","出金不歪"],
|
||||||
|
"debuff": ["武器大师","保底出金","金色会是痛苦大剑"]
|
||||||
|
},
|
||||||
|
"刷世界boss":{
|
||||||
|
"buff": ["双攻双爆角斗士"],
|
||||||
|
"debuff": ["只有保底材料","贪生怕死角斗士"]
|
||||||
|
},
|
||||||
|
"刷风本":{
|
||||||
|
"buff": ["会有极品猎人套","会掉真正的少女心","治疗加成少女头"],
|
||||||
|
"debuff": ["勇往直前少女心","少女飘摇的杀意","少女暴怒的容颜"]
|
||||||
|
},
|
||||||
|
"刷火本":{
|
||||||
|
"buff": ["魔女帽子火伤杯","暴伤魔女帽!","火伤魔女心!"],
|
||||||
|
"debuff": ["幡 然 醒 悟","这么阴间的地方真的会有魔女套吗?","不务正业火魔女","会匹配到3个卢姥爷"]
|
||||||
|
},
|
||||||
|
"刷岩本":{
|
||||||
|
"buff": ["悠久的磐岩伴你左右","岩神的庇护常在"],
|
||||||
|
"debuff": ["防御流星杯,你值得拥有"]
|
||||||
|
},
|
||||||
|
"刷宗室":{
|
||||||
|
"buff": ["物理伤害骑士道,元素精通宗室套"],
|
||||||
|
"debuff": ["贪生怕死骑士道,物理伤害宗室杯"]
|
||||||
|
},
|
||||||
|
"刷冰本":{
|
||||||
|
"buff": ["双暴词条概率up"],
|
||||||
|
"debuff": ["防御力船帽,无人可及"]
|
||||||
|
},
|
||||||
|
"刷雷本":{
|
||||||
|
"buff": ["愿雷鸟伴你左右"],
|
||||||
|
"debuff": ["来表演一个只掉平雷套的绝活","风神忽悠雷凶兆"]
|
||||||
|
},
|
||||||
|
"锄大地":{
|
||||||
|
"buff": ["会掉一大堆紫色材料"],
|
||||||
|
"debuff": ["深渊法师爱你哟","会被冰水法控到死"]
|
||||||
|
},
|
||||||
|
"挖矿":{
|
||||||
|
"buff": ["开矿出双材料"],
|
||||||
|
"debuff": ["去别人世界会被拒"]
|
||||||
|
},
|
||||||
|
"刷天赋本":{
|
||||||
|
"buff": ["金色!我看到了金色的书!"],
|
||||||
|
"debuff": ["2蓝2绿不会变"]
|
||||||
|
},
|
||||||
|
"刷突破材料":{
|
||||||
|
"buff": ["金色!我看到了金色的材料!"],
|
||||||
|
"debuff": ["2蓝2绿不会变"]
|
||||||
|
},
|
||||||
|
"升级圣遗物":{
|
||||||
|
"buff": ["稀有词条跳跳跳","会双爆拉满"],
|
||||||
|
"debuff": ["女 仆 狂 喜","无中生有防御力","生命拉满","完美避开双爆"]
|
||||||
|
},
|
||||||
|
"打风魔龙":{
|
||||||
|
"buff": ["看我一箭一个风魔鸡","今天特瓦林可以给想要的突破材料","5金加原胚!"],
|
||||||
|
"debuff": ["会不小心掉下平台","不小心被地板烫死了"]
|
||||||
|
},
|
||||||
|
"打狼王":{
|
||||||
|
"buff": ["今天安德琉斯的心情不错,可以py一下","5金加原胚!"],
|
||||||
|
"debuff": ["狼尾巴*1"]
|
||||||
|
},
|
||||||
|
"打公子":{
|
||||||
|
"buff": ["今天可以和公子py想要的突破材料","5金加原胚!"],
|
||||||
|
"debuff": ["要角没有!要命一条!"]
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
BIN
plugins/genshin/almanac/汉仪文黑.ttf
Normal file
BIN
plugins/genshin/almanac/汉仪文黑.ttf
Normal file
Binary file not shown.
72
plugins/genshin/material_remind/__init__.py
Normal file
72
plugins/genshin/material_remind/__init__.py
Normal file
@ -0,0 +1,72 @@
|
|||||||
|
from nonebot import on_command
|
||||||
|
from nonebot.typing import T_State
|
||||||
|
from nonebot.adapters.cqhttp import Bot, MessageEvent
|
||||||
|
from util.init_result import image
|
||||||
|
|
||||||
|
import time
|
||||||
|
|
||||||
|
material = on_command('今日素材', aliases={'今日材料', '今天素材', '今天材料'}, priority=5, block=True)
|
||||||
|
role_material = on_command('天赋材料', priority=5, block=True)
|
||||||
|
|
||||||
|
|
||||||
|
def get_today_material(name: str):
|
||||||
|
# 返回今天的材料图片CQ码
|
||||||
|
if name == '天赋材料':
|
||||||
|
return image('天赋材料.png', "genshin/material/")
|
||||||
|
week = time.strftime("%w")
|
||||||
|
png_name = ''
|
||||||
|
if week == "0":
|
||||||
|
return "今天是周日,所有材料副本都开放了。"
|
||||||
|
elif week in ["1", "4"]:
|
||||||
|
png_name = f"{name}_周一周四.png"
|
||||||
|
elif week in ["2", "5"]:
|
||||||
|
png_name = f"{name}_周二周五.png"
|
||||||
|
elif week in ["3", "6"]:
|
||||||
|
png_name = f"{name}_周三周六.png"
|
||||||
|
|
||||||
|
return image(png_name, "genshin/material/")
|
||||||
|
|
||||||
|
|
||||||
|
# @sv.on_fullmatch('开启原神每日素材提醒')
|
||||||
|
# async def open_remind(bot , ev):
|
||||||
|
# gid = str(ev.group_id)
|
||||||
|
# if not (gid in group_list):
|
||||||
|
# group_list.append(gid)
|
||||||
|
# save_group_list()
|
||||||
|
# await bot.send(ev, "每日提醒已开启,每天8点会发送今日素材")
|
||||||
|
#
|
||||||
|
#
|
||||||
|
# @sv.on_fullmatch('关闭原神每日素材提醒')
|
||||||
|
# async def off_remind(bot , ev):
|
||||||
|
# gid = str(ev.group_id)
|
||||||
|
# if gid in group_list:
|
||||||
|
# group_list.remove(gid)
|
||||||
|
# save_group_list()
|
||||||
|
# await bot.send(ev, "每日提醒已关闭")
|
||||||
|
|
||||||
|
@material.handle()
|
||||||
|
async def _(bot: Bot, event: MessageEvent, state: T_State):
|
||||||
|
if time.strftime("%w") == "0":
|
||||||
|
await material.send("今天是周日,所有材料副本都开放了。")
|
||||||
|
return
|
||||||
|
arms_material_CQ = get_today_material("武器突破材料")
|
||||||
|
roles_material_CQ = get_today_material("角色天赋材料")
|
||||||
|
await material.send(arms_material_CQ + roles_material_CQ)
|
||||||
|
|
||||||
|
|
||||||
|
@role_material.handle()
|
||||||
|
async def _(bot: Bot, event: MessageEvent, state: T_State):
|
||||||
|
await material.send(get_today_material("天赋材料"))
|
||||||
|
|
||||||
|
# @sv.scheduled_job('cron', hour='8')
|
||||||
|
# async def material_remind():
|
||||||
|
# # 每日提醒
|
||||||
|
# if time.strftime("%w") == "0":
|
||||||
|
# # 如果今天是周日就不发了
|
||||||
|
# return
|
||||||
|
# bot = get_bot()
|
||||||
|
# arms_material_CQ = get_today_material("武器突破材料")
|
||||||
|
# roles_material_CQ = get_today_material("角色天赋材料")
|
||||||
|
# for gid in group_list:
|
||||||
|
# await bot.send_group_msg(group_id=int(gid), message=arms_material_CQ)
|
||||||
|
# await bot.send_group_msg(group_id=int(gid), message=roles_material_CQ)
|
||||||
37
plugins/genshin/qiu_qiu_translation/__init__.py
Normal file
37
plugins/genshin/qiu_qiu_translation/__init__.py
Normal file
@ -0,0 +1,37 @@
|
|||||||
|
from .qiu_translation import qiu_qiu_word_translation, qiu_qiu_phrase_translation
|
||||||
|
from nonebot.adapters.cqhttp import Bot, MessageEvent
|
||||||
|
from nonebot.typing import T_State
|
||||||
|
from nonebot import on_command
|
||||||
|
from util.utils import get_message_text
|
||||||
|
from services.log import logger
|
||||||
|
|
||||||
|
|
||||||
|
qiuqiu = on_command("丘丘语翻译", aliases={"丘丘一下", "丘丘翻译"}, priority=5, block=True)
|
||||||
|
|
||||||
|
suffix = "\n※ 只能从丘丘语翻译为中文,不能反向翻译\n" \
|
||||||
|
"※ 注意空格,不要加入任何标点符号\n" \
|
||||||
|
"※ 翻译数据来源于 米游社论坛"
|
||||||
|
|
||||||
|
|
||||||
|
@qiuqiu.handle()
|
||||||
|
async def _(bot: Bot, event: MessageEvent, state: T_State):
|
||||||
|
txt = get_message_text(event.json()).lower()
|
||||||
|
if txt == "":
|
||||||
|
return
|
||||||
|
mes = qiu_qiu_phrase_translation(txt)
|
||||||
|
if not mes:
|
||||||
|
mes = qiu_qiu_word_translation(txt)
|
||||||
|
mes += suffix
|
||||||
|
# print(mes)
|
||||||
|
await qiuqiu.send(mes, at_sender=True)
|
||||||
|
logger.info(
|
||||||
|
f"(USER {event.user_id}, GROUP {event.group_id if event.message_type != 'private' else 'private'})"
|
||||||
|
f" 发送丘丘翻译:" + txt)
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
127
plugins/genshin/qiu_qiu_translation/qiu_qiu_dictionary.json
Normal file
127
plugins/genshin/qiu_qiu_translation/qiu_qiu_dictionary.json
Normal file
@ -0,0 +1,127 @@
|
|||||||
|
{
|
||||||
|
"word": {
|
||||||
|
|
||||||
|
"a": "啊",
|
||||||
|
|
||||||
|
"beru": "做",
|
||||||
|
"biadam": "找死啊",
|
||||||
|
"biat": "暴揍",
|
||||||
|
"buka": "肚子",
|
||||||
|
|
||||||
|
"celi": "元素",
|
||||||
|
|
||||||
|
"dada": "厉害",
|
||||||
|
"dala": "什么",
|
||||||
|
"domu": "跳舞",
|
||||||
|
|
||||||
|
"eleka": "此时此刻",
|
||||||
|
|
||||||
|
"guru": "咕",
|
||||||
|
"gusha": "草",
|
||||||
|
|
||||||
|
"ika": "敌人",
|
||||||
|
|
||||||
|
"kundela": "活着",
|
||||||
|
"kuzi": "强大",
|
||||||
|
"kucha": "吃草",
|
||||||
|
|
||||||
|
"la": "啦~",
|
||||||
|
"lata": "水元素",
|
||||||
|
|
||||||
|
"mani": "给予",
|
||||||
|
"mi": "我",
|
||||||
|
"mimi": "我们",
|
||||||
|
"mita": "肉类",
|
||||||
|
"mosi": "吃",
|
||||||
|
"movo": "带来",
|
||||||
|
"muhe": "胜利",
|
||||||
|
|
||||||
|
"ni": "风",
|
||||||
|
"nini": "风暴",
|
||||||
|
"nunu": "睡觉",
|
||||||
|
"nye": "不",
|
||||||
|
|
||||||
|
"odomu": "朋友",
|
||||||
|
"olah": "你好",
|
||||||
|
|
||||||
|
"plata": "盾牌",
|
||||||
|
"pupu": "噗噗",
|
||||||
|
|
||||||
|
"sada": "唱歌",
|
||||||
|
"shato": "伴随",
|
||||||
|
"si": "什么",
|
||||||
|
|
||||||
|
"tomo": "感激",
|
||||||
|
"todo": "放心",
|
||||||
|
"tiga": "矿石",
|
||||||
|
|
||||||
|
"upa": "聚集",
|
||||||
|
"unu": "乌努",
|
||||||
|
|
||||||
|
"valo": "谢谢你",
|
||||||
|
"vin": "酒",
|
||||||
|
|
||||||
|
"ya": "人",
|
||||||
|
"yaya": "人们",
|
||||||
|
"ye": "家伙",
|
||||||
|
"yeye": "这些家伙",
|
||||||
|
"yo": "你",
|
||||||
|
"yoyo": "你们",
|
||||||
|
|
||||||
|
"zido": "杀死"
|
||||||
|
|
||||||
|
},
|
||||||
|
"phrase": {
|
||||||
|
"beru si": "做什么",
|
||||||
|
"biadam": "可恶啊,找死啊,愤怒语气",
|
||||||
|
"biat": "打爆,暴揍;可恶的",
|
||||||
|
|
||||||
|
"dada": " 极好的,厉害的",
|
||||||
|
"dala": "表示疑问,不明白的集合,翻译为哪个,什么",
|
||||||
|
|
||||||
|
"guru-guru": "拟声词,形容肚子咕咕叫的声音,饥饿",
|
||||||
|
"guru guru": "拟声词,形容肚子咕咕叫的声音,饥饿",
|
||||||
|
"gusha": "植物类食物,不怎么好的,难过的",
|
||||||
|
|
||||||
|
"kucha pupu": "拟声词,吃草时候的拟声词,咯吱噗噗,形容吃草吃得香,贬义",
|
||||||
|
|
||||||
|
"mita": "肉类,好的,好东西,有时代丘丘人,丘丘人部落,好肉族",
|
||||||
|
"mosi mita": "吃肉,表示开心",
|
||||||
|
"mosi gusha": "吃草,表示难过",
|
||||||
|
"movo": "带来,搬运;可引申为收获,丰收",
|
||||||
|
"muhe": "胜利,战胜;成功的",
|
||||||
|
|
||||||
|
"nini": "大量风元素,风暴,狂风",
|
||||||
|
"nye": "表示否定,没有了,不是",
|
||||||
|
|
||||||
|
"pupu":"拟声词,噗噗,表示嘲讽",
|
||||||
|
|
||||||
|
"sada": "唱歌,歌颂",
|
||||||
|
"shato": "乘着,伴随着",
|
||||||
|
|
||||||
|
"upa": "凝聚,聚集,集合;聚落,部落",
|
||||||
|
"unu": "乌努,丘丘人所崇拜的神灵",
|
||||||
|
|
||||||
|
"valo": "谢谢你,不客气/再见",
|
||||||
|
"vin": "酒的,喝酒有关的,酒桶盖子",
|
||||||
|
|
||||||
|
"ya": "特指人类,一个人类",
|
||||||
|
"yaya": "人类的复数 ,大群人类",
|
||||||
|
"ye": "你这个家伙,蔑称;或用于地位高者对地位低者的称呼",
|
||||||
|
"yeye": "你们这些家伙,蔑称,ye的复数",
|
||||||
|
"yo": "你,友善称呼",
|
||||||
|
"yoyo": "你们,yo的复数,友善称呼ye",
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
"nye mita da ye mosi zido": "再见,一路平安",
|
||||||
|
"vin plata dada": "你的酒桶盾牌真不错",
|
||||||
|
"kucha pupu gucha ye": "你咯吱噗噗的吃草的样子真的好搞笑",
|
||||||
|
"mani nini biaodomu": "愿风暴给予你死亡",
|
||||||
|
"celi dada mimi nunu": "赞美元素,我们睡觉吧",
|
||||||
|
"muhe ye": "你们是不可战胜的",
|
||||||
|
"ye dada": "你们可真棒",
|
||||||
|
"ye yika": "你们是敌人",
|
||||||
|
"nini zido": "愿风暴杀死你"
|
||||||
|
}
|
||||||
|
}
|
||||||
71
plugins/genshin/qiu_qiu_translation/qiu_translation.py
Normal file
71
plugins/genshin/qiu_qiu_translation/qiu_translation.py
Normal file
@ -0,0 +1,71 @@
|
|||||||
|
import json
|
||||||
|
import os
|
||||||
|
|
||||||
|
FILE_PATH = os.path.dirname(__file__)
|
||||||
|
|
||||||
|
QIU_QIU_WORD = {}
|
||||||
|
QIU_QIU_PHRASE = {}
|
||||||
|
|
||||||
|
with open(os.path.join(FILE_PATH, 'qiu_qiu_dictionary.json'), 'r', encoding='UTF-8') as f:
|
||||||
|
data = json.load(f)
|
||||||
|
QIU_QIU_WORD = data["word"]
|
||||||
|
QIU_QIU_PHRASE = data["phrase"]
|
||||||
|
|
||||||
|
|
||||||
|
def compare_words(word):
|
||||||
|
# 比对word库是否有匹配的单词,有的话返回翻译,没有返回原词
|
||||||
|
if word in QIU_QIU_WORD:
|
||||||
|
return QIU_QIU_WORD[word]
|
||||||
|
|
||||||
|
return word
|
||||||
|
|
||||||
|
|
||||||
|
def compare_phrase(phrase):
|
||||||
|
# 比对phrase库是否有匹配的单词,有的话返回翻译,没有的话匹配word库,都没有返回原词
|
||||||
|
if phrase in QIU_QIU_PHRASE:
|
||||||
|
return QIU_QIU_PHRASE[phrase]
|
||||||
|
if phrase in QIU_QIU_WORD:
|
||||||
|
return QIU_QIU_WORD[phrase]
|
||||||
|
|
||||||
|
return phrase
|
||||||
|
|
||||||
|
|
||||||
|
def qiu_qiu_word_translation(txt: str):
|
||||||
|
# 对语句按空格分隔替换单词翻译
|
||||||
|
txt_list = txt.split(" ")
|
||||||
|
mes = "你查询的的丘丘语意思为:\n"
|
||||||
|
|
||||||
|
for word in txt_list:
|
||||||
|
tra_word = compare_words(word)
|
||||||
|
|
||||||
|
if tra_word == word:
|
||||||
|
# 如果是原词表示没有翻译,前后加空格接回语句里
|
||||||
|
if not mes[-1] == " ":
|
||||||
|
mes += " "
|
||||||
|
mes += tra_word
|
||||||
|
mes += " "
|
||||||
|
else:
|
||||||
|
mes += tra_word
|
||||||
|
mes += "\n"
|
||||||
|
return mes
|
||||||
|
|
||||||
|
|
||||||
|
def qiu_qiu_phrase_translation(phrase):
|
||||||
|
# 语句翻译,先看phrase库是不是有匹配的语句
|
||||||
|
# 没有的话把单词拆开返回单词的意思
|
||||||
|
tra_phrase = compare_phrase(phrase)
|
||||||
|
if tra_phrase != phrase:
|
||||||
|
return f"\n翻译丘丘语意思为:\n【{tra_phrase}】\n"
|
||||||
|
|
||||||
|
txt_list = phrase.split(" ")
|
||||||
|
mes = "没有查到这句丘丘语,以下是单词的翻译\n"
|
||||||
|
for word in txt_list:
|
||||||
|
if word == " ":
|
||||||
|
continue
|
||||||
|
tra_word = compare_phrase(word)
|
||||||
|
if tra_word == word:
|
||||||
|
mes += f"{word} : 没有这个词的翻译\n"
|
||||||
|
else:
|
||||||
|
mes += f"{word} : {tra_word}\n"
|
||||||
|
|
||||||
|
return mes
|
||||||
Loading…
Reference in New Issue
Block a user