From 3e32ca3964ff8f40e0b491e87f153040f2348fd0 Mon Sep 17 00:00:00 2001 From: Kyomotoi Date: Thu, 3 Feb 2022 14:36:24 +0800 Subject: =?UTF-8?q?=F0=9F=94=96=20=E6=9B=B4=E6=96=B0=E7=89=88=E6=9C=AC:?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 更新记录请参考文档: atri.kyomotoi.moe/changelog/overview/ --- ATRI/plugins/chat/__init__.py | 58 +++++++++++-------------------------------- 1 file changed, 14 insertions(+), 44 deletions(-) (limited to 'ATRI/plugins/chat/__init__.py') diff --git a/ATRI/plugins/chat/__init__.py b/ATRI/plugins/chat/__init__.py index f401f3f..217c71e 100644 --- a/ATRI/plugins/chat/__init__.py +++ b/ATRI/plugins/chat/__init__.py @@ -1,9 +1,9 @@ from random import choice -from nonebot.typing import T_State -from nonebot.adapters.cqhttp import Bot, MessageEvent +from nonebot.matcher import Matcher +from nonebot.params import ArgPlainText, CommandArg +from nonebot.adapters.onebot.v11 import Bot, MessageEvent, Message -from ATRI.utils import CoolqCodeChecker from ATRI.utils.limit import FreqLimiter from ATRI.utils.apscheduler import scheduler from .data_source import Chat @@ -17,7 +17,6 @@ chat = Chat().on_message("文爱", "闲聊(文爱") @chat.handle() async def _chat(bot: Bot, event: MessageEvent): - print(1) user_id = event.get_user_id() if not _chat_flmt.check(user_id): await chat.finish(_chat_flmt_notice) @@ -34,33 +33,20 @@ async def _chat(bot: Bot, event: MessageEvent): my_name_is = Chat().on_command("叫我", "更改闲聊(文爱)时的称呼", aliases={"我是"}, priority=1) -@my_name_is.args_parser # type: ignore -async def _get_name(bot: Bot, event: MessageEvent, state: T_State): - msg = str(event.message).strip() - quit_list = ["算了", "罢了", "取消"] - if msg in quit_list: - await my_name_is.finish("好吧...") - if not msg: - await my_name_is.reject("欧尼酱想让咱如何称呼呢!0w0") - else: - state["name"] = msg - - @my_name_is.handle() -async def _name(bot: Bot, event: MessageEvent, state: T_State): +async def _name(matcher: Matcher, event: MessageEvent, args: Message = CommandArg()): user_id = event.get_user_id() if not _chat_flmt.check(user_id): await my_name_is.finish(_chat_flmt_notice) - msg = str(event.message).strip() + msg = args.extract_plain_text() if msg: - state["name"] = msg + matcher.set_arg("name", args) @my_name_is.got("name", "欧尼酱想让咱如何称呼呢!0w0") -async def _deal_name(bot: Bot, event: MessageEvent, state: T_State): +async def _deal_name(event: MessageEvent, new_name: str = ArgPlainText("name")): user_id = event.get_user_id() - new_name = state["name"] repo = choice( [ f"好~w 那咱以后就称呼你为{new_name}!", @@ -77,37 +63,21 @@ async def _deal_name(bot: Bot, event: MessageEvent, state: T_State): say = Chat().on_command("说", "别人让我说啥就说啥(", priority=1) -@say.args_parser # type: ignore -async def _get_say(bot: Bot, event: MessageEvent, state: T_State): - msg = str(event.message).strip() - quit_list = ["算了", "罢了"] - if msg in quit_list: - await say.finish("好吧...") - if not msg: - await say.reject("阿!要咱说啥呢...") - else: - state["say"] = msg - - @say.handle() -async def _ready_say(bot: Bot, event: MessageEvent, state: T_State): +async def _ready_say( + matcher: Matcher, event: MessageEvent, args: Message = CommandArg() +): user_id = event.get_user_id() if not _chat_flmt.check(user_id): await say.finish(_chat_flmt_notice) - msg = str(event.message) + msg = args.extract_plain_text() if msg: - state["say"] = msg - + matcher.set_arg("say", args) -@say.got("say") -async def _deal_say(bot: Bot, event: MessageEvent, state: T_State): - msg = state["say"] - check = CoolqCodeChecker(msg).check - if not check: - repo = choice(["不要...", "这个咱不想复读!", "不可以", "不好!"]) - await say.finish(repo) +@say.got("say", "想要咱复读啥呢...") +async def _deal_say(event: MessageEvent, msg: str = ArgPlainText("say")): user_id = event.get_user_id() _chat_flmt.start_cd(user_id) await say.finish(msg) -- cgit v1.2.3