From cacbaa37f2d094c60fbb32c86ebaf8ff18909ac1 Mon Sep 17 00:00:00 2001 From: Adhiraj Singh Date: Sat, 9 Oct 2021 19:29:10 +0530 Subject: [PATCH] exclude my device from message send --- src/Socket/messages-send.ts | 7 ++----- src/Utils/signal.ts | 7 ++++--- 2 files changed, 6 insertions(+), 8 deletions(-) diff --git a/src/Socket/messages-send.ts b/src/Socket/messages-send.ts index 46d7bb3..642407a 100644 --- a/src/Socket/messages-send.ts +++ b/src/Socket/messages-send.ts @@ -124,11 +124,8 @@ export const makeMessagesSocket = (config: SocketConfig) => { ], } const result = await query(iq) - let resultJids = extractDeviceJids(result) - if(ignoreZeroDevices) { - resultJids = resultJids.filter(item => item.device !== 0) - } - return resultJids + const { device } = jidDecode(authState.creds.me!.id) + return extractDeviceJids(result, device, ignoreZeroDevices) } const assertSession = async(jid: string, force: boolean) => { diff --git a/src/Utils/signal.ts b/src/Utils/signal.ts index 3eab1fc..d479491 100644 --- a/src/Utils/signal.ts +++ b/src/Utils/signal.ts @@ -231,7 +231,7 @@ export const parseAndInjectE2ESession = async(node: BinaryNode, auth: Authentica await cipher.initOutgoing(device) } -export const extractDeviceJids = (result: BinaryNode) => { +export const extractDeviceJids = (result: BinaryNode, myDeviceId: number, excludeZeroDevices: boolean) => { const extracted: { user: string, device?: number, agent?: number }[] = [] for(const node of result.content as BinaryNode[]) { const list = getBinaryNodeChild(node, 'list')?.content @@ -242,8 +242,9 @@ export const extractDeviceJids = (result: BinaryNode) => { const deviceListNode = getBinaryNodeChild(devicesNode, 'device-list') if(Array.isArray(deviceListNode?.content)) { for(const { tag, attrs } of deviceListNode!.content) { - if(tag === 'device') { - extracted.push({ user, device: +attrs.id }) + const device = +attrs.id + if(tag === 'device' && myDeviceId !== device && (!excludeZeroDevices || device !== 0)) { + extracted.push({ user, device }) } } }