From c82b849eadf81bad3afc36dd53388e0500738fe3 Mon Sep 17 00:00:00 2001 From: idranme <96647698+idranme@users.noreply.github.com> Date: Tue, 8 Oct 2024 20:07:12 +0800 Subject: [PATCH] fix --- src/ntqqapi/core.ts | 13 +++++++++---- src/satori/utils.ts | 19 +++++++++++-------- 2 files changed, 20 insertions(+), 12 deletions(-) diff --git a/src/ntqqapi/core.ts b/src/ntqqapi/core.ts index 7f0e0be..2e78049 100644 --- a/src/ntqqapi/core.ts +++ b/src/ntqqapi/core.ts @@ -124,10 +124,15 @@ class Core extends Service { activatedPeerUids.push(contact.id) const peer = { peerUid: contact.id, chatType: contact.chatType } if (contact.chatType === ChatType.TempC2CFromGroup) { - this.ctx.ntMsgApi.activateChatAndGetHistory(peer, 1).then(res => { - const lastTempMsg = res.msgList[0] - if (Date.now() / 1000 - Number(lastTempMsg?.msgTime) < 5) { - this.ctx.parallel('nt/message-created', lastTempMsg!) + this.ctx.ntMsgApi.activateChatAndGetHistory(peer, 2).then(res => { + for (const msg of res.msgList) { + if (Date.now() / 1000 - Number(msg.msgTime) > 3) { + continue + } + if (msg.senderUin && msg.senderUin !== '0') { + this.ctx.store.addMsgCache(msg) + } + this.ctx.parallel('nt/message-created', msg) } }) } else { diff --git a/src/satori/utils.ts b/src/satori/utils.ts index 484a8c3..a64cee4 100644 --- a/src/satori/utils.ts +++ b/src/satori/utils.ts @@ -33,13 +33,6 @@ function decodeMessageUser(data: NT.RawMessage) { } } -function decodeMessageMember(user: Universal.User, data: NT.RawMessage) { - return { - user: user, - nick: data.sendMemberName || data.sendNickName - } -} - async function decodeElement(ctx: Context, data: NT.RawMessage, quoted = false) { const buffer: h[] = [] for (const v of data.elements) { @@ -169,12 +162,22 @@ export async function decodeMessage( message.user.nick = info.remark || info.nick } if (guildId) { + let nick = data.sendMemberName || data.sendNickName + if (!data.sendNickName) { + const info = await ctx.ntGroupApi.getGroupMember(guildId, data.senderUid) + message.user.name = info.nick + message.user.nick = info.remark || info.nick + nick = info.cardName || info.nick + } message.guild = { id: guildId, name: data.peerName, avatar: `https://p.qlogo.cn/gh/${guildId}/${guildId}/640` } - message.member = decodeMessageMember(message.user, data) + message.member = { + user: message.user, + nick + } } return message