summaryrefslogtreecommitdiff
path: root/ATRI/plugins/util/__init__.py
diff options
context:
space:
mode:
Diffstat (limited to 'ATRI/plugins/util/__init__.py')
-rw-r--r--ATRI/plugins/util/__init__.py97
1 files changed, 24 insertions, 73 deletions
diff --git a/ATRI/plugins/util/__init__.py b/ATRI/plugins/util/__init__.py
index 541ca1b..b67a988 100644
--- a/ATRI/plugins/util/__init__.py
+++ b/ATRI/plugins/util/__init__.py
@@ -1,8 +1,9 @@
import re
from random import choice, random
-from nonebot.typing import T_State
-from nonebot.adapters.cqhttp import Bot, MessageEvent
+from nonebot.matcher import Matcher
+from nonebot.params import CommandArg, ArgPlainText
+from nonebot.adapters.onebot.v11 import MessageEvent, Message
from ATRI.utils.limit import FreqLimiter
from .data_source import Encrypt, Utils, Yinglish
@@ -11,62 +12,36 @@ from .data_source import Encrypt, Utils, Yinglish
roll = Utils().on_command("/roll", "骰子~用法:1d10 或 2d10+2d10+more")
[email protected]_parser # type: ignore
-async def _get_roll(bot: Bot, event: MessageEvent, state: T_State):
- msg = str(event.message).strip()
- quit_list = ["算了", "罢了"]
- if msg in quit_list:
- await roll.finish("好吧...")
- if not msg:
- await roll.reject("参数呢?!格式:1d10 或 2d10+2d10+more")
- else:
- state["roll"] = msg
-
-
@roll.handle()
-async def _ready_roll(bot: Bot, event: MessageEvent, state: T_State):
- msg = str(event.message).strip()
+async def _ready_roll(matcher: Matcher, args: Message = CommandArg()):
+ msg = args.extract_plain_text()
if msg:
- state["roll"] = msg
+ matcher.set_arg("roll", args)
@roll.got("roll", "参数呢?!格式:1d10 或 2d10+2d10+more")
-async def _deal_roll(bot: Bot, event: MessageEvent, state: T_State):
- text = state["roll"]
- match = re.match(r"^([\dd+\s]+?)$", text)
+async def _deal_roll(roll_msg: str = ArgPlainText("roll")):
+ match = re.match(r"^([\dd+\s]+?)$", roll_msg)
if not match:
await roll.finish("阿——!参数不对!格式:1d10 或 2d10+2d10+more")
- msg = Utils().roll_dice(text)
+ msg = Utils().roll_dice(roll_msg)
await roll.finish(msg)
-encrypt_en = Utils().on_command("加密", "我们之前的秘密❤")
-
-
-@encrypt_en.args_parser # type: ignore
-async def _get_encr_en_text(bot: Bot, event: MessageEvent, state: T_State):
- msg = str(event.message).strip()
- quit_list = ["算了", "罢了"]
- if msg in quit_list:
- await roll.finish("好吧...")
- if not msg:
- await roll.reject("内容呢?!")
- else:
- state["encr_en_text"] = msg
+encrypt_en = Utils().on_command("加密", "我们之间的秘密❤")
@encrypt_en.handle()
-async def _ready_en(bot: Bot, event: MessageEvent, state: T_State):
- msg = str(event.message).strip()
+async def _ready_en(matcher: Matcher, args: Message = CommandArg()):
+ msg = args.extract_plain_text()
if msg:
- state["encr_en_text"] = msg
+ matcher.set_arg("encr_en_text", args)
@encrypt_en.got("encr_en_text", "内容呢?!")
-async def _deal_en(bot: Bot, event: MessageEvent, state: T_State):
- text = state["encr_en_text"]
+async def _deal_en(text: str = ArgPlainText("encr_en_text")):
is_ok = len(text)
if is_ok < 10:
await encrypt_en.reject("太短不加密!")
@@ -78,28 +53,15 @@ async def _deal_en(bot: Bot, event: MessageEvent, state: T_State):
encrypt_de = Utils().on_command("解密", "解开我们的秘密❤")
-@encrypt_de.args_parser # type: ignore
-async def _get_encr_de_text(bot: Bot, event: MessageEvent, state: T_State):
- msg = str(event.message).strip()
- quit_list = ["算了", "罢了"]
- if msg in quit_list:
- await encrypt_de.finish("好吧...")
- if not msg:
- await encrypt_de.reject("内容呢?!")
- else:
- state["encr_de_text"] = msg
-
-
@encrypt_de.handle()
-async def _ready_de(bot: Bot, event: MessageEvent, state: T_State):
- msg = str(event.message).strip()
+async def _ready_de(matcher: Matcher, args: Message = CommandArg()):
+ msg = args.extract_plain_text()
if msg:
- state["encr_de_text"] = msg
+ matcher.set_arg("encr_de_text", args)
@encrypt_de.got("encr_de_text", "内容呢?!")
-async def _deal_de(bot: Bot, event: MessageEvent, state: T_State):
- text = state["encr_de_text"]
+async def _deal_de(text: str = ArgPlainText("encr_de_text")):
en = Encrypt()
result = en.decode(text)
await encrypt_de.finish(result)
@@ -111,33 +73,22 @@ _sepi_flmt = FreqLimiter(3)
_sepi_flmt_notice = ["涩批爬", "✌🥵✌"]
[email protected]_parser # type: ignore
-async def _get_sepi(bot: Bot, event: MessageEvent, state: T_State):
- msg = str(event.message).strip()
- quit_list = ["算了", "罢了", "取消"]
- if msg in quit_list:
- await sepi.finish("好吧...")
- if not msg:
- await sepi.reject("内容呢?!")
- else:
- state["sepi_text"] = msg
-
-
@sepi.handle()
-async def _ready_sepi(bot: Bot, event: MessageEvent, state: T_State):
+async def _ready_sepi(
+ matcher: Matcher, event: MessageEvent, args: Message = CommandArg()
+):
user_id = event.get_user_id()
if not _sepi_flmt.check(user_id):
await sepi.finish(choice(_sepi_flmt_notice))
- msg = str(event.message).strip()
+ msg = args.extract_plain_text()
if msg:
- state["sepi_text"] = msg
+ matcher.set_arg("sepi_text", args)
@sepi.got("sepi_text", "内容呢?!")
-async def _deal_sepi(bot: Bot, event: MessageEvent, state: T_State):
+async def _deal_sepi(event: MessageEvent, msg: str = ArgPlainText("sepi_text")):
user_id = event.get_user_id()
- msg = state["sepi_text"]
if len(msg) < 4:
await sepi.finish("这么短?涩不起来!")