Bot: carpeta de sesión Baileys configurable + /debug captura todos los eventos
BAILEYS_AUTH_DIR permite arrancar una sesión limpia (QR fresco) sin perder la persistencia (subcarpeta del volumen) — para re-vincular cuando WhatsApp deja muerto el dispositivo tras varios reinicios. Y messages.upsert ahora registra en /debug todos los eventos (incluido type != notify) antes de filtrar. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
This commit is contained in:
@@ -41,7 +41,7 @@ interface LeadContext {
|
|||||||
export class WhatsappService implements OnModuleInit, OnModuleDestroy {
|
export class WhatsappService implements OnModuleInit, OnModuleDestroy {
|
||||||
private readonly logger = new Logger(WhatsappService.name);
|
private readonly logger = new Logger(WhatsappService.name);
|
||||||
private sock: WASocket | null = null;
|
private sock: WASocket | null = null;
|
||||||
private authDir = path.join(process.cwd(), 'auth_info_baileys');
|
private authDir = process.env.BAILEYS_AUTH_DIR || path.join(process.cwd(), 'auth_info_baileys');
|
||||||
private readonly ultimoMsgPorJid = new Map<string, any>();
|
private readonly ultimoMsgPorJid = new Map<string, any>();
|
||||||
private baileysLogger = pino({ level: 'info' });
|
private baileysLogger = pino({ level: 'info' });
|
||||||
|
|
||||||
@@ -223,14 +223,17 @@ export class WhatsappService implements OnModuleInit, OnModuleDestroy {
|
|||||||
});
|
});
|
||||||
|
|
||||||
this.sock.ev.on('messages.upsert', async ({ messages, type }) => {
|
this.sock.ev.on('messages.upsert', async ({ messages, type }) => {
|
||||||
if (type !== 'notify') return;
|
|
||||||
for (const msg of messages) {
|
for (const msg of messages) {
|
||||||
this.webhookListener.pushInbound({
|
this.webhookListener.pushInbound({
|
||||||
|
type,
|
||||||
remoteJid: msg.key.remoteJid ?? null,
|
remoteJid: msg.key.remoteJid ?? null,
|
||||||
fromMe: !!msg.key.fromMe,
|
fromMe: !!msg.key.fromMe,
|
||||||
msgType: msg.message ? Object.keys(msg.message)[0] : null,
|
msgType: msg.message ? Object.keys(msg.message)[0] : null,
|
||||||
at: new Date().toISOString(),
|
at: new Date().toISOString(),
|
||||||
});
|
});
|
||||||
|
}
|
||||||
|
if (type !== 'notify') return;
|
||||||
|
for (const msg of messages) {
|
||||||
if (msg.key.fromMe) continue;
|
if (msg.key.fromMe) continue;
|
||||||
if (!msg.key.remoteJid) continue;
|
if (!msg.key.remoteJid) continue;
|
||||||
if (msg.key.remoteJid.includes('@g.us')) continue;
|
if (msg.key.remoteJid.includes('@g.us')) continue;
|
||||||
|
|||||||
Reference in New Issue
Block a user