mirror of
https://github.com/cheveguerra/bot-whatsapp.git
synced 2026-04-20 20:49:15 +00:00
fix(provider): 🔥 baileys fix
This commit is contained in:
14
README.md
14
README.md
@@ -4,11 +4,12 @@
|
|||||||
[](https://github.com/codigoencasa/bot-whatsapp/actions/workflows/releases.yml)
|
[](https://github.com/codigoencasa/bot-whatsapp/actions/workflows/releases.yml)
|
||||||
|
|
||||||
|
|
||||||
|
<p align="center">
|
||||||
<div style="width:100%;text-align:center"><img src="https://i.imgur.com/Oauef6t.png" width="300" /></div>
|
<img width="300" src="https://i.imgur.com/Oauef6t.png">
|
||||||
|
</p>
|
||||||
|
|
||||||
|
|
||||||
**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
|
## Comenzar
|
||||||
|
|
||||||
@@ -25,12 +26,13 @@ Entiende más a fondo sus funcionalidades explicadas en nuestra documentación.
|
|||||||
## Recursos
|
## Recursos
|
||||||
- [📄 Documentación](https://bot-whatsapp.netlify.app/)
|
- [📄 Documentación](https://bot-whatsapp.netlify.app/)
|
||||||
- [🚀 Roadmap](https://github.com/orgs/codigoencasa/projects/1)
|
- [🚀 Roadmap](https://github.com/orgs/codigoencasa/projects/1)
|
||||||
- [💻 Discord](https://link.codigoencasa.com/DISCORD)
|
- [💻 Discord](https://link.codigoencasa.com/DISCORD)
|
||||||
- [👌 Twitter](https://twitter.com/leifermendez)
|
- [👌 Twitter](https://twitter.com/leifermendez)
|
||||||
- [🎥 Youtube](https://www.youtube.com/watch?v=5lEMCeWEJ8o&list=PL_WGMLcL4jzWPhdhcUyhbFU6bC0oJd2BR)
|
- [🎥 Youtube](https://www.youtube.com/watch?v=5lEMCeWEJ8o&list=PL_WGMLcL4jzWPhdhcUyhbFU6bC0oJd2BR)
|
||||||
|
|
||||||
## Comunidad
|
## Comunidad
|
||||||
<!-- readme: collaborators,contributors -start -->
|
<!-- readme: collaborators,contributors -start -->
|
||||||
|
|
||||||
<!-- readme: collaborators,contributors -end -->
|
<!-- readme: collaborators,contributors -end -->
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
@@ -1,13 +1,16 @@
|
|||||||
const { ProviderClass } = require('@bot-whatsapp/bot')
|
const { ProviderClass } = require('@bot-whatsapp/bot')
|
||||||
const { Sticker } = require('wa-sticker-formatter')
|
const { Sticker } = require('wa-sticker-formatter')
|
||||||
const pino = require('pino')
|
const pino = require('pino')
|
||||||
|
const rimraf = require('rimraf')
|
||||||
const mime = require('mime-types')
|
const mime = require('mime-types')
|
||||||
|
const { join } = require('path')
|
||||||
const { existsSync, createWriteStream } = require('fs')
|
const { existsSync, createWriteStream } = require('fs')
|
||||||
const { Console } = require('console')
|
const { Console } = require('console')
|
||||||
|
|
||||||
const {
|
const {
|
||||||
default: makeWASocket,
|
default: makeWASocket,
|
||||||
useMultiFileAuthState,
|
useMultiFileAuthState,
|
||||||
|
Browsers,
|
||||||
DisconnectReason,
|
DisconnectReason,
|
||||||
} = require('@adiwajshing/baileys')
|
} = require('@adiwajshing/baileys')
|
||||||
const {
|
const {
|
||||||
@@ -21,6 +24,9 @@ const logger = new Console({
|
|||||||
stdout: createWriteStream(`${process.cwd()}/baileys.log`),
|
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
|
* ⚙️ BaileysProvider: Es una clase tipo adaptor
|
||||||
* que extiende clases de ProviderClass (la cual es como interfaz para sber que funciones rqueridas)
|
* 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
|
* Iniciar todo Bailey
|
||||||
*/
|
*/
|
||||||
initBailey = async () => {
|
initBailey = async () => {
|
||||||
const { state, saveCreds } = await useMultiFileAuthState('sessions')
|
const { state, saveCreds } = await useMultiFileAuthState(
|
||||||
|
NAME_DIR_SESSION
|
||||||
|
)
|
||||||
this.saveCredsGlobal = saveCreds
|
this.saveCredsGlobal = saveCreds
|
||||||
|
|
||||||
try {
|
try {
|
||||||
const sock = makeWASocket({
|
const sock = makeWASocket({
|
||||||
printQRInTerminal: false,
|
printQRInTerminal: false,
|
||||||
auth: state,
|
auth: state,
|
||||||
|
browser: Browsers.macOS('Desktop'),
|
||||||
|
syncFullHistory: false,
|
||||||
logger: pino({ level: 'error' }),
|
logger: pino({ level: 'error' }),
|
||||||
})
|
})
|
||||||
|
|
||||||
sock.ev.on('connection.update', async (update) => {
|
sock.ev.on('connection.update', async (update) => {
|
||||||
const { connection, lastDisconnect, qr } = update
|
const { connection, lastDisconnect, qr } = update
|
||||||
|
|
||||||
if (connection === 'close') {
|
const statusCode = lastDisconnect?.error?.output?.statusCode
|
||||||
const shouldReconnect =
|
|
||||||
lastDisconnect?.error?.output?.statusCode !==
|
|
||||||
DisconnectReason.loggedOut
|
|
||||||
|
|
||||||
if (shouldReconnect) {
|
if (statusCode === DisconnectReason.loggedOut) {
|
||||||
await saveCreds()
|
rimraf(PATH_BASE, (err) => {
|
||||||
this.initBailey()
|
if (err) return
|
||||||
}
|
})
|
||||||
|
|
||||||
|
this.initBailey()
|
||||||
|
}
|
||||||
|
|
||||||
|
if (statusCode && statusCode !== DisconnectReason.loggedOut) {
|
||||||
|
this.initBailey()
|
||||||
}
|
}
|
||||||
|
|
||||||
if (qr) {
|
if (qr) {
|
||||||
|
|||||||
Reference in New Issue
Block a user