From 6d4f8d4c2674bea74312148c986f9d1726d5f8d9 Mon Sep 17 00:00:00 2001 From: devlikepro Date: Wed, 19 Jun 2024 11:29:20 +0700 Subject: [PATCH] [core] Add logger to NOWEB engine --- src/core/engines/noweb/session.noweb.core.ts | 18 ++++++++++++++---- 1 file changed, 14 insertions(+), 4 deletions(-) diff --git a/src/core/engines/noweb/session.noweb.core.ts b/src/core/engines/noweb/session.noweb.core.ts index f5891675..617ed04d 100644 --- a/src/core/engines/noweb/session.noweb.core.ts +++ b/src/core/engines/noweb/session.noweb.core.ts @@ -31,6 +31,7 @@ import * as Buffer from 'buffer'; import { Agent } from 'https'; import * as lodash from 'lodash'; import { toNumber } from 'lodash'; +import type { Logger } from 'pino'; import { ChatRequest, @@ -98,7 +99,7 @@ import { extractMediaContent } from './utils'; // eslint-disable-next-line @typescript-eslint/no-var-requires const QRCode = require('qrcode'); // eslint-disable-next-line @typescript-eslint/no-var-requires -const logger = require('pino')(); +const pino = require('pino'); export const BaileysEvents = { CONNECTION_UPDATE: 'connection.update', @@ -128,6 +129,7 @@ export class WhatsappSessionNoWebCore extends WhatsappSession { storageFactory = new NowebStorageFactoryCore(); private startTimeoutId: null | ReturnType = null; private autoRestartTimeoutId: null | ReturnType = null; + public logger: Logger; get listenConnectionEventsFromTheStart() { return true; @@ -140,6 +142,12 @@ export class WhatsappSessionNoWebCore extends WhatsappSession { public constructor(config) { super(config); this.qr = new QR(); + const levels = getLogLevels(this.sessionConfig?.debug); + const debug = levels.includes('debug'); + const logger = pino({ level: debug ? 'debug' : 'info' }); + this.logger = logger.child({ + session: this.name, + }); } start() { @@ -158,13 +166,14 @@ export class WhatsappSessionNoWebCore extends WhatsappSession { auth: { creds: state.creds, /** caching makes the store faster to send/recv messages */ - keys: makeCacheableSignalKeyStore(state.keys, logger), + keys: makeCacheableSignalKeyStore(state.keys, this.logger), }, printQRInTerminal: false, browser: browser, - logger: logger, + logger: this.logger, mobile: false, defaultQueryTimeoutMs: undefined, + keepAliveIntervalMs: 50_000, getMessage: (key) => this.getMessage(key), syncFullHistory: fullSyncEnabled, }; @@ -193,7 +202,7 @@ export class WhatsappSessionNoWebCore extends WhatsappSession { this.log.debug(`Connecting store...`); if (!this.store) { this.log.debug(`Making a new store...`); - const levels = getLogLevels(false); + const levels = getLogLevels(this.sessionConfig?.debug); const log = buildLogger(`NowebStore - ${this.name}`, levels); const storeEnabled = this.sessionConfig?.noweb?.store?.enabled || false; if (storeEnabled) { @@ -781,6 +790,7 @@ export class WhatsappSessionNoWebCore extends WhatsappSession { font: status.font, statusJidList: JIDs, }; + return this.sock.sendMessage(BROADCAST_ID, message, options); }