Skip to content

Commit 2e3c818

Browse files
committed
fix(baileys): normalize remote JIDs for consistent database lookups
1 parent 6f2bef6 commit 2e3c818

File tree

1 file changed

+21
-22
lines changed

1 file changed

+21
-22
lines changed

src/api/integrations/channel/whatsapp/whatsapp.baileys.service.ts

Lines changed: 21 additions & 22 deletions
Original file line numberDiff line numberDiff line change
@@ -1561,7 +1561,12 @@ export class BaileysStartupService extends ChannelStartupService {
15611561
const readChatToUpdate: Record<string, true> = {}; // {remoteJid: true}
15621562

15631563
for await (const { key, update } of args) {
1564-
if (settings?.groupsIgnore && key.remoteJid?.includes('@g.us')) {
1564+
// Normalize JIDs immediately to ensure consistent DB lookups
1565+
const keyAny = key as any;
1566+
if (keyAny.remoteJid) keyAny.remoteJid = keyAny.remoteJid.replace(/:.*$/, '');
1567+
if (keyAny.participant) keyAny.participant = keyAny.participant.replace(/:.*$/, '');
1568+
1569+
if (settings?.groupsIgnore && keyAny.remoteJid?.includes('@g.us')) {
15651570
continue;
15661571
}
15671572

@@ -1612,9 +1617,9 @@ export class BaileysStartupService extends ChannelStartupService {
16121617

16131618
const message: any = {
16141619
keyId: key.id,
1615-
remoteJid: key?.remoteJid,
1620+
remoteJid: keyAny?.remoteJid?.replace(/:.*$/, ''),
16161621
fromMe: key.fromMe,
1617-
participant: key?.participant,
1622+
participant: keyAny?.participant?.replace(/:.*$/, ''),
16181623
status: status[update.status] ?? 'SERVER_ACK',
16191624
pollUpdates,
16201625
instanceId: this.instanceId,
@@ -4662,26 +4667,20 @@ export class BaileysStartupService extends ChannelStartupService {
46624667
return obj;
46634668
}
46644669

4665-
private prepareMessage(message: proto.IWebMessageInfo): any {
4666-
const contentType = getContentType(message.message);
4667-
const contentMsg = message?.message[contentType] as any;
4668-
4669-
const messageRaw = {
4670-
key: message.key, // Save key exactly as it comes from Baileys
4671-
pushName:
4672-
message.pushName ||
4673-
(message.key.fromMe
4674-
? 'Você'
4675-
: message?.participant || (message.key?.participant ? message.key.participant.split('@')[0] : null)),
4676-
status: status[message.status],
4677-
message: this.deserializeMessageBuffers({ ...message.message }),
4678-
contextInfo: this.deserializeMessageBuffers(contentMsg?.contextInfo),
4679-
messageType: contentType || 'unknown',
4680-
messageTimestamp: Long.isLong(message.messageTimestamp)
4681-
? message.messageTimestamp.toNumber()
4682-
: (message.messageTimestamp as number),
4670+
private prepareMessage(message: WAMessage): Message {
4671+
const keyAny = message.key as any;
4672+
const messageRaw: any = {
4673+
key: {
4674+
...message.key,
4675+
remoteJid: keyAny.remoteJid?.replace(/:.*$/, ''),
4676+
participant: keyAny.participant?.replace(/:.*$/, ''),
4677+
},
4678+
pushName: message.pushName,
4679+
message: message.message,
4680+
messageType: getContentType(message.message),
4681+
messageTimestamp: message.messageTimestamp,
4682+
source: getDevice(keyAny.id),
46834683
instanceId: this.instanceId,
4684-
source: getDevice(message.key.id),
46854684
};
46864685

46874686
if (!messageRaw.status && message.key.fromMe === false) {

0 commit comments

Comments
 (0)