This commit is contained in:
idranme 2024-10-08 20:07:12 +08:00
parent 8e9523602b
commit c82b849ead
2 changed files with 20 additions and 12 deletions

View File

@ -124,10 +124,15 @@ class Core extends Service {
activatedPeerUids.push(contact.id) activatedPeerUids.push(contact.id)
const peer = { peerUid: contact.id, chatType: contact.chatType } const peer = { peerUid: contact.id, chatType: contact.chatType }
if (contact.chatType === ChatType.TempC2CFromGroup) { if (contact.chatType === ChatType.TempC2CFromGroup) {
this.ctx.ntMsgApi.activateChatAndGetHistory(peer, 1).then(res => { this.ctx.ntMsgApi.activateChatAndGetHistory(peer, 2).then(res => {
const lastTempMsg = res.msgList[0] for (const msg of res.msgList) {
if (Date.now() / 1000 - Number(lastTempMsg?.msgTime) < 5) { if (Date.now() / 1000 - Number(msg.msgTime) > 3) {
this.ctx.parallel('nt/message-created', lastTempMsg!) continue
}
if (msg.senderUin && msg.senderUin !== '0') {
this.ctx.store.addMsgCache(msg)
}
this.ctx.parallel('nt/message-created', msg)
} }
}) })
} else { } else {

View File

@ -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) { async function decodeElement(ctx: Context, data: NT.RawMessage, quoted = false) {
const buffer: h[] = [] const buffer: h[] = []
for (const v of data.elements) { for (const v of data.elements) {
@ -169,12 +162,22 @@ export async function decodeMessage(
message.user.nick = info.remark || info.nick message.user.nick = info.remark || info.nick
} }
if (guildId) { 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 = { message.guild = {
id: guildId, id: guildId,
name: data.peerName, name: data.peerName,
avatar: `https://p.qlogo.cn/gh/${guildId}/${guildId}/640` avatar: `https://p.qlogo.cn/gh/${guildId}/${guildId}/640`
} }
message.member = decodeMessageMember(message.user, data) message.member = {
user: message.user,
nick
}
} }
return message return message