mirror of
https://github.com/cheveguerra/bot-whatsapp.git
synced 2026-04-17 19:26:23 +00:00
issue
This commit is contained in:
1
.gitignore
vendored
1
.gitignore
vendored
@@ -1,4 +1,5 @@
|
||||
/node_modules
|
||||
/packages/*/node_modules
|
||||
session.json
|
||||
chats/*
|
||||
!chats/.gitkeep
|
||||
|
||||
9
packages/COMMON_MISTAKE.md
Normal file
9
packages/COMMON_MISTAKE.md
Normal file
@@ -0,0 +1,9 @@
|
||||
```
|
||||
throw new Error('Evaluation failed: ' + helper_js_1.helper.getExceptionMessage(exceptionDetails));
|
||||
```
|
||||
|
||||
Problema sucede cuando usas la misma sesion luego de reiniciar el bot más de 3 veces lo mejor es seguir los pasos
|
||||
|
||||
- Eliminar **.wwebjs_auth**
|
||||
- Eliminar **node_modules**
|
||||
- **yarn**
|
||||
15
packages/cli/node_modules/.bin/cross-env
generated
vendored
15
packages/cli/node_modules/.bin/cross-env
generated
vendored
@@ -1,15 +0,0 @@
|
||||
#!/bin/sh
|
||||
basedir=$(dirname "$(echo "$0" | sed -e 's,\\,/,g')")
|
||||
|
||||
case `uname` in
|
||||
*CYGWIN*) basedir=`cygpath -w "$basedir"`;;
|
||||
esac
|
||||
|
||||
if [ -x "$basedir/node" ]; then
|
||||
"$basedir/node" "$basedir/../../../../node_modules/cross-env/src/bin/cross-env.js" "$@"
|
||||
ret=$?
|
||||
else
|
||||
node "$basedir/../../../../node_modules/cross-env/src/bin/cross-env.js" "$@"
|
||||
ret=$?
|
||||
fi
|
||||
exit $ret
|
||||
15
packages/cli/node_modules/.bin/cross-env-shell
generated
vendored
15
packages/cli/node_modules/.bin/cross-env-shell
generated
vendored
@@ -1,15 +0,0 @@
|
||||
#!/bin/sh
|
||||
basedir=$(dirname "$(echo "$0" | sed -e 's,\\,/,g')")
|
||||
|
||||
case `uname` in
|
||||
*CYGWIN*) basedir=`cygpath -w "$basedir"`;;
|
||||
esac
|
||||
|
||||
if [ -x "$basedir/node" ]; then
|
||||
"$basedir/node" "$basedir/../../../../node_modules/cross-env/src/bin/cross-env-shell.js" "$@"
|
||||
ret=$?
|
||||
else
|
||||
node "$basedir/../../../../node_modules/cross-env/src/bin/cross-env-shell.js" "$@"
|
||||
ret=$?
|
||||
fi
|
||||
exit $ret
|
||||
7
packages/cli/node_modules/.bin/cross-env-shell.cmd
generated
vendored
7
packages/cli/node_modules/.bin/cross-env-shell.cmd
generated
vendored
@@ -1,7 +0,0 @@
|
||||
@IF EXIST "%~dp0\node.exe" (
|
||||
"%~dp0\node.exe" "%~dp0\..\..\..\..\node_modules\cross-env\src\bin\cross-env-shell.js" %*
|
||||
) ELSE (
|
||||
@SETLOCAL
|
||||
@SET PATHEXT=%PATHEXT:;.JS;=;%
|
||||
node "%~dp0\..\..\..\..\node_modules\cross-env\src\bin\cross-env-shell.js" %*
|
||||
)
|
||||
7
packages/cli/node_modules/.bin/cross-env.cmd
generated
vendored
7
packages/cli/node_modules/.bin/cross-env.cmd
generated
vendored
@@ -1,7 +0,0 @@
|
||||
@IF EXIST "%~dp0\node.exe" (
|
||||
"%~dp0\node.exe" "%~dp0\..\..\..\..\node_modules\cross-env\src\bin\cross-env.js" %*
|
||||
) ELSE (
|
||||
@SETLOCAL
|
||||
@SET PATHEXT=%PATHEXT:;.JS;=;%
|
||||
node "%~dp0\..\..\..\..\node_modules\cross-env\src\bin\cross-env.js" %*
|
||||
)
|
||||
32
packages/core/LIST_EVENTS.md
Normal file
32
packages/core/LIST_EVENTS.md
Normal file
@@ -0,0 +1,32 @@
|
||||
- **require_action**: Indica que accion se necesita por parte del usuario y debe contener `instructions` obligatorio
|
||||
|
||||
```json
|
||||
{
|
||||
"instructions": `Debes escanear el QR Code para iniciar session reivsa qr.svg`,
|
||||
... otros argumentos
|
||||
}
|
||||
```
|
||||
|
||||
- **ready**: Indica que todo los procesos para usar el provider han pasado correctamente. Ejemplo validacion de token credenciales etc
|
||||
|
||||
retorna: `true`
|
||||
|
||||
- **auth_failure**: Indica que un problema ocurrio en el inicio del provider `instructions` obligatorio
|
||||
|
||||
```json
|
||||
{
|
||||
"instructions": `Debes escanear el QR Code para iniciar session reivsa qr.svg`,
|
||||
... otros argumentos
|
||||
}
|
||||
```
|
||||
|
||||
- **message**: Indica que mensaje a entrado se debe contemplar la siguiente estructura
|
||||
|
||||
```json
|
||||
{
|
||||
"from": 'Numero de telefono o id que identifique al usuario',
|
||||
"body": 'Mensaje en string que esta entrando',
|
||||
"hasMedia": 'boolean true o false indicando is tiene un archivo multimedia',
|
||||
... otros argumentos
|
||||
}
|
||||
```
|
||||
@@ -1,3 +1,5 @@
|
||||
const { printer } = require('../utils/interactive')
|
||||
|
||||
/**
|
||||
* [ ] Escuchar eventos del provider asegurarte que los provider emitan eventos
|
||||
* [ ] Guardar historial en db
|
||||
@@ -13,32 +15,45 @@ class BotClass {
|
||||
this.databaseClass = _database
|
||||
this.providerClass = _provider
|
||||
|
||||
this.providerClass.on('require_action', (a) => console.log('here??', a))
|
||||
this.providerClass.on('ready', (a) => console.log('ready??', a))
|
||||
this.providerClass.on('auth_failure', (a) =>
|
||||
console.log('auth_failure??', a)
|
||||
)
|
||||
this.providerClass.on('authenticated', (a) =>
|
||||
console.log('authenticated??', a)
|
||||
)
|
||||
for (const { event, func } of this.listenerBusEvents()) {
|
||||
this.providerClass.on(event, func)
|
||||
}
|
||||
|
||||
this.providerClass.on('message', (message) =>
|
||||
console.log('message?', message)
|
||||
)
|
||||
}
|
||||
|
||||
listenerBusEvents = () => [
|
||||
{
|
||||
event: 'require_action',
|
||||
func: ({ instructions }) =>
|
||||
printer(instructions, '⚡⚡ ACCION REQUERIDA ⚡⚡'),
|
||||
},
|
||||
{
|
||||
event: 'ready',
|
||||
func: () => printer('Provider conectado y listo'),
|
||||
},
|
||||
{
|
||||
event: 'auth_failure',
|
||||
func: ({ instructions }) =>
|
||||
printer(instructions, '⚡⚡ ERROR AUTH ⚡⚡'),
|
||||
},
|
||||
|
||||
{
|
||||
event: 'message',
|
||||
func: (msg) => this.handleMsg(msg),
|
||||
},
|
||||
]
|
||||
|
||||
/**
|
||||
* @private
|
||||
* @param {*} ctxMessage
|
||||
*/
|
||||
handleOnMessage = (ctxMessage) => {
|
||||
this.databaseClass.saveLog(ctxMessage)
|
||||
this.continue(ctxMessage)
|
||||
}
|
||||
|
||||
handleEvents = (eventName) => {
|
||||
if (eventName === 'message') return
|
||||
if (eventName === 'auth_success') return
|
||||
if (eventName === 'auth_error') return
|
||||
handleMsg = ({ body }) => {
|
||||
this.databaseClass.saveLog(body)
|
||||
const a = this.flowClass.find(body)
|
||||
console.log(a)
|
||||
}
|
||||
|
||||
/**
|
||||
|
||||
@@ -17,5 +17,7 @@
|
||||
"keywords": [],
|
||||
"author": "",
|
||||
"license": "ISC",
|
||||
"devDependencies": {}
|
||||
"devDependencies": {
|
||||
"kleur": "^4.1.5"
|
||||
}
|
||||
}
|
||||
|
||||
10
packages/core/utils/interactive.js
Normal file
10
packages/core/utils/interactive.js
Normal file
@@ -0,0 +1,10 @@
|
||||
const { yellow, red, bgRed } = require('kleur')
|
||||
|
||||
const printer = (message, title) => {
|
||||
console.clear()
|
||||
if (title) console.log(bgRed(`${title}`))
|
||||
console.log(yellow(Array.isArray(message) ? message.join('\n') : message))
|
||||
console.log(``)
|
||||
}
|
||||
|
||||
module.exports = { printer }
|
||||
@@ -4,6 +4,7 @@ class MockDatabase {
|
||||
constructor() {}
|
||||
|
||||
save = (ctx) => {
|
||||
console.log('Guardando DB...', ctx)
|
||||
this.listHistory.push(ctx)
|
||||
}
|
||||
}
|
||||
|
||||
@@ -30,7 +30,11 @@ class WebWhatsappProvider extends ProviderClass {
|
||||
event: 'qr',
|
||||
func: (qr) => {
|
||||
this.emit('require_action', {
|
||||
instructions: `Debes escanear el QR Code para iniciar session reivsa qr.svg`,
|
||||
instructions: [
|
||||
`Debes escanear el QR Code para iniciar session reivsa qr.svg`,
|
||||
`Recuerda que el QR se actualiza cada minuto `,
|
||||
`Necesitas ayuda: https://link.codigoencasa.com/DISCORD`,
|
||||
],
|
||||
})
|
||||
generateImage(qr)
|
||||
},
|
||||
|
||||
@@ -10,8 +10,6 @@ const cleanNumber = (number) => {
|
||||
const generateImage = (base64) => {
|
||||
let qr_svg = qr.image(base64, { type: 'svg', margin: 4 })
|
||||
qr_svg.pipe(createWriteStream(`${process.cwd()}/qr.svg`))
|
||||
console.log(`⚡ Recuerda que el QR se actualiza cada minuto ⚡'`)
|
||||
console.log(`⚡ Actualiza F5 el navegador para mantener el mejor QR⚡`)
|
||||
}
|
||||
|
||||
module.exports = { cleanNumber, generateImage }
|
||||
|
||||
Reference in New Issue
Block a user