Add lid to Contact - contact sync, history sync, group participants (#1472)

This commit is contained in:
devlikeapro
2025-06-18 18:08:09 +07:00
committed by GitHub
parent 6b4dce897d
commit b8464d3665
5 changed files with 30 additions and 5 deletions

View File

@@ -15,7 +15,14 @@ import {
WAPatchName
} from '../Types'
import { ChatLabelAssociation, LabelAssociationType, MessageLabelAssociation } from '../Types/LabelAssociation'
import { BinaryNode, getBinaryNodeChild, getBinaryNodeChildren, isJidGroup, jidNormalizedUser } from '../WABinary'
import {
BinaryNode,
getBinaryNodeChild,
getBinaryNodeChildren,
isJidGroup,
isJidUser,
jidNormalizedUser
} from '../WABinary'
import { aesDecrypt, aesEncrypt, hkdf, hmacSign } from './crypto'
import { toNumber } from './generics'
import { ILogger } from './logger'
@@ -791,7 +798,14 @@ export const processSyncAction = (
]
})
} else if (action?.contactAction) {
ev.emit('contacts.upsert', [{ id, name: action.contactAction.fullName! }])
ev.emit('contacts.upsert', [
{
id: id,
name: action.contactAction.fullName!,
lid: action.contactAction.lidJid || undefined,
jid: isJidUser(id) ? id : undefined
}
])
} else if (action?.pushNameSetting) {
const name = action?.pushNameSetting?.name
if (name && me?.name !== name) {

View File

@@ -37,7 +37,12 @@ export const processHistoryMessage = (item: proto.IHistorySync) => {
case proto.HistorySync.HistorySyncType.FULL:
case proto.HistorySync.HistorySyncType.ON_DEMAND:
for (const chat of item.conversations! as Chat[]) {
contacts.push({ id: chat.id, name: chat.name || undefined })
contacts.push({
id: chat.id,
name: chat.name || undefined,
lid: chat.lidJid || undefined,
jid: isJidUser(chat.id) ? chat.id : undefined
})
const msgs = chat.messages || []
delete chat.messages