mirror of
https://github.com/LiteyukiStudio/nonebot-plugin-marshoai.git
synced 2025-02-01 12:21:31 +08:00
75 lines
2.3 KiB
Python
75 lines
2.3 KiB
Python
from nonebot.adapters.onebot.v11 import (
|
||
Bot,
|
||
GroupMessageEvent,
|
||
MessageEvent,
|
||
PrivateMessageEvent,
|
||
)
|
||
from nonebot.exception import FinishedException
|
||
from nonebot.permission import SUPERUSER
|
||
|
||
from nonebot_plugin_marshoai.plugin import String, on_function_call
|
||
|
||
|
||
@on_function_call(description="获取当前会话信息,比如群聊或用户的身份信息").permission(
|
||
SUPERUSER
|
||
)
|
||
async def get_session_info(bot: Bot, event: MessageEvent) -> str:
|
||
"""获取当前会话信息,比如群聊或用户的身份信息
|
||
|
||
Args:
|
||
bot (Bot): Bot对象
|
||
|
||
Returns:
|
||
str: 会话信息
|
||
"""
|
||
if isinstance(event, PrivateMessageEvent):
|
||
return f"当前会话为私聊,用户ID: {event.user_id}"
|
||
elif isinstance(event, GroupMessageEvent):
|
||
return f"当前会话为群聊,群组ID: {event.group_id}, 用户ID: {event.user_id}"
|
||
else:
|
||
return "未知会话类型"
|
||
|
||
|
||
@on_function_call(description="发送消息到指定用户").params(
|
||
user=String(description="用户ID"), message=String(description="消息内容")
|
||
).permission(SUPERUSER)
|
||
async def send_message(user: str, message: str, bot: Bot) -> str:
|
||
"""发送消息到指定用户,实验性功能,仅限onebotv11适配器
|
||
|
||
Args:
|
||
user (str): 用户ID
|
||
message (str): 消息内容
|
||
|
||
Returns:
|
||
str: 发送结果
|
||
"""
|
||
try:
|
||
await bot.send_private_msg(user_id=int(user), message=message)
|
||
return "发送成功"
|
||
except FinishedException as e:
|
||
return "发送完成"
|
||
except Exception as e:
|
||
return "发送失败: " + str(e)
|
||
|
||
|
||
@on_function_call(description="发送消息到指定群组").params(
|
||
group=String(description="群组ID"), message=String(description="消息内容")
|
||
).permission(SUPERUSER)
|
||
async def send_group_message(group: str, message: str, bot: Bot) -> str:
|
||
"""发送消息到指定群组,实验性功能,仅限onebotv11适配器
|
||
|
||
Args:
|
||
group (str): 群组ID
|
||
message (str): 消息内容
|
||
|
||
Returns:
|
||
str: 发送结果
|
||
"""
|
||
try:
|
||
await bot.send_group_msg(group_id=int(group), message=message)
|
||
return "发送成功"
|
||
except FinishedException as e:
|
||
return "发送完成"
|
||
except Exception as e:
|
||
return "发送失败: " + str(e)
|