mirror of
https://github.com/LLOneBot/LLOneBot.git
synced 2024-11-22 01:56:33 +00:00
fix: reply message segment
This commit is contained in:
parent
02e5222f92
commit
fffa664400
src
@ -290,4 +290,22 @@ export class NTQQMsgApi extends Service {
|
||||
}
|
||||
}, null])
|
||||
}
|
||||
|
||||
async queryMsgsWithFilterExBySeq(peer: Peer, msgSeq: string, filterMsgTime: string, filterSendersUid: string[]) {
|
||||
return await invoke('nodeIKernelMsgService/queryMsgsWithFilterEx', [{
|
||||
msgId: '0',
|
||||
msgTime: '0',
|
||||
msgSeq,
|
||||
params: {
|
||||
chatInfo: peer,
|
||||
filterMsgType: [],
|
||||
filterSendersUid,
|
||||
filterMsgToTime: filterMsgTime,
|
||||
filterMsgFromTime: filterMsgTime,
|
||||
isReverseOrder: true,
|
||||
isIncludeCurrent: true,
|
||||
pageLimit: 1,
|
||||
}
|
||||
}, null])
|
||||
}
|
||||
}
|
||||
|
@ -480,6 +480,8 @@ export interface RawMessage {
|
||||
sourceMsgIsIncPic: boolean // 原消息是否有图片
|
||||
sourceMsgText: string
|
||||
replayMsgSeq: string // 源消息的msgSeq,可以通过这个找到源消息的msgId
|
||||
senderUidStr: string
|
||||
replyMsgTime: string
|
||||
}
|
||||
textElement: {
|
||||
atType: AtType
|
||||
|
@ -155,13 +155,14 @@ export namespace OB11Entities {
|
||||
}
|
||||
try {
|
||||
const records = msg.records.find(msgRecord => msgRecord.msgId === replyElement.sourceMsgIdInRecords)
|
||||
if (!records) throw new Error('找不到回复消息')
|
||||
let replyMsg = (await ctx.ntMsgApi.getMsgsBySeqAndCount(peer, replyElement.replayMsgSeq, 1, true, true)).msgList[0]
|
||||
if (!replyMsg || records.msgRandom !== replyMsg.msgRandom) {
|
||||
replyMsg = (await ctx.ntMsgApi.getSingleMsg(peer, replyElement.replayMsgSeq)).msgList[0]
|
||||
if (!records || !replyElement.replyMsgTime || !replyElement.senderUidStr) {
|
||||
throw new Error('找不到回复消息')
|
||||
}
|
||||
const replyMsg = (await ctx.ntMsgApi.queryMsgsWithFilterExBySeq(peer, replyElement.replayMsgSeq, replyElement.replyMsgTime, [replyElement.senderUidStr]))
|
||||
.msgList.find(msg => msg.msgRandom === records.msgRandom)
|
||||
|
||||
// 284840486: 合并消息内侧 消息具体定位不到
|
||||
if ((!replyMsg || records.msgRandom !== replyMsg.msgRandom) && msg.peerUin !== '284840486') {
|
||||
if (!replyMsg && msg.peerUin !== '284840486') {
|
||||
throw new Error('回复消息消息验证失败')
|
||||
}
|
||||
messageSegment = {
|
||||
|
Loading…
x
Reference in New Issue
Block a user