Skip to content

Commit 9723028

Browse files
authored
__init__.py
1 parent d25a9a6 commit 9723028

File tree

1 file changed

+47
-7
lines changed

1 file changed

+47
-7
lines changed

nonebot_plugin_random_stereotypes/__init__.py

Lines changed: 47 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
import random
22
from nonebot.params import Depends
3-
from nonebot.adapters.onebot.v11 import Message, MessageEvent
3+
from nonebot.adapters.onebot.v11 import Bot,Message, MessageEvent , MessageSegment, Message, GroupMessageEvent
44
from nonebot.matcher import Matcher
55
from nonebot.params import CommandArg, Arg
66
from nonebot.plugin import PluginMetadata
@@ -19,16 +19,56 @@
1919

2020

2121
@catch_str.handle(parameterless=[Depends(check_CD)])
22-
async def _(matcher: Matcher, arg: Message = CommandArg()):
23-
if arg.extract_plain_text().strip():
24-
matcher.set_arg("target", arg)
25-
22+
async def _(matcher: Matcher,bot: Bot, event: GroupMessageEvent, arg: Message = CommandArg()):
23+
msg = event.get_message()
24+
if "at" in msg:
25+
gid = event.group_id # 获取群号
26+
uid = event.user_id
27+
qid = await get_at(event)
28+
target_str = ""
29+
print(qid)
30+
if not qid:
31+
if arg.extract_plain_text().strip():
32+
matcher.set_arg("target", arg)
33+
else:
34+
await bot.call_api('get_group_member_list', group_id=gid)
35+
member_info = await bot.get_group_member_info(group_id=gid, user_id=qid)
36+
card_name = member_info['card'] if member_info['card'] else member_info['nickname']
37+
target_str = card_name
38+
print(qid)
39+
await bot.call_api('get_group_member_list', group_id=gid)
40+
member_info = await bot.get_group_member_info(group_id=gid, user_id=uid)
41+
card_name = member_info['card'] if member_info['card'] else member_info['nickname']
42+
msg1 = f"{card_name}说:\n-----------\n"
43+
msg = msg1 + random.choice(DATA).format(target_name=target_str)
44+
await matcher.finish(message=msg, reply_message=True)
45+
else:
46+
if arg.extract_plain_text().strip():
47+
matcher.set_arg("target", arg)
2648

2749
@catch_str.got("target", "你要对哪个人发病呢?")
28-
async def _(matcher: Matcher, target: Message = Arg("target")):
50+
async def _(matcher: Matcher,bot: Bot, event: GroupMessageEvent, target: Message = Arg("target")):
2951
target_str = target.extract_plain_text().strip()
52+
gid = event.group_id # 获取群号
53+
uid = event.user_id
54+
qid = await get_at(event)
55+
print(qid)
3056
if not target_str:
31-
await matcher.reject("你发的消息中没有文本,请重新输入!")
57+
await bot.call_api('get_group_member_list', group_id=gid)
58+
member_info = await bot.get_group_member_info(group_id=gid, user_id=qid)
59+
card_name = member_info['card'] if member_info['card'] else member_info['nickname']
60+
target_str = card_name
61+
print(target_str)
62+
if not card_name:
63+
await matcher.reject("你发的消息中没有文本,请重新输入!")
3264

3365
msg = random.choice(DATA).format(target_name=target_str)
3466
await matcher.finish(message=msg, reply_message=True)
67+
68+
async def get_at(event: GroupMessageEvent) -> int:
69+
"""获取被艾特用户 ID"""
70+
msg = event.get_message()
71+
for msg_seg in msg:
72+
if msg_seg.type == "at":
73+
return -1 if msg_seg.data["qq"] == "all" else int(msg_seg.data["qq"])
74+
return -1

0 commit comments

Comments
 (0)