Bug: 当被回复消息不存在时,`event.message` 无法正确解析
MistEO opened this issue · 2 comments
MistEO commented
描述问题:
RT, 在刚启动 nb 及后端时,经常会出现前面的被回复消息不存在的情况。这时候会报错 ActionFailed 消息不存在
,但是 message 本身也出现了不解析的问题(还是 CQ 文本)
如何复现?
- 在群里发一些消息
- 启动 nb 及后端(我用的是 go-cqhttp)
- 回复启动前的一条消息
- See error
期望的结果
异常情况,这里给的还是 CQ 的文本,没有被解析成 dict (或者说是 Message 类型)
正常情况(一条能正常被回复的消息),成功被解析成了 Message
期望即使获取不到 reply 的其他信息,也保证 Message 类型能正常解析出来
环境信息:
- OS: Ubuntu 22.04
- Python Version: 3.8
- Nonebot Version:
$ nb --version
nb: nonebot cli version 1.0.3
协议端信息:
- 协议端: go-cqhttp
- 协议端版本: 1.0.0-rc.4
截图或日志
部分复现代码
No more.
yanyongyu commented
即便获取不到reply信息,event.message的类型也会是Message,pydantic是强类型检查。你看到的cq码只是Message转成了str
yanyongyu commented
另外如果获取不到reply的其他信息,去掉了reply这个segment,那event.reply也会是空的,就等于直接丢了