mirror of
https://github.com/cheveguerra/botGuna.git
synced 2026-04-17 19:37:07 +00:00
Init
This commit is contained in:
@@ -1,7 +1,7 @@
|
||||
const { getData, getReply, saveMessageMysql } = require('./mysql')
|
||||
const { saveMessageJson } = require('./jsonDb')
|
||||
const { getDataIa } = require('./diaglogflow')
|
||||
const stepsInitial = require('../flow/initial.json')
|
||||
// const stepsInitial = require('../flow/initial.json')
|
||||
const stepsReponse = require('../flow/response.json')
|
||||
const { isUndefined } = require('util');
|
||||
var msjsRecibidos = [];
|
||||
@@ -14,6 +14,23 @@ var elNum; //MOD by CHV -
|
||||
var cumplePasoPrevio; //MOD by CHV -
|
||||
const resps = require('../flow/response.json'); //MOD by CHV - Agregamos para traer las respuestas.
|
||||
const { appendFile } = require('fs')
|
||||
/**
|
||||
* Regresa un arreglo de objetos como el stepsInitial original, que se generaba desde "initial.json".
|
||||
* Contiene el nombre del paso (key) y las palabras clave correspondientes (keywords).
|
||||
*/
|
||||
const getStepsInitial = () => {
|
||||
let contSI = 0
|
||||
let stepsInitial0 = []
|
||||
for (const resp in stepsReponse) {
|
||||
// console.log(`${resp}: ${stepsReponse[resp]['keywords']}`);
|
||||
if(stepsReponse[resp]['keywords'] !== undefined){
|
||||
stepsInitial0[contSI]= {"keywords":stepsReponse[resp]['keywords'], "key":resp}
|
||||
contSI++
|
||||
}
|
||||
}
|
||||
return stepsInitial0
|
||||
}
|
||||
const stepsInitial = getStepsInitial()
|
||||
|
||||
const get = (message, num) => new Promise((resolve, reject) => { //MOD by CHV - Agregamos parametro "num" para recibir el número de "app.js"
|
||||
// console.log(num)
|
||||
@@ -32,6 +49,7 @@ const get = (message, num) => new Promise((resolve, reject) => { //MOD by CHV -
|
||||
*/
|
||||
|
||||
if (process.env.DATABASE === 'none') {
|
||||
|
||||
var { key } = stepsInitial.find(k => k.keywords.includes(message)) || { key: null }
|
||||
|
||||
/* ############################################### * REGEXP * ####################################################
|
||||
@@ -290,6 +308,21 @@ function remplazos(elTexto, extraInfo){
|
||||
}
|
||||
// return histlMsjs;
|
||||
}
|
||||
if (laLista[i].search('%body%')>-1){//Remplaza con el body del ctx.
|
||||
const {theMsg} = extraInfo;
|
||||
const { body } = theMsg
|
||||
elTexto = elTexto.toString().replace('%body%', body);
|
||||
}
|
||||
if (laLista[i].search('%from%')>-1){//Remplaza con el from del ctx.
|
||||
const {theMsg} = extraInfo;
|
||||
const { from } = theMsg
|
||||
elTexto = elTexto.toString().replace('%from%', from);
|
||||
}
|
||||
if (laLista[i].search('%solonumero%')>-1){//Remplaza con el from del ctx.
|
||||
const {theMsg} = extraInfo;
|
||||
const { from } = theMsg
|
||||
elTexto = elTexto.toString().replace('%solonumero%', from.replace('@c.us', ''));
|
||||
}
|
||||
if (laLista[i].search('%nombre%')>-1){//Remplaza con el nombre del remitente.
|
||||
if(typeof extraInfo !== undefined){
|
||||
const {theMsg} = extraInfo;
|
||||
|
||||
172
app.js
172
app.js
@@ -175,17 +175,73 @@ const listenMessage = () => client.on('message', async msg => {
|
||||
const step = await getMessages(message, from);
|
||||
if (step) {
|
||||
const response = await responseMessages(step);
|
||||
// console.log("URL:"+nuevaRespuesta);
|
||||
// console.log("HAY URL?? : "+nuevaRespuesta.search("/URL"));
|
||||
|
||||
|
||||
var resps = require('./flow/response.json');
|
||||
nuevaRespuesta = remplazos(resps[step].replyMessage.join(''), client);
|
||||
var pasoRequerido = resps[step].pasoRequerido;
|
||||
// var hayRequest = false;
|
||||
// if(hayRequest==false && nuevaRespuesta.search("/URL")>-1){console.log("Paramos flujo para que no mande el mensaje '/URL'."); return;}//Si el trigger es desbloqueo ya no hace nada mas.
|
||||
|
||||
// nuevaRespuesta = remplazos(resps[step].replyMessage.join(''), client);
|
||||
console.log('NUEVA RESPUESTA=', nuevaRespuesta)
|
||||
|
||||
if(nuevaRespuesta.search("/URL")>-1){
|
||||
|
||||
// Necesita instalado axios version 0.27.2 (npm i axios@0.27.2), si se instala una version mas nueva manda error de "GET no definido" o algo asi.
|
||||
// console.log(theUrl);
|
||||
console.log("========== GET URL ============");
|
||||
/*
|
||||
============================================================================
|
||||
======================== DESBLOQUEO DE USUARIOS ==========================
|
||||
============================================================================
|
||||
*/
|
||||
console.log('PASOREQUERIDO=', pasoRequerido)
|
||||
if(pasoRequerido=="soporte"){
|
||||
// var theUrl=nuevaRespuesta.substring(5).replace("XXPARAM1XX",newBody);
|
||||
|
||||
// const RES = await axios.get(theUrl).then(function (response) {
|
||||
// const { AffectedRows } = response.data['respuesta'][0]
|
||||
// console.log('AFFECTED_ROWS = ', AffectedRows)
|
||||
// if(response.data['respuesta'][0]['AffectedRows']=="1"){
|
||||
// sendMessage(client, from, "Listo, usuario *"+response.data['params']['par1']+"* desbloqueado, por favor *cerrar navegadores* y reingresar.", response.trigger, step);
|
||||
// }
|
||||
// else{
|
||||
// sendMessage(client, from, "El usuario *"+response.data['params']['par1']+"* no *existe* o esta dado de *baja*, por favor revisarlo y volver a intentar.", response.trigger, step);
|
||||
// }
|
||||
// return response
|
||||
// // console.log('AXIOS RES=', response)
|
||||
// }).catch(function (error) {
|
||||
// console.log(error);
|
||||
// return error
|
||||
// });
|
||||
// console.log('RES=', RES)
|
||||
}
|
||||
}
|
||||
|
||||
if(response.hasOwnProperty('url') && response.hasOwnProperty('values')){
|
||||
let theURL = response.url;
|
||||
let url0 = theURL
|
||||
// console.log('EL_URL=', theURL)
|
||||
let vals = response.values // Traemos los valores desde el response.json
|
||||
let j = theURL.split('j=')[1] // Traemos el JSON del URL.
|
||||
let j2 = JSON.parse(j)
|
||||
let cont = 0
|
||||
const { params } = j2 // Traemos los parametros del JSON.
|
||||
console.log('PARAMS=', params, params['par1'], Object.keys(params).length)
|
||||
let url2
|
||||
for (const par in params) { // Remplazamos los valores en lo parametros.
|
||||
console.log(`${par}: ${params[par]}, ${cont}: ${remplazos(vals[cont], client)}`);
|
||||
if(cont==0){url2=url0.replace(params[par], remplazos(vals[cont], client));}
|
||||
else {url2=url2.replace(params[par], remplazos(vals[cont], client));}
|
||||
cont++
|
||||
}
|
||||
// console.log('THE_URL=', url2)
|
||||
desbloqueaUsuario(url2, step) //Llamamos al API para desbloquear el usuario.
|
||||
return
|
||||
}
|
||||
|
||||
/**
|
||||
* Si quieres enviar botones
|
||||
* Si quieres enviar imagen
|
||||
*/
|
||||
if (!response.delay && response.media) {
|
||||
// console.log("++++++++++++++++++++++++++++ SEND MEDIA NO DELAY +++++++++++++++++++++++++++++++++++");
|
||||
@@ -199,20 +255,26 @@ const listenMessage = () => client.on('message', async msg => {
|
||||
}
|
||||
if (response.delay){
|
||||
// await sendMessage(client, from, nuevaRespuesta, response.trigger, step); // Mod by CHV - Para mandar varios mensajes en el mismo response, se cambio esta linea por el forEach de abajo.
|
||||
response.replyMessage.forEach( async messages => {
|
||||
var thisMsg = messages.mensaje
|
||||
if(Array.isArray(messages.mensaje)){thisMsg = messages.mensaje.join('\n')}
|
||||
await sendMessage(client, from, remplazos(thisMsg, client), response.trigger);
|
||||
setTimeout(() => {
|
||||
response.replyMessage.forEach( async messages => {
|
||||
var thisMsg = messages.mensaje
|
||||
if(Array.isArray(messages.mensaje)){thisMsg = messages.mensaje.join('\n')}
|
||||
await sendMessage(client, from, remplazos(thisMsg, client), response.trigger);
|
||||
})
|
||||
}, response.delay)
|
||||
}
|
||||
else{
|
||||
}
|
||||
else
|
||||
{
|
||||
// await sendMessage(client, from, nuevaRespuesta, response.trigger, step); // Mod by CHV - Para mandar varios mensajes en el mismo response, se cambio esta linea por el forEach de abajo.
|
||||
response.replyMessage.forEach( async messages => {
|
||||
var thisMsg = messages.mensaje
|
||||
if(Array.isArray(messages.mensaje)){thisMsg = messages.mensaje.join('\n')}
|
||||
await sendMessage(client, from, remplazos(thisMsg, client), response.trigger);
|
||||
})
|
||||
}
|
||||
}
|
||||
/**
|
||||
* Si quieres enviar botones o listas
|
||||
*/
|
||||
if(response.hasOwnProperty('actions')){
|
||||
const { actions } = response;
|
||||
// console.log("++++++++++++++++++++++++++++ SEND MESG BUTTON/LIST +++++++++++++++++++++++++++++++++++");
|
||||
@@ -228,15 +290,6 @@ const listenMessage = () => client.on('message', async msg => {
|
||||
}
|
||||
return
|
||||
}
|
||||
/**
|
||||
* Regresa el mensaje enviado, con los remplazos procesados.
|
||||
*/
|
||||
if(message.search('/rpt') > -1){
|
||||
newBody = remplazos(newBody, client);
|
||||
newBody = newBody.replace("/rpt ", "");
|
||||
client.sendMessage(from, newBody);
|
||||
return
|
||||
}
|
||||
|
||||
/*
|
||||
============================================================================
|
||||
@@ -297,17 +350,17 @@ const listenMessage = () => client.on('message', async msg => {
|
||||
/**
|
||||
* Si quieres enviar botones
|
||||
*/
|
||||
if(response.hasOwnProperty('actions')){
|
||||
const { actions } = response;
|
||||
if(actions['sections'] === undefined){ //Botones
|
||||
console.log("Botones")
|
||||
await sendMessageButton(client, from, null, actions);
|
||||
}
|
||||
else{ //Listas
|
||||
console.log("Listas")
|
||||
await sendMessageList(client, from, null, actions);
|
||||
}
|
||||
}
|
||||
// if(response.hasOwnProperty('actions')){
|
||||
// const { actions } = response;
|
||||
// if(actions['sections'] === undefined){ //Botones
|
||||
// console.log("Botones")
|
||||
// await sendMessageButton(client, from, null, actions);
|
||||
// }
|
||||
// else{ //Listas
|
||||
// console.log("Listas")
|
||||
// await sendMessageList(client, from, null, actions);
|
||||
// }
|
||||
// }
|
||||
return
|
||||
}
|
||||
});
|
||||
@@ -334,34 +387,34 @@ const listenMessageFromBot = () => client.on('message_create', async botMsg => {
|
||||
}
|
||||
});
|
||||
|
||||
client = new Client({
|
||||
client = new Client({
|
||||
authStrategy: new LocalAuth(),
|
||||
puppeteer: { headless: true, args: ['--no-sandbox','--disable-setuid-sandbox'] }
|
||||
});
|
||||
});
|
||||
|
||||
client.on('qr', qr => generateImage(qr, () => {
|
||||
client.on('qr', qr => generateImage(qr, () => {
|
||||
qrcode.generate(qr, { small: true });
|
||||
console.log(`Ver QR http://localhost:${port}/qr`)
|
||||
socketEvents.sendQR(qr)
|
||||
}))
|
||||
}))
|
||||
|
||||
client.on('ready', (a) => {
|
||||
client.on('ready', (a) => {
|
||||
connectionReady()
|
||||
listenMessage()
|
||||
listenMessageFromBot()
|
||||
// socketEvents.sendStatus(client)
|
||||
});
|
||||
});
|
||||
|
||||
client.on('auth_failure', (e) => {
|
||||
client.on('auth_failure', (e) => {
|
||||
// console.log(e)
|
||||
// connectionLost()
|
||||
});
|
||||
});
|
||||
|
||||
client.on('authenticated', () => {
|
||||
client.on('authenticated', () => {
|
||||
console.log('AUTHENTICATED');
|
||||
});
|
||||
});
|
||||
|
||||
client.initialize();
|
||||
client.initialize();
|
||||
|
||||
/**
|
||||
* Verificamos si tienes un gesto de db
|
||||
@@ -375,6 +428,41 @@ const listenMessageFromBot = () => client.on('message_create', async botMsg => {
|
||||
console.log(`El server esta listo en el puerto ${port}`);
|
||||
})
|
||||
checkEnvFile();
|
||||
|
||||
/**
|
||||
* Llama el API para desbloquear el usuario.
|
||||
*
|
||||
* @param {*} theURL El URL para llamar al API
|
||||
* @param {*} step
|
||||
*/
|
||||
async function desbloqueaUsuario (theUrl, step) {
|
||||
const {from} = client.theMsg
|
||||
const RES = await axios.get(theUrl).then(function (response) {
|
||||
const { AffectedRows } = response.data['respuesta'][0]
|
||||
console.log('AFFECTED_ROWS = ', AffectedRows)
|
||||
if(response.data['respuesta'][0]['AffectedRows']=="1"){
|
||||
sendMessage(client, from, "Listo, usuario *"+response.data['params']['par1']+"* desbloqueado, por favor *cerrar navegadores* y reingresar.", response.trigger, step);
|
||||
}
|
||||
else{
|
||||
sendMessage(client, from, "El usuario *"+response.data['params']['par1']+"* no *existe* o esta dado de *baja*, por favor revisarlo y volver a intentar.", response.trigger, step);
|
||||
}
|
||||
return response
|
||||
}).catch(function (error) {
|
||||
console.log(error);
|
||||
return error
|
||||
});
|
||||
|
||||
|
||||
|
||||
|
||||
// const r = await axios.get(theUrl).then(function (response) {
|
||||
// console.log('AXIOS RES=', response)
|
||||
// }).catch(function (error) {
|
||||
// console.log(error);
|
||||
// return error
|
||||
// })
|
||||
// return Promise.resolve(r)
|
||||
}
|
||||
|
||||
function chkFile(theFile){ //MOD by CHV - Agregamos para revisar que exista el archivo "chats/numero.json"
|
||||
if (fs.existsSync(theFile)) {
|
||||
|
||||
@@ -86,5 +86,16 @@
|
||||
{
|
||||
"keywords": "*pak*3*|*pak*angular*|*paquete*3*|*paquete*angular*",
|
||||
"key": "paq3"
|
||||
},
|
||||
{
|
||||
"keywords": [
|
||||
"/soporte",
|
||||
"/ayuda"
|
||||
],
|
||||
"key": "soporte"
|
||||
},
|
||||
{
|
||||
"keywords": "*",
|
||||
"key": "Desbloqueo"
|
||||
}
|
||||
]
|
||||
@@ -15,6 +15,7 @@
|
||||
"trigger":null
|
||||
},
|
||||
"doblemensaje":{
|
||||
"keywords": "7|*doble*mensaje*",
|
||||
"replyMessage":[
|
||||
{"mensaje":["Este es un ejemplo del envío de *varios* mensajes con la *misma regla* en el *response.json*"]},
|
||||
{
|
||||
@@ -27,6 +28,7 @@
|
||||
"goto":"menu"
|
||||
},
|
||||
"menu":{
|
||||
"keywords": ["/menu"],
|
||||
"replyMessage":[
|
||||
{
|
||||
"mensaje":[
|
||||
@@ -45,6 +47,7 @@
|
||||
"trigger":null
|
||||
},
|
||||
"opcion1":{
|
||||
"keywords": ["1"],
|
||||
"replyMessage":[
|
||||
{
|
||||
"mensaje":[
|
||||
@@ -64,6 +67,7 @@
|
||||
"goto":"menu"
|
||||
},
|
||||
"opcion2":{
|
||||
"keywords": ["2"],
|
||||
"replyMessage":[
|
||||
{
|
||||
"mensaje":[
|
||||
@@ -81,6 +85,7 @@
|
||||
"goto":"menu"
|
||||
},
|
||||
"opcion3":{
|
||||
"keywords": ["3"],
|
||||
"replyMessage":[
|
||||
{
|
||||
"mensaje":[
|
||||
@@ -95,6 +100,7 @@
|
||||
"pasoRequerido":"menu"
|
||||
},
|
||||
"recibenombre":{
|
||||
"keywords": "*",
|
||||
"replyMessage":[
|
||||
{
|
||||
"mensaje":[
|
||||
@@ -109,6 +115,7 @@
|
||||
"goto":"menu"
|
||||
},
|
||||
"gRevisaCliente":{
|
||||
"keywords": "*",
|
||||
"replyMessage":[
|
||||
{
|
||||
"mensaje":[
|
||||
@@ -121,6 +128,7 @@
|
||||
"pasoRequerido":"gallina"
|
||||
},
|
||||
"gGuardainfo":{
|
||||
"keywords": "*",
|
||||
"replyMessage":[
|
||||
{
|
||||
"mensaje":[
|
||||
@@ -133,6 +141,7 @@
|
||||
"pasoRequerido":"gRevisaCliente"
|
||||
},
|
||||
"rnd":{
|
||||
"keywords": ["rnd"],
|
||||
"replyMessage":[
|
||||
{
|
||||
"mensaje":[
|
||||
@@ -150,6 +159,7 @@
|
||||
"trigger":null
|
||||
},
|
||||
"rnd2":{
|
||||
"keywords": ["rnd2"],
|
||||
"replyMessage":[
|
||||
{
|
||||
"mensaje":[""]
|
||||
@@ -169,6 +179,7 @@
|
||||
}
|
||||
},
|
||||
"lista":{
|
||||
"keywords": ["4"],
|
||||
"replyMessage":[
|
||||
{
|
||||
"mensaje":["*%saludo%*, este es un ejemplo de listas"]
|
||||
@@ -195,6 +206,7 @@
|
||||
"goto":"menu"
|
||||
},
|
||||
"botones":{
|
||||
"keywords": ["5"],
|
||||
"replyMessage":[
|
||||
{
|
||||
"mensaje":["*%saludo%*, este es un ejemplo de botones"]
|
||||
@@ -216,6 +228,7 @@
|
||||
"goto":"menu"
|
||||
},
|
||||
"cursos":{
|
||||
"keywords": ["cursos"],
|
||||
"replyMessage":[
|
||||
{
|
||||
"mensaje":["*%saludo% %primer_nombre%*, seleccionaste *Cursos*\n","Automáticamente el flujo se regresa al *menú*, asi que puedes poner nuevamente un número del 1 al 7 sin necesidad de volver a iniciar con */menu*."]
|
||||
@@ -226,6 +239,7 @@
|
||||
"goto":"menu"
|
||||
},
|
||||
"youtube":{
|
||||
"keywords": ["youtube"],
|
||||
"replyMessage":[
|
||||
{
|
||||
"mensaje":["*%saludo% %primer_nombre%*, seleccionaste *YouTube*\n","Automáticamente el flujo se regresa al *menú*, asi que puedes poner nuevamente un número del 1 al 7 sin necesidad de volver a iniciar con */menu*."]
|
||||
@@ -236,6 +250,7 @@
|
||||
"goto":"menu"
|
||||
},
|
||||
"telegram":{
|
||||
"keywords": ["telegram"],
|
||||
"replyMessage":[
|
||||
{
|
||||
"mensaje":["*%saludo% %primer_nombre%*, seleccionaste *Telegram*\n","Automáticamente el flujo se regresa al *menú*, asi que puedes poner nuevamente un número del 1 al 7 sin necesidad de volver a iniciar con */menu*."]
|
||||
@@ -246,6 +261,7 @@
|
||||
"goto":"menu"
|
||||
},
|
||||
"manzana":{
|
||||
"keywords": ["manzana"],
|
||||
"replyMessage":[
|
||||
{
|
||||
"mensaje":["*%saludo% %primer_nombre%*, seleccionaste *manzana*\n","Automáticamente el flujo se regresa al *menú*, asi que puedes poner nuevamente un número del 1 al 7 sin necesidad de volver a iniciar con */menu*."]
|
||||
@@ -256,6 +272,7 @@
|
||||
"goto":"menu"
|
||||
},
|
||||
"mango":{
|
||||
"keywords": ["mango"],
|
||||
"replyMessage":[
|
||||
{
|
||||
"mensaje":["*%saludo% %primer_nombre%*, seleccionaste *mango*\n","Automáticamente el flujo se regresa al *menú*, asi que puedes poner nuevamente un número del 1 al 7 sin necesidad de volver a iniciar con */menu*."]
|
||||
@@ -266,6 +283,7 @@
|
||||
"goto":"menu"
|
||||
},
|
||||
"platano":{
|
||||
"keywords": ["platano"],
|
||||
"replyMessage":[
|
||||
{
|
||||
"mensaje":["*%saludo% %primer_nombre%*, seleccionaste *platano*\n","Automáticamente el flujo se regresa al *menú*, asi que puedes poner nuevamente un número del 1 al 7 sin necesidad de volver a iniciar con */menu*."]
|
||||
@@ -276,6 +294,7 @@
|
||||
"goto":"menu"
|
||||
},
|
||||
"paq3":{
|
||||
"keywords": "*pak*3*|*pak*angular*|*paquete*3*|*paquete*angular*",
|
||||
"replyMessage":[
|
||||
{
|
||||
"mensaje":["*%saludo% %primer_nombre%*, seleccionaste el *paquete 3 de Angular*\n","Automáticamente el flujo se regresa al *menú*, asi que puedes poner nuevamente un número del 1 al 7 sin necesidad de volver a iniciar con */menu*."]
|
||||
@@ -286,6 +305,7 @@
|
||||
"goto":"menu"
|
||||
},
|
||||
"botonespaq3":{
|
||||
"keywords": ["6"],
|
||||
"replyMessage":[
|
||||
{
|
||||
"mensaje":["*%saludo%*, este es un ejemplo de botones y regExp"]
|
||||
@@ -305,5 +325,40 @@
|
||||
},
|
||||
"pasoRequerido":"menu",
|
||||
"goto":"menu"
|
||||
},
|
||||
"soporte":{
|
||||
"keywords":["/soporte", "/ayuda"],
|
||||
"replyMessage":[
|
||||
{
|
||||
"mensaje":[
|
||||
"Bienvenido al soporte de Keymon, soy *Bow*.\n\n",
|
||||
"Dame por favor el usuario que quieres desbloquear respetando *mayúsculas* y *minúsculas*."
|
||||
]
|
||||
}
|
||||
],
|
||||
"media":null,
|
||||
"trigger":null
|
||||
},
|
||||
"Desbloqueo":{
|
||||
"keywords": "*",
|
||||
"replyMessage":[
|
||||
"/URL=http://localhost:8888/dbrquery?j={\"query\":\"update_usuario_guna_nobajas\",\"exec\":\"ExecuteCommand\",\"params\":{\"par1\":\"XXPARAM1XX\"}}"
|
||||
],
|
||||
"url":"http://localhost:8888/dbrquery?j={\"query\":\"update_usuario_guna_nobajas\",\"exec\":\"ExecuteCommand\",\"params\":{\"par1\":\"XXPARAM1XX\", \"par2\":\"XXPARAM2XX\", \"par3\":\"XXPARAM3XX\"}}",
|
||||
"values":["%body%","CDIAZ","%solonumero%"],
|
||||
"media":null,
|
||||
"trigger":null,
|
||||
"pasoRequerido":"soporte"
|
||||
},
|
||||
"gunaCats":{
|
||||
"keywords": "*",
|
||||
"replyMessage":[
|
||||
"/URL=http://localhost:8888/dbrquery?j={\"query\":\"update_usuario_guna_nobajas\",\"exec\":\"ExecuteCommand\",\"params\":{\"par1\":\"XXPARAM1XX\"}}"
|
||||
],
|
||||
"url":"http://localhost:8888/dbrquery?j={\"query\":\"update_usuario_guna_nobajas\",\"exec\":\"ExecuteCommand\",\"params\":{\"par1\":\"XXPARAM1XX\", \"par2\":\"XXPARAM2XX\", \"par3\":\"XXPARAM3XX\"}}",
|
||||
"values":["%body%","CDIAZ","%solonumero%"],
|
||||
"media":null,
|
||||
"trigger":null,
|
||||
"pasoRequerido":"soporte"
|
||||
}
|
||||
}
|
||||
105
package-lock.json
generated
105
package-lock.json
generated
@@ -1,12 +1,12 @@
|
||||
{
|
||||
"name": "test-ws-bot",
|
||||
"version": "1.0.0",
|
||||
"name": "chv-wweb-bot",
|
||||
"version": "1.0.1",
|
||||
"lockfileVersion": 3,
|
||||
"requires": true,
|
||||
"packages": {
|
||||
"": {
|
||||
"name": "test-ws-bot",
|
||||
"version": "1.0.0",
|
||||
"name": "chv-wweb-bot",
|
||||
"version": "1.0.1",
|
||||
"license": "ISC",
|
||||
"dependencies": {
|
||||
"@google-cloud/dialogflow": "^5.2.0",
|
||||
@@ -25,7 +25,7 @@
|
||||
"qrcode-terminal": "^0.12.0",
|
||||
"socket.io": "^4.5.1",
|
||||
"stormdb": "^0.6.0",
|
||||
"whatsapp-web.js": "github:cheveguerra/whatsapp-web.js#WaWJS",
|
||||
"whatsapp-web.js": "github:cheveguerra/whatsapp-web.js#WaWJS2",
|
||||
"xlsx": "^0.18.5"
|
||||
},
|
||||
"devDependencies": {
|
||||
@@ -37,9 +37,9 @@
|
||||
}
|
||||
},
|
||||
"node_modules/@babel/parser": {
|
||||
"version": "7.20.7",
|
||||
"resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.20.7.tgz",
|
||||
"integrity": "sha512-T3Z9oHybU+0vZlY9CiDSJQTD5ZapcW18ZctFMi0MOAl/4BjFF4ul7NVSARLdbGO5vDqy9eQiGTV0LtKfvCYvcg==",
|
||||
"version": "7.20.13",
|
||||
"resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.20.13.tgz",
|
||||
"integrity": "sha512-gFDLKMfpiXCsjt4za2JA9oTMn70CeseCehb11kRZgvd7+F67Hih3OHOK24cRrWECJ/ljfPGac6ygXAs/C8kIvw==",
|
||||
"bin": {
|
||||
"parser": "bin/babel-parser.js"
|
||||
},
|
||||
@@ -576,9 +576,9 @@
|
||||
}
|
||||
},
|
||||
"node_modules/acorn": {
|
||||
"version": "8.8.1",
|
||||
"resolved": "https://registry.npmjs.org/acorn/-/acorn-8.8.1.tgz",
|
||||
"integrity": "sha512-7zFpHzhnqYKrkYdUjF1HI1bzd0VygEGX8lFk4k5zVMqHEoES+P+7TKI+EvLO9WVMJ8eekdO0aDEK044xTXwPPA==",
|
||||
"version": "8.8.2",
|
||||
"resolved": "https://registry.npmjs.org/acorn/-/acorn-8.8.2.tgz",
|
||||
"integrity": "sha512-xjIYgE8HBrkpd/sJqOGNspf8uHG+NOHGOw6a/Urj8taM2EXfdNAH2oFcPeIFfsv3+kz/mJrS5VuMqbNLjCa2vw==",
|
||||
"bin": {
|
||||
"acorn": "bin/acorn"
|
||||
},
|
||||
@@ -1330,6 +1330,25 @@
|
||||
"node-fetch": "2.6.7"
|
||||
}
|
||||
},
|
||||
"node_modules/cross-fetch/node_modules/node-fetch": {
|
||||
"version": "2.6.7",
|
||||
"resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-2.6.7.tgz",
|
||||
"integrity": "sha512-ZjMPFEfVx5j+y2yF35Kzx5sF7kDzxuDj6ziH4FFbOp87zKDZNx8yExJIb05OGF4Nlt9IHFIMBkRl41VdvcNdbQ==",
|
||||
"dependencies": {
|
||||
"whatwg-url": "^5.0.0"
|
||||
},
|
||||
"engines": {
|
||||
"node": "4.x || >=6.0.0"
|
||||
},
|
||||
"peerDependencies": {
|
||||
"encoding": "^0.1.0"
|
||||
},
|
||||
"peerDependenciesMeta": {
|
||||
"encoding": {
|
||||
"optional": true
|
||||
}
|
||||
}
|
||||
},
|
||||
"node_modules/culvert": {
|
||||
"version": "0.1.2",
|
||||
"resolved": "https://registry.npmjs.org/culvert/-/culvert-0.1.2.tgz",
|
||||
@@ -1526,9 +1545,9 @@
|
||||
}
|
||||
},
|
||||
"node_modules/engine.io-parser": {
|
||||
"version": "5.0.5",
|
||||
"resolved": "https://registry.npmjs.org/engine.io-parser/-/engine.io-parser-5.0.5.tgz",
|
||||
"integrity": "sha512-mjEyaa4zhuuRhaSLOdjEb57X0XPP9JEsnXI4E+ivhwT0GgzUogARx4MqoY1jQyB+4Bkz3BUOmzL7t9RMKmlG3g==",
|
||||
"version": "5.0.6",
|
||||
"resolved": "https://registry.npmjs.org/engine.io-parser/-/engine.io-parser-5.0.6.tgz",
|
||||
"integrity": "sha512-tjuoZDMAdEhVnSFleYPCtdL2GXwVTGtNjoeJd9IhIG3C1xs9uwxqRNEu5WpnDZCaozwVlK/nuQhpodhXSIMaxw==",
|
||||
"engines": {
|
||||
"node": ">=10.0.0"
|
||||
}
|
||||
@@ -2162,9 +2181,9 @@
|
||||
}
|
||||
},
|
||||
"node_modules/get-intrinsic": {
|
||||
"version": "1.1.3",
|
||||
"resolved": "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.1.3.tgz",
|
||||
"integrity": "sha512-QJVz1Tj7MS099PevUG5jvnt9tSkXN8K14dxQlikJuPt4uD9hHAHjLyLBiLR5zELelBdD9QNRAXZzsJx0WaDL9A==",
|
||||
"version": "1.2.0",
|
||||
"resolved": "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.2.0.tgz",
|
||||
"integrity": "sha512-L049y6nFOuom5wGyRc3/gdTLO94dySVKRACj1RmJZBQXlbTMhtNIgkWkUHq+jYmZvKf14EW1EoJnnjbmoHij0Q==",
|
||||
"dependencies": {
|
||||
"function-bind": "^1.1.1",
|
||||
"has": "^1.0.3",
|
||||
@@ -3030,9 +3049,9 @@
|
||||
}
|
||||
},
|
||||
"node_modules/marked": {
|
||||
"version": "4.2.5",
|
||||
"resolved": "https://registry.npmjs.org/marked/-/marked-4.2.5.tgz",
|
||||
"integrity": "sha512-jPueVhumq7idETHkb203WDD4fMA3yV9emQ5vLwop58lu8bTclMghBWcYAavlDqIEMaisADinV1TooIFCfqOsYQ==",
|
||||
"version": "4.2.12",
|
||||
"resolved": "https://registry.npmjs.org/marked/-/marked-4.2.12.tgz",
|
||||
"integrity": "sha512-yr8hSKa3Fv4D3jdZmtMMPghgVt6TWbk86WQaWhDloQjRSQhMMYCAro7jP7VDJrjjdV8pxVxMssXS8B8Y5DZ5aw==",
|
||||
"bin": {
|
||||
"marked": "bin/marked.js"
|
||||
},
|
||||
@@ -3255,9 +3274,9 @@
|
||||
}
|
||||
},
|
||||
"node_modules/node-fetch": {
|
||||
"version": "2.6.7",
|
||||
"resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-2.6.7.tgz",
|
||||
"integrity": "sha512-ZjMPFEfVx5j+y2yF35Kzx5sF7kDzxuDj6ziH4FFbOp87zKDZNx8yExJIb05OGF4Nlt9IHFIMBkRl41VdvcNdbQ==",
|
||||
"version": "2.6.8",
|
||||
"resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-2.6.8.tgz",
|
||||
"integrity": "sha512-RZ6dBYuj8dRSfxpUSu+NsdF1dpPpluJxwOp+6IoDp/sH2QNDSvurYsAa+F1WxY2RjA1iP93xhcsUoYbF2XBqVg==",
|
||||
"dependencies": {
|
||||
"whatwg-url": "^5.0.0"
|
||||
},
|
||||
@@ -3330,9 +3349,9 @@
|
||||
}
|
||||
},
|
||||
"node_modules/object-inspect": {
|
||||
"version": "1.12.2",
|
||||
"resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.12.2.tgz",
|
||||
"integrity": "sha512-z+cPxW0QGUp0mcqcsgQyLVRDoXFQbXOwBaqyF7VIgI4TWNQsDHrBpUQslRmIfAoYWdYzs6UlKJtB2XJpTaNSpQ==",
|
||||
"version": "1.12.3",
|
||||
"resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.12.3.tgz",
|
||||
"integrity": "sha512-geUvdk7c+eizMNUDkRpW1wJwgfOiOeHbxBR/hLXK1aT6zmVSO0jsQcs7fj6MGw89jC/cjGfLcNOrtMYtGqm81g==",
|
||||
"funding": {
|
||||
"url": "https://github.com/sponsors/ljharb"
|
||||
}
|
||||
@@ -3908,9 +3927,9 @@
|
||||
}
|
||||
},
|
||||
"node_modules/protobufjs-cli/node_modules/glob": {
|
||||
"version": "8.0.3",
|
||||
"resolved": "https://registry.npmjs.org/glob/-/glob-8.0.3.tgz",
|
||||
"integrity": "sha512-ull455NHSHI/Y1FqGaaYFaLGkNMMJbavMrEGFXG/PGrg6y7sutWHUHrz6gy6WEBH6akM1M414dWKCNs+IhKdiQ==",
|
||||
"version": "8.1.0",
|
||||
"resolved": "https://registry.npmjs.org/glob/-/glob-8.1.0.tgz",
|
||||
"integrity": "sha512-r8hpEjiQEYlF2QU0df3dS+nxxSIreXQS1qRhMJM0Q5NDdR386C7jb7Hwwod8Fgiuex+k0GFjgft18yvxm5XoCQ==",
|
||||
"dependencies": {
|
||||
"fs.realpath": "^1.0.0",
|
||||
"inflight": "^1.0.4",
|
||||
@@ -3926,9 +3945,9 @@
|
||||
}
|
||||
},
|
||||
"node_modules/protobufjs-cli/node_modules/minimatch": {
|
||||
"version": "5.1.2",
|
||||
"resolved": "https://registry.npmjs.org/minimatch/-/minimatch-5.1.2.tgz",
|
||||
"integrity": "sha512-bNH9mmM9qsJ2X4r2Nat1B//1dJVcn3+iBLa3IgqJ7EbGaDNepL9QSHOxN4ng33s52VMMhhIfgCYDk3C4ZmlDAg==",
|
||||
"version": "5.1.6",
|
||||
"resolved": "https://registry.npmjs.org/minimatch/-/minimatch-5.1.6.tgz",
|
||||
"integrity": "sha512-lKwV/1brpG6mBUFHtb7NUmtABCb2WZZmm2wNiOA5hAb8VdCS4B3dtMWyvcoViccwAW/COERjXLt0zP1zXUN26g==",
|
||||
"dependencies": {
|
||||
"brace-expansion": "^2.0.1"
|
||||
},
|
||||
@@ -4195,9 +4214,9 @@
|
||||
}
|
||||
},
|
||||
"node_modules/readdir-glob/node_modules/minimatch": {
|
||||
"version": "5.1.2",
|
||||
"resolved": "https://registry.npmjs.org/minimatch/-/minimatch-5.1.2.tgz",
|
||||
"integrity": "sha512-bNH9mmM9qsJ2X4r2Nat1B//1dJVcn3+iBLa3IgqJ7EbGaDNepL9QSHOxN4ng33s52VMMhhIfgCYDk3C4ZmlDAg==",
|
||||
"version": "5.1.6",
|
||||
"resolved": "https://registry.npmjs.org/minimatch/-/minimatch-5.1.6.tgz",
|
||||
"integrity": "sha512-lKwV/1brpG6mBUFHtb7NUmtABCb2WZZmm2wNiOA5hAb8VdCS4B3dtMWyvcoViccwAW/COERjXLt0zP1zXUN26g==",
|
||||
"dependencies": {
|
||||
"brace-expansion": "^2.0.1"
|
||||
},
|
||||
@@ -4518,9 +4537,9 @@
|
||||
"integrity": "sha512-W4N+o69rkMEGVuk2D/cvca3uYsvGlMwsySWV447y99gUPghxq42BxqLNMndb+a1mm/5/7NeXVQS7RLa2XyXvYg=="
|
||||
},
|
||||
"node_modules/socket.io-parser": {
|
||||
"version": "4.2.1",
|
||||
"resolved": "https://registry.npmjs.org/socket.io-parser/-/socket.io-parser-4.2.1.tgz",
|
||||
"integrity": "sha512-V4GrkLy+HeF1F/en3SpUaM+7XxYXpuMUWLGde1kSSh5nQMN4hLrbPIkD+otwh6q9R6NOQBN4AMaOZ2zVjui82g==",
|
||||
"version": "4.2.2",
|
||||
"resolved": "https://registry.npmjs.org/socket.io-parser/-/socket.io-parser-4.2.2.tgz",
|
||||
"integrity": "sha512-DJtziuKypFkMMHCm2uIshOYC7QaylbtzQwiMYDuCKy3OPkjLzu4B2vAhTlqipRHHzrI0NJeBAizTK7X+6m1jVw==",
|
||||
"dependencies": {
|
||||
"@socket.io/component-emitter": "~3.1.0",
|
||||
"debug": "~4.3.1"
|
||||
@@ -4774,9 +4793,9 @@
|
||||
}
|
||||
},
|
||||
"node_modules/systeminformation": {
|
||||
"version": "5.17.1",
|
||||
"resolved": "https://registry.npmjs.org/systeminformation/-/systeminformation-5.17.1.tgz",
|
||||
"integrity": "sha512-NX/EjbKznOTgt2pfCzZb5bPj5YJOO9mCUrRXquGMtmlfs+BowVaMsJSUUCvqOm9wexx4/F+ng4JQp6I4sG+SyA==",
|
||||
"version": "5.17.4",
|
||||
"resolved": "https://registry.npmjs.org/systeminformation/-/systeminformation-5.17.4.tgz",
|
||||
"integrity": "sha512-mEiIYrw7X5ABX8tJUgzbumQAuFQxNyHdZDz6+UtwNKUbKgIoZqLtug2z1spFB/LiXZne5tdPBJOlvVckbvfhiQ==",
|
||||
"dev": true,
|
||||
"optional": true,
|
||||
"os": [
|
||||
@@ -5120,8 +5139,8 @@
|
||||
"integrity": "sha512-2JAn3z8AR6rjK8Sm8orRC0h/bcl/DqL7tRPdGZ4I1CjdF+EaMLmYxBHyXuKL849eucPFhvBoxMsflfOb8kxaeQ=="
|
||||
},
|
||||
"node_modules/whatsapp-web.js": {
|
||||
"version": "1.18.4",
|
||||
"resolved": "git+ssh://git@github.com/cheveguerra/whatsapp-web.js.git#b3e5d99f521c6d594fd2e204f12d3fd8ae4eba3b",
|
||||
"version": "1.19.2",
|
||||
"resolved": "git+ssh://git@github.com/cheveguerra/whatsapp-web.js.git#025f9914c3ee090c760fe6f2218e68b8bc9225af",
|
||||
"license": "Apache-2.0",
|
||||
"dependencies": {
|
||||
"@pedroslopez/moduleraid": "^5.0.2",
|
||||
|
||||
Reference in New Issue
Block a user