Open RikaCelery opened 3 months ago
OneBot
b0b53a4e
MacOS
arm64
None
又双叒来自于群友的抽象转发消息
Lagrange不会递归接受嵌套的转发消息 为了递归接收所有转发消息,我进行了以下修改 1. 修改 ResolveIncomingChain()参数Lagrange.Core/Internal/Context/Logic/Implementation/MessagingLogic.cs 使用转发消息内的uid和IsGroup好像会无法正确下载视频
Lagrange.Core/Internal/Context/Logic/Implementation/MessagingLogic.cs
private async Task ResolveIncomingChain(MessageChain chain,bool forwarding=false,string _uid="", bool isGroup=false)
2. 在 MultiMsgEntity 分支中递归调用ResolveIncomingChain()
MultiMsgEntity
ResolveIncomingChain()
case MultiMsgEntity { ResId: not null } multi: { var @event = MultiMsgDownloadEvent.Create(chain.Uid ?? "", multi.ResId); var results = await Collection.Business.SendEvent(@event); if (results.Count != 0) { var result = (MultiMsgDownloadEvent)results[0]; multi.Chains.AddRange((IEnumerable<MessageChain>?)result.Chains ?? Array.Empty<MessageChain>()); string uid = (chain.IsGroup ? await Collection.Business.CachingLogic.ResolveUid(chain.GroupUin, chain.FriendUin) : chain.Uid) ?? ""; foreach (var messageChain in (IEnumerable<MessageChain>?)result.Chains ?? Array.Empty<MessageChain>()) { await ResolveIncomingChain(messageChain,true,uid,chain.IsGroup); } } break; }
正确获取到未失效的rkey
获取到了各种奇奇怪怪的rkey, 似乎是转发消息原始发送者的rkey, 和自己发送消息得到的rkey不一样
No response
🤔是不是我不该这么改, 我现在是保存未失效的rkey然后在下载失败的时候替换一下
这个的话我觉得不应该由拉格兰来处理.png 但是其实已经在建立关于RKey的缓存了 NTQQ也是开了一个池来村Rkey
请确保您已阅读以上注意事项,并勾选下方的确认框。
Lagrange项目
OneBot
所使用/依赖的Lagrange项目对应的commit
b0b53a4e
运行环境
MacOS
运行架构
arm64
连接方式
None
重现步骤
又双叒来自于群友的抽象转发消息
Lagrange不会递归接受嵌套的转发消息 为了递归接收所有转发消息,我进行了以下修改 1. 修改 ResolveIncomingChain()参数
Lagrange.Core/Internal/Context/Logic/Implementation/MessagingLogic.cs
使用转发消息内的uid和IsGroup好像会无法正确下载视频2. 在
MultiMsgEntity
分支中递归调用ResolveIncomingChain()
期望的结果是什么?
正确获取到未失效的rkey
实际的结果是什么?
获取到了各种奇奇怪怪的rkey, 似乎是转发消息原始发送者的rkey, 和自己发送消息得到的rkey不一样
简单的复现代码/链接(可选)
No response
Trace 级别日志记录(可选)
No response
补充说明(可选)
No response