mirror of
https://github.com/zhenxun-org/zhenxun_bot.git
synced 2026-10-01 01:30:04 +08:00
first_commit .gitignore
This commit is contained in:
@@ -0,0 +1,96 @@
|
||||
from nonebot import on_command, on_regex
|
||||
from .query_resource import get_resource_map_mes, get_resource_list_mes, up_label_and_point_list
|
||||
from util.utils import get_message_text, scheduler
|
||||
from nonebot.adapters.cqhttp import Bot, MessageEvent
|
||||
from nonebot.typing import T_State
|
||||
import os
|
||||
from services.log import logger
|
||||
import re
|
||||
try:
|
||||
import ujson as json
|
||||
except ModuleNotFoundError:
|
||||
import json
|
||||
|
||||
qr = on_command("原神资源查询", priority=5, block=True)
|
||||
qr_lst = on_command("原神资源列表", priority=5, block=True)
|
||||
rex_qr = on_regex('.*?(在哪|在哪里|哪有|哪里有).*?', priority=5, block=True)
|
||||
|
||||
|
||||
with open(os.path.dirname(__file__) + '/resource_type_id.json', 'r', encoding='utf-8') as f:
|
||||
in_list = [n['name'] for n in json.load(f).values()]
|
||||
|
||||
|
||||
@qr.handle()
|
||||
async def _(bot: Bot, event: MessageEvent, state: T_State):
|
||||
resource_name = get_message_text(event.json())
|
||||
if resource_name == "" or resource_name not in in_list:
|
||||
return
|
||||
|
||||
await qr.send(get_resource_map_mes(resource_name), at_sender=True)
|
||||
logger.info(
|
||||
f"(USER {event.user_id}, GROUP {event.group_id if event.message_type != 'private' else 'private'})"
|
||||
f" 查询原神材料:" + resource_name)
|
||||
|
||||
|
||||
@rex_qr.handle()
|
||||
async def _(bot: Bot, event: MessageEvent, state: T_State):
|
||||
msg = get_message_text(event.json())
|
||||
if msg.find('在哪') != -1:
|
||||
rs = re.search('(.*)在哪.*?', msg)
|
||||
resource_name = rs.group(1) if rs else ''
|
||||
else:
|
||||
rs = re.search('.*?(哪有|哪里有)(.*)', msg)
|
||||
resource_name = rs.group(2) if rs else ''
|
||||
if resource_name:
|
||||
msg = get_resource_map_mes(resource_name)
|
||||
if msg == '发送 原神资源列表 查看所有资源名称':
|
||||
return
|
||||
await rex_qr.send(msg, at_sender=True)
|
||||
logger.info(
|
||||
f"(USER {event.user_id}, GROUP {event.group_id if event.message_type != 'private' else 'private'})"
|
||||
f" 查询原神材料:" + resource_name)
|
||||
|
||||
|
||||
@qr_lst.handle()
|
||||
async def _(bot: Bot, event: MessageEvent, state: T_State):
|
||||
# 长条消息经常发送失败,所以只能这样了
|
||||
mes_list = []
|
||||
txt = get_resource_list_mes()
|
||||
txt_list = txt.split("\n")
|
||||
if event.message_type == 'group':
|
||||
for txt in txt_list:
|
||||
data = {
|
||||
"type": "node",
|
||||
"data": {
|
||||
"name": f"这里是{list(bot.config.nickname)[0]}酱",
|
||||
"uin": f"{bot.self_id}",
|
||||
"content": txt
|
||||
}
|
||||
}
|
||||
mes_list.append(data)
|
||||
# await bot.send(ev, get_resource_list_mes(), at_sender=True)
|
||||
if event.message_type == 'group':
|
||||
await bot.send_group_forward_msg(group_id=event.group_id, messages=mes_list)
|
||||
else:
|
||||
rst = ''
|
||||
for i in range(len(txt_list)):
|
||||
rst += txt_list[i] + '\n'
|
||||
if i % 5 == 0:
|
||||
if rst:
|
||||
await qr_lst.send(rst)
|
||||
rst = ''
|
||||
|
||||
# await qr_lst.send(Message(mes_list))
|
||||
|
||||
|
||||
@scheduler.scheduled_job(
|
||||
'cron',
|
||||
hour=5,
|
||||
minute=1,
|
||||
)
|
||||
async def _():
|
||||
try:
|
||||
up_label_and_point_list()
|
||||
logger.info(f'每日更新原神材料信息成功!')
|
||||
except Exception as e:
|
||||
logger.error(f'每日更新原神材料信息错误:{e}')
|
||||
Reference in New Issue
Block a user