diff --git a/README.md b/README.md index e0f64884c..100c869fd 100644 --- a/README.md +++ b/README.md @@ -4,11 +4,12 @@ [![BotWhatsapp Releases(Prod)](https://github.com/codigoencasa/bot-whatsapp/actions/workflows/releases.yml/badge.svg)](https://github.com/codigoencasa/bot-whatsapp/actions/workflows/releases.yml) +

+ +

-
- -**Con esta librería, puedes construir flujos automatizados de conversación de manera agnóstica al proveedor de WhatsApp,** configurar respuestas automatizadas para preguntas frecuentes, recibir y responder mensajes de manera automatizada, y hacer un seguimiento de las interacciones con los clientes.  Además, puedes configurar fácilmente disparadores que te ayudaran a expandir las funcionalidades sin límites. +**Con esta librería, puedes construir flujos automatizados de conversación de manera agnóstica al proveedor de WhatsApp,** configurar respuestas automatizadas para preguntas frecuentes, recibir y responder mensajes de manera automatizada, y hacer un seguimiento de las interacciones con los clientes.  Además, puedes configurar fácilmente disparadores que te ayudaran a expandir las funcionalidades sin límites. **[Ver más informacion](https://bot-whatsapp.netlify.app/)** ## Comenzar @@ -25,12 +26,13 @@ Entiende más a fondo sus funcionalidades explicadas en nuestra documentación. ## Recursos - [📄 Documentación](https://bot-whatsapp.netlify.app/) - [🚀 Roadmap](https://github.com/orgs/codigoencasa/projects/1) -- [💻 Discord](https://link.codigoencasa.com/DISCORD) -- [👌 Twitter](https://twitter.com/leifermendez) -- [🎥 Youtube](https://www.youtube.com/watch?v=5lEMCeWEJ8o&list=PL_WGMLcL4jzWPhdhcUyhbFU6bC0oJd2BR) +- [💻 Discord](https://link.codigoencasa.com/DISCORD) +- [👌 Twitter](https://twitter.com/leifermendez) +- [🎥 Youtube](https://www.youtube.com/watch?v=5lEMCeWEJ8o&list=PL_WGMLcL4jzWPhdhcUyhbFU6bC0oJd2BR) ## Comunidad + diff --git a/packages/provider/src/baileys/index.js b/packages/provider/src/baileys/index.js index 0ecd18c37..90d63a7b0 100644 --- a/packages/provider/src/baileys/index.js +++ b/packages/provider/src/baileys/index.js @@ -1,13 +1,16 @@ const { ProviderClass } = require('@bot-whatsapp/bot') const { Sticker } = require('wa-sticker-formatter') const pino = require('pino') +const rimraf = require('rimraf') const mime = require('mime-types') +const { join } = require('path') const { existsSync, createWriteStream } = require('fs') const { Console } = require('console') const { default: makeWASocket, useMultiFileAuthState, + Browsers, DisconnectReason, } = require('@adiwajshing/baileys') const { @@ -21,6 +24,9 @@ const logger = new Console({ stdout: createWriteStream(`${process.cwd()}/baileys.log`), }) +const NAME_DIR_SESSION = `sessions` +const PATH_BASE = join(process.cwd(), NAME_DIR_SESSION) + /** * ⚙️ BaileysProvider: Es una clase tipo adaptor * que extiende clases de ProviderClass (la cual es como interfaz para sber que funciones rqueridas) @@ -38,28 +44,35 @@ class BaileysProvider extends ProviderClass { * Iniciar todo Bailey */ initBailey = async () => { - const { state, saveCreds } = await useMultiFileAuthState('sessions') + const { state, saveCreds } = await useMultiFileAuthState( + NAME_DIR_SESSION + ) this.saveCredsGlobal = saveCreds try { const sock = makeWASocket({ printQRInTerminal: false, auth: state, + browser: Browsers.macOS('Desktop'), + syncFullHistory: false, logger: pino({ level: 'error' }), }) sock.ev.on('connection.update', async (update) => { const { connection, lastDisconnect, qr } = update - if (connection === 'close') { - const shouldReconnect = - lastDisconnect?.error?.output?.statusCode !== - DisconnectReason.loggedOut + const statusCode = lastDisconnect?.error?.output?.statusCode + + if (statusCode === DisconnectReason.loggedOut) { + rimraf(PATH_BASE, (err) => { + if (err) return + }) + + this.initBailey() + } - if (shouldReconnect) { - await saveCreds() - this.initBailey() - } + if (statusCode && statusCode !== DisconnectReason.loggedOut) { + this.initBailey() } if (qr) {