Skip to content
On this page

接收消息

在上一节 注册消息响应 中讲述了如何注册一个接收指定消息的函数,当接收到消息时,函数被执行时,参数 data: Message 就是接收到的消息的内容。

Message 对象是接收到消息之后预处理化的一个消息数据对象。内含这则消息相关的各项属性,以及针对这则消息的一些操作API。
该对象主要应用在功能函数和自定义检查中。建议在开发时引入 Message 对象并注解在对应地方。

python
from amiyabot import Message


async def my_verify(data: Message):
    ...


@bot.on_message(verify=my_verify)
async def _(data: Message):
    print('recv:', data.text)
    ...

Message 对象

重要变动

1.9.8 起,如果配置了前缀触发词,Message 对象内的消息文本系列字段将不再包含触发对话的前缀(Commit 99ada6b), 前缀在对话文本中被移除后将赋值到 text_prefix 属性内。

属性

属性类型释义
instanceBotAdapterProtocolbot 实例
messagedict原始消息字典
message_idstr消息 ID
message_typestr消息类型(适用于群聊适配器)
faceList[str]消息内表情 ID 列表
imageList[str]消息内图片 URL 列表
textstr消息文本(不包含触发词、中间件处理)
text_digitsstr消息文本(不包含触发词、中间件处理、中文转数字处理)
text_unsignedstr消息文本(不包含触发词、去字符处理)
text_originalstr消息文本(原始文本)
text_wordsList[str]消息文本分词
text_prefixstr消息触发词
at_targetList[str]消息内 @ 的对象列表
is_atbool是否 @ 机器人
is_adminbool是否为子频道管理员
is_directbool是否是私信消息
user_idstr用户 ID
guild_idstr频道 ID
src_guild_idstr来源频道 ID,私信下有效
channel_idstr子频道 ID
nicknamestr用户昵称
avatarstr用户头像的 URL
joined_atISO8601 timestamp用户加入频道的时间
verifyVerify 对象自定义检查的结果
timeint消息时间

方法

方法名参数释义异步
sendreply发送一条消息
waitreply,force,max_time,data_filter等待用户消息
wait_channelreply,force,clean,max_time,data_filter等待子频道消息
recall撤回消息

接下来,使用 Message 对象提供的属性完成业务逻辑,并发送消息