GraiaProject / Application

一个设计精巧, 协议实现完备的, 基于 mirai-api-http 的即时聊天软件自动化框架.
https://graia-document.vercel.app/
GNU Affero General Public License v3.0
438 stars 63 forks source link

Graia转换后的消息链缺失闪照元素 #59

Closed OasisAkari closed 4 years ago

OasisAkari commented 4 years ago

描述你遇到的问题: 如题。

复现步骤: 该 BUG 会在进行以下操作后出现:

  1. 写一个能够接收消息的方法,并打印消息链
  2. 在群内发送一张闪照
  3. 可以发现mirai-console处还能看到闪照元素,但是Graia转换后的消息链中缺失了闪照

发生错误的代码

@bcc.receiver("GroupMessage")
async def group_message_handler(app: GraiaMiraiApplication, message: MessageChain):
    print(message)

控制台日志输出截图: image image

运行环境:

额外信息:

GreyElaina commented 4 years ago

看看 mirai-api-http 的返回, 一般来讲 graia 的消息链序列化非常的忠诚..

OasisAkari commented 4 years ago

看看 mirai-api-http 的返回, 一般来讲 graia 的消息链序列化非常的忠诚..

来自一位群友的截图,应该是有的 image

I-love-study commented 4 years ago

个人认为是因为这里FlashImage类没有继承ExternalElement 顺带一提发现因为instance在对比的时候会考虑到继承关系,所以但在message.get(Image)的时候,也会获得FlashImage 已PR

GreyElaina commented 4 years ago

个人认为是因为这里FlashImage类没有继承ExternalElement 顺带一提发现因为instance在对比的时候会考虑到继承关系,所以但在message.get(Image)的时候,也会获得FlashImage 已PR

请确认已经修复此 BUG, 没有也说一下

I-love-study commented 4 years ago

个人认为是因为这里FlashImage类没有继承ExternalElement 顺带一提发现因为instance在对比的时候会考虑到继承关系,所以但在message.get(Image)的时候,也会获得FlashImage 已PR

请确认已经修复此 BUG, 没有也说一下

确认能接收到FlashImage并且message.get正常