From 53d6e3a8d5d8b141b2c806a09ba59ae50957f6f5 Mon Sep 17 00:00:00 2001 From: canove Date: Wed, 23 Apr 2025 10:17:30 -0300 Subject: [PATCH] fix: send message to LID addressing_mode groups --- src/Socket/groups.ts | 1 + src/Socket/messages-send.ts | 9 ++++++++- src/Types/GroupMetadata.ts | 2 ++ 3 files changed, 11 insertions(+), 1 deletion(-) diff --git a/src/Socket/groups.ts b/src/Socket/groups.ts index e9a7cde..f112fc6 100644 --- a/src/Socket/groups.ts +++ b/src/Socket/groups.ts @@ -339,6 +339,7 @@ export const extractGroupMetadata = (result: BinaryNode) => { const memberAddMode = getBinaryNodeChildString(group, 'member_add_mode') === 'all_member_add' const metadata: GroupMetadata = { id: groupId, + addressingMode: group.attrs.addressing_mode, subject: group.attrs.subject, subjectOwner: group.attrs.s_o, subjectTime: +group.attrs.s_t, diff --git a/src/Socket/messages-send.ts b/src/Socket/messages-send.ts index 50805be..c165eb0 100644 --- a/src/Socket/messages-send.ts +++ b/src/Socket/messages-send.ts @@ -406,6 +406,13 @@ export const makeMessagesSocket = (config: SocketConfig) => { participantsList.push(...statusJidList) } + if(!isStatus) { + additionalAttributes = { + ...additionalAttributes, + addressing_mode: groupData?.addressingMode || 'pn' + } + } + const additionalDevices = await getUSyncDevices(participantsList, !!useUserDevicesCache, false) devices.push(...additionalDevices) } @@ -429,7 +436,7 @@ export const makeMessagesSocket = (config: SocketConfig) => { const senderKeyJids: string[] = [] // ensure a connection is established with every device for(const { user, device } of devices) { - const jid = jidEncode(user, isLid ? 'lid' : 's.whatsapp.net', device) + const jid = jidEncode(user, groupData?.addressingMode ? 'lid' : 's.whatsapp.net', device) if(!senderKeyMap[jid] || !!participant) { senderKeyJids.push(jid) // store that this person has had the sender keys sent to them diff --git a/src/Types/GroupMetadata.ts b/src/Types/GroupMetadata.ts index db8a87b..5a1ae86 100644 --- a/src/Types/GroupMetadata.ts +++ b/src/Types/GroupMetadata.ts @@ -10,6 +10,8 @@ export type RequestJoinMethod = 'invite_link' | 'linked_group_join' | 'non_admin export interface GroupMetadata { id: string + /** group uses 'lid' or 'pn' to send messages */ + addressingMode: string owner: string | undefined subject: string /** group subject owner */