diff options
Diffstat (limited to 'ATRI/plugins/saucenao')
| -rw-r--r-- | ATRI/plugins/saucenao/__init__.py | 31 | 
1 files changed, 10 insertions, 21 deletions
| 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("请发送图片而不是其他东西!!") | 
