refactor code

This commit is contained in:
hibiki
2021-07-30 21:21:51 +08:00
parent 2ad891aa1e
commit cc24822dca
165 changed files with 7815 additions and 8174 deletions
@@ -1,96 +1,92 @@
from nonebot import on_command, on_regex
from nonebot.rule import to_me
from .query_resource import get_resource_map_mes, get_resource_list_mes, up_label_and_point_list
from .query_resource import get_resource_type_list, query_resource, init
from utils.utils import get_message_text, scheduler
from nonebot.adapters.cqhttp import Bot, MessageEvent
from nonebot.adapters.cqhttp import Bot, MessageEvent, GroupMessageEvent, Message
from nonebot.typing import T_State
import os
from services.log import logger
import re
try:
import ujson as json
except ModuleNotFoundError:
import json
__plugin_name__ = '原神资源查询'
__plugin_name__ = "原神资源查询"
__plugin_usage__ = '用法:\n' \
'\t原神资源查询 [消息]\n' \
'\t原神资源列表\n' \
'\t[消息]在哪\n' \
'\t哪有[消息]\n' \
'[消息] = 资源名称'
__plugin_usage__ = (
"用法:\n" "\t原神资源查询 [消息]\n" "\t原神资源列表\n" "\t[消息]在哪\n" "\t哪有[消息]\n" "[消息] = 资源名称"
)
qr = on_command("原神资源查询", priority=5, block=True)
qr_lst = on_command("原神资源列表", priority=5, block=True)
rex_qr = on_regex('.*?(在哪|在哪里|哪有|哪里有).*?', rule=to_me(), 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()]
rex_qr = on_regex(".*?(在哪|在哪里|哪有|哪里有).*?", rule=to_me(), priority=5, block=True)
update_info = on_command('更新原神资源信息', priority=1, block=True)
@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(await get_resource_map_mes(resource_name), at_sender=True)
await qr.send('正在生成位置....')
rst = await query_resource(resource_name)
await qr.send(Message(rst), at_sender=True)
logger.info(
f"(USER {event.user_id}, GROUP {event.group_id if event.message_type != 'private' else 'private'})"
f" 查询原神材料:" + resource_name)
f"(USER {event.user_id}, GROUP {event.group_id if isinstance(event, GroupMessageEvent) 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 ''
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 ''
rs = re.search(".*?(哪有|哪里有)(.*)", msg)
resource_name = rs.group(2) if rs else ""
if resource_name:
msg = await get_resource_map_mes(resource_name)
if msg == '发送 原神资源列表 查看所有资源名称':
return
await rex_qr.send(msg, at_sender=True)
await qr.send('正在生成位置....')
msg = await query_resource(resource_name)
await rex_qr.send(Message(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)
f"(USER {event.user_id}, GROUP {event.group_id if isinstance(event, GroupMessageEvent) 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 = get_resource_type_list()
txt_list = txt.split("\n")
if event.message_type == 'group':
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
}
"content": txt,
},
}
mes_list.append(data)
# await bot.send(ev, get_resource_list_mes(), at_sender=True)
if event.message_type == 'group':
if isinstance(event, GroupMessageEvent):
await bot.send_group_forward_msg(group_id=event.group_id, messages=mes_list)
else:
rst = ''
rst = ""
for i in range(len(txt_list)):
rst += txt_list[i] + '\n'
rst += txt_list[i] + "\n"
if i % 5 == 0:
if rst:
await qr_lst.send(rst)
rst = ''
rst = ""
# await qr_lst.send(Message(mes_list))
@update_info.handle()
async def _(bot: Bot, event: MessageEvent, state: T_State):
await init(True)
await update_info.send('更新原神资源信息完成...')
@scheduler.scheduled_job(
@@ -100,7 +96,7 @@ async def _(bot: Bot, event: MessageEvent, state: T_State):
)
async def _():
try:
await up_label_and_point_list()
await init()
logger.info(f'每日更新原神材料信息成功!')
except Exception as e:
logger.error(f'每日更新原神材料信息错误:{e}')