diff options
Diffstat (limited to 'ATRI/plugins/funny.py')
-rw-r--r-- | ATRI/plugins/funny.py | 111 |
1 files changed, 103 insertions, 8 deletions
diff --git a/ATRI/plugins/funny.py b/ATRI/plugins/funny.py index 472c77c..f334bcf 100644 --- a/ATRI/plugins/funny.py +++ b/ATRI/plugins/funny.py @@ -1,9 +1,12 @@ +import asyncio from pathlib import Path from random import choice, randint -from nonebot.adapters.cqhttp import Bot, MessageEvent +from nonebot.adapters.cqhttp import Bot, MessageEvent, GroupMessageEvent +from nonebot.adapters.cqhttp.message import Message from ATRI.service import Service as sv +from ATRI.utils.limit import is_too_exciting from ATRI.rule import ( is_block, is_in_dormant, @@ -11,13 +14,18 @@ from ATRI.rule import ( ) -__plugin_name__ = "laugh" +__doc__ = """ +看不懂的笑话 +权限组:所有人 +用法: + 来句笑话 +""" get_laugh = sv.on_command( - name="看不懂的笑话", cmd="来句笑话", + docs=__doc__, rule=is_block() & is_in_dormant() - & is_in_service(__plugin_name__) + & is_in_service('来句笑话') ) @get_laugh.handle() @@ -34,12 +42,10 @@ async def _get_laugh(bot: Bot, event: MessageEvent) -> None: await get_laugh.finish(result.replace("%name", user_name)) -__plugin_name__ = "wty" - me_to_you = sv.on_message( - rule=is_block() & is_in_dormant() & is_in_service(__plugin_name__) + rule=is_block() & is_in_dormant() & is_in_service('你又行了') ) -sv.manual_reg_service("你又彳亍了") +sv.manual_reg_service('你又行了') @me_to_you.handle() async def _me_to_you(bot: Bot, event: MessageEvent) -> None: @@ -47,3 +53,92 @@ async def _me_to_you(bot: Bot, event: MessageEvent) -> None: msg = str(event.message) if "我" in msg and "CQ" not in msg: await me_to_you.finish(msg.replace("我", "你")) + + +__doc__ = """ +随机选择一位群友成为我的老婆! +权限组:所有人 +用法: + 抽老婆 +""" + +roll_wife = sv.on_command( + cmd="抽老婆", + docs=__doc__, + rule=is_block() & is_in_dormant() & is_in_service('抽老婆') +) + +@roll_wife.handle() +async def _roll_wife(bot: Bot, event: GroupMessageEvent) -> None: + user = event.user_id + group = event.group_id + user_name = await bot.get_group_member_info(group_id=group, + user_id=user) + user_name = user_name['nickname'] + run = await is_too_exciting(user, group, 5, True) + if not run: + return + + luck_list = await bot.get_group_member_list(group_id=group) + luck_user = choice(luck_list) + luck_qq = luck_user['user_id'] + luck_user = luck_user['nickname'] + msg = ( + "5秒后咱将随机抽取一位群友成为\n" + f"{user_name} 的老婆!究竟是谁呢~?" + ) + await bot.send(event, msg) + await asyncio.sleep(5) + msg = ( + f"> {luck_user}({luck_qq})\n" + f"恭喜成为 {user_name} 的老婆~⭐" + ) + await bot.send(event, msg) + + +__doc__ = """ +伪造转发 +权限组:所有人 +用法: + /fm qq-name-msg... +补充: + qq: QQ号 + name: 消息中的ID + msg: 对应信息 +示例: + /fm 123456789*生草人*草 114514*仙贝*臭死了 +""" + +fake_msg = sv.on_command( + cmd="/fm", + docs=__doc__, + rule=is_block() & is_in_service('/fm') & is_in_dormant() +) + +@fake_msg.handle() +async def _fake_msg(bot: Bot, event: GroupMessageEvent) -> None: + msg = str(event.message).split(' ') + user = event.user_id + group = event.group_id + node = [] + check = await is_too_exciting(user, group, 2, True) + + if check: + for i in msg: + args = i.split('*') + print(args) + qq = args[0] + name = args[1].replace('[', '[') + name = name.replace(']', ']') + repo = args[2].replace('[', '[') + repo = repo.replace(']', ']') + dic = { + "type": "node", + "data": { + "name": name, + "uin": qq, + "content": repo + } + } + node.append(dic) + await bot.send_group_forward_msg(group_id=group, messages=node) |