From 3e32ca3964ff8f40e0b491e87f153040f2348fd0 Mon Sep 17 00:00:00 2001
From: Kyomotoi <kyomotoiowo@gmail.com>
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/saucenao/__init__.py | 31 ++++++++++---------------------
 1 file changed, 10 insertions(+), 21 deletions(-)

(limited to 'ATRI/plugins/saucenao/__init__.py')

diff --git a/ATRI/plugins/saucenao/__init__.py b/ATRI/plugins/saucenao/__init__.py
index fed1096..092db50 100644
--- a/ATRI/plugins/saucenao/__init__.py
+++ b/ATRI/plugins/saucenao/__init__.py
@@ -1,9 +1,9 @@
 from re import findall
 from random import choice
 
-from nonebot.typing import T_State
-from nonebot.adapters.cqhttp import Bot, MessageEvent
-from nonebot.adapters.cqhttp.message import Message, MessageSegment
+from nonebot.matcher import Matcher
+from nonebot.params import ArgPlainText, CommandArg
+from nonebot.adapters.onebot.v11 import MessageEvent, Message, MessageSegment
 
 from ATRI.config import SauceNAO
 from ATRI.utils.limit import FreqLimiter
@@ -17,33 +17,22 @@ _search_flmt_notice = choice(["慢...慢一..点❤", "冷静1下", "歇会歇
 saucenao = SaouceNao().on_command("以图搜图", "透过一张图搜索可能的来源")
 
 
-@saucenao.args_parser  # type: ignore
-async def _get_img(bot: Bot, event: MessageEvent, state: T_State):
-    msg = str(event.message).strip()
-    quit_list = ["算了", "罢了", "不搜了"]
-    if msg in quit_list:
-        await saucenao.finish("好吧...")
-    if not msg:
-        await saucenao.reject("图呢?")
-    else:
-        state["img"] = msg
-
-
 @saucenao.handle()
-async def _ready_search(bot: Bot, event: MessageEvent, state: T_State):
+async def _ready_search(
+    matcher: Matcher, event: MessageEvent, args: Message = CommandArg()
+):
     user_id = event.get_user_id()
     if not _search_flmt.check(user_id):
         await saucenao.finish(_search_flmt_notice)
 
-    msg = str(event.message).strip()
+    msg = args.extract_plain_text()
     if msg:
-        state["img"] = msg
+        matcher.set_arg("saucenao_img", args)
 
 
-@saucenao.got("img", "图呢?")
-async def _deal_search(bot: Bot, event: MessageEvent, state: T_State):
+@saucenao.got("saucenao_img", "图呢?")
+async def _deal_search(event: MessageEvent, msg: str = ArgPlainText("saucenao_img")):
     user_id = event.get_user_id()
-    msg = state["img"]
     img = findall(r"url=(.*?)]", msg)
     if not img:
         await saucenao.reject("请发送图片而不是其他东西!!")
-- 
cgit v1.2.3