fix: improve message deduplication and edited message handling in Baileys service

- Refactor edited message detection logic
- Prevent duplicate message processing for edited messages
- Optimize message key caching mechanism
This commit is contained in:
Davidson Gomes 2025-02-03 17:19:07 -03:00
parent 867e8493aa
commit e51b6e9270
2 changed files with 6 additions and 3 deletions

2
.gitignore vendored
View File

@ -2,6 +2,8 @@
/dist /dist
/node_modules /node_modules
.cursor*
/Docker/.env /Docker/.env
.vscode .vscode

View File

@ -1128,9 +1128,10 @@ export class BaileysStartupService extends ChannelStartupService {
} }
} }
const editedMessage =
received?.message?.protocolMessage || received?.message?.editedMessage?.message?.protocolMessage;
if (received.message?.protocolMessage?.editedMessage || received.message?.editedMessage?.message) { if (received.message?.protocolMessage?.editedMessage || received.message?.editedMessage?.message) {
const editedMessage =
received.message?.protocolMessage || received.message?.editedMessage?.message?.protocolMessage;
if (editedMessage) { if (editedMessage) {
if (this.configService.get<Chatwoot>('CHATWOOT').ENABLED && this.localChatwoot?.enabled) if (this.configService.get<Chatwoot>('CHATWOOT').ENABLED && this.localChatwoot?.enabled)
this.chatwootService.eventWhatsapp( this.chatwootService.eventWhatsapp(
@ -1165,7 +1166,7 @@ export class BaileysStartupService extends ChannelStartupService {
const messageKey = `${this.instance.id}_${received.key.id}`; const messageKey = `${this.instance.id}_${received.key.id}`;
const cached = await this.baileysCache.get(messageKey); const cached = await this.baileysCache.get(messageKey);
if (cached) { if (cached && !editedMessage) {
this.logger.info(`Message duplicated ignored: ${received.key.id}`); this.logger.info(`Message duplicated ignored: ${received.key.id}`);
continue; continue;
} }