Open jks15satoshi opened 2 weeks ago
大概看了一下源码,MessageSegment.attachment
接受一个可选的 bytes
类型参数 content
表示附件内容:
但奇怪的是 Message.from_guild_message
构造附件消息段时却似乎没有传过这个参数:
我想因为 AttachmentSegment
是给发送用的,不能从 url 发送文件,就没有预留传入 url 的地方
我想因为
AttachmentSegment
是给发送用的,不能从 url 发送文件,就没有预留传入 url 的地方
可以理解。不过确实会有通过 AttachmentSegment
获取到 URL 的需求(比如 Alconna 插件的 UniMessage
就是统一通过 event.get_message
获取消息内容,目前的实现就不能从消息段中拿到附件的 URL,实现跨频道或者跨平台消息转发就会有问题),所以我在想是不是应该允许接受一个 URL 参数比较合适,这样做跨平台兼容也会方便一些;至于发送带有 URL 参数的附件消息段时,在 api.utils.parse_data
或在任意构造创建消息事件前,请求 URL 获取附件的二进制数据(拍脑袋的想法,不见得合适)。
版本信息:
Python 版本:3.11.9 NoneBot 版本:2.3.3 Discord 适配器版本:0.1.8
问题描述:
如以下示例代码:
在 Discord 发送一条图片消息,在调试器中尝试从事件中获取消息,似乎在消息段中不包含图片的 URL 信息:
而直接执行此处理器会抛出异常:
事件信息如下(个人认为敏感的 ID 数据使用
***
替换):