This commit is contained in:
2023-01-29 15:59:30 -06:00
parent 5916ba6615
commit ab474b5728
5 changed files with 292 additions and 86 deletions

View File

@@ -1,7 +1,7 @@
const { getData, getReply, saveMessageMysql } = require('./mysql') const { getData, getReply, saveMessageMysql } = require('./mysql')
const { saveMessageJson } = require('./jsonDb') const { saveMessageJson } = require('./jsonDb')
const { getDataIa } = require('./diaglogflow') const { getDataIa } = require('./diaglogflow')
const stepsInitial = require('../flow/initial.json') // const stepsInitial = require('../flow/initial.json')
const stepsReponse = require('../flow/response.json') const stepsReponse = require('../flow/response.json')
const { isUndefined } = require('util'); const { isUndefined } = require('util');
var msjsRecibidos = []; var msjsRecibidos = [];
@@ -14,6 +14,23 @@ var elNum; //MOD by CHV -
var cumplePasoPrevio; //MOD by CHV - var cumplePasoPrevio; //MOD by CHV -
const resps = require('../flow/response.json'); //MOD by CHV - Agregamos para traer las respuestas. const resps = require('../flow/response.json'); //MOD by CHV - Agregamos para traer las respuestas.
const { appendFile } = require('fs') 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" 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) // console.log(num)
@@ -32,6 +49,7 @@ const get = (message, num) => new Promise((resolve, reject) => { //MOD by CHV -
*/ */
if (process.env.DATABASE === 'none') { if (process.env.DATABASE === 'none') {
var { key } = stepsInitial.find(k => k.keywords.includes(message)) || { key: null } var { key } = stepsInitial.find(k => k.keywords.includes(message)) || { key: null }
/* ############################################### * REGEXP * #################################################### /* ############################################### * REGEXP * ####################################################
@@ -290,6 +308,21 @@ function remplazos(elTexto, extraInfo){
} }
// return histlMsjs; // 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 (laLista[i].search('%nombre%')>-1){//Remplaza con el nombre del remitente.
if(typeof extraInfo !== undefined){ if(typeof extraInfo !== undefined){
const {theMsg} = extraInfo; const {theMsg} = extraInfo;

172
app.js
View File

@@ -175,17 +175,73 @@ const listenMessage = () => client.on('message', async msg => {
const step = await getMessages(message, from); const step = await getMessages(message, from);
if (step) { if (step) {
const response = await responseMessages(step); const response = await responseMessages(step);
// console.log("URL:"+nuevaRespuesta);
// console.log("HAY URL?? : "+nuevaRespuesta.search("/URL"));
var resps = require('./flow/response.json'); var resps = require('./flow/response.json');
nuevaRespuesta = remplazos(resps[step].replyMessage.join(''), client); nuevaRespuesta = remplazos(resps[step].replyMessage.join(''), client);
var pasoRequerido = resps[step].pasoRequerido; var pasoRequerido = resps[step].pasoRequerido;
// var hayRequest = false; // 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. // 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) { if (!response.delay && response.media) {
// console.log("++++++++++++++++++++++++++++ SEND MEDIA NO DELAY +++++++++++++++++++++++++++++++++++"); // console.log("++++++++++++++++++++++++++++ SEND MEDIA NO DELAY +++++++++++++++++++++++++++++++++++");
@@ -199,20 +255,26 @@ const listenMessage = () => client.on('message', async msg => {
} }
if (response.delay){ 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. // 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 => { setTimeout(() => {
var thisMsg = messages.mensaje response.replyMessage.forEach( async messages => {
if(Array.isArray(messages.mensaje)){thisMsg = messages.mensaje.join('\n')} var thisMsg = messages.mensaje
await sendMessage(client, from, remplazos(thisMsg, client), response.trigger); if(Array.isArray(messages.mensaje)){thisMsg = messages.mensaje.join('\n')}
await sendMessage(client, from, remplazos(thisMsg, client), response.trigger);
})
}, response.delay) }, 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. // 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 => { response.replyMessage.forEach( async messages => {
var thisMsg = messages.mensaje var thisMsg = messages.mensaje
if(Array.isArray(messages.mensaje)){thisMsg = messages.mensaje.join('\n')} if(Array.isArray(messages.mensaje)){thisMsg = messages.mensaje.join('\n')}
await sendMessage(client, from, remplazos(thisMsg, client), response.trigger); await sendMessage(client, from, remplazos(thisMsg, client), response.trigger);
}) })
} }
/**
* Si quieres enviar botones o listas
*/
if(response.hasOwnProperty('actions')){ if(response.hasOwnProperty('actions')){
const { actions } = response; const { actions } = response;
// console.log("++++++++++++++++++++++++++++ SEND MESG BUTTON/LIST +++++++++++++++++++++++++++++++++++"); // console.log("++++++++++++++++++++++++++++ SEND MESG BUTTON/LIST +++++++++++++++++++++++++++++++++++");
@@ -228,15 +290,6 @@ const listenMessage = () => client.on('message', async msg => {
} }
return 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 * Si quieres enviar botones
*/ */
if(response.hasOwnProperty('actions')){ // if(response.hasOwnProperty('actions')){
const { actions } = response; // const { actions } = response;
if(actions['sections'] === undefined){ //Botones // if(actions['sections'] === undefined){ //Botones
console.log("Botones") // console.log("Botones")
await sendMessageButton(client, from, null, actions); // await sendMessageButton(client, from, null, actions);
} // }
else{ //Listas // else{ //Listas
console.log("Listas") // console.log("Listas")
await sendMessageList(client, from, null, actions); // await sendMessageList(client, from, null, actions);
} // }
} // }
return return
} }
}); });
@@ -334,34 +387,34 @@ const listenMessageFromBot = () => client.on('message_create', async botMsg => {
} }
}); });
client = new Client({ client = new Client({
authStrategy: new LocalAuth(), authStrategy: new LocalAuth(),
puppeteer: { headless: true, args: ['--no-sandbox','--disable-setuid-sandbox'] } 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 }); qrcode.generate(qr, { small: true });
console.log(`Ver QR http://localhost:${port}/qr`) console.log(`Ver QR http://localhost:${port}/qr`)
socketEvents.sendQR(qr) socketEvents.sendQR(qr)
})) }))
client.on('ready', (a) => { client.on('ready', (a) => {
connectionReady() connectionReady()
listenMessage() listenMessage()
listenMessageFromBot() listenMessageFromBot()
// socketEvents.sendStatus(client) // socketEvents.sendStatus(client)
}); });
client.on('auth_failure', (e) => { client.on('auth_failure', (e) => {
// console.log(e) // console.log(e)
// connectionLost() // connectionLost()
}); });
client.on('authenticated', () => { client.on('authenticated', () => {
console.log('AUTHENTICATED'); console.log('AUTHENTICATED');
}); });
client.initialize(); client.initialize();
/** /**
* Verificamos si tienes un gesto de db * 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}`); console.log(`El server esta listo en el puerto ${port}`);
}) })
checkEnvFile(); 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" function chkFile(theFile){ //MOD by CHV - Agregamos para revisar que exista el archivo "chats/numero.json"
if (fs.existsSync(theFile)) { if (fs.existsSync(theFile)) {

View File

@@ -86,5 +86,16 @@
{ {
"keywords": "*pak*3*|*pak*angular*|*paquete*3*|*paquete*angular*", "keywords": "*pak*3*|*pak*angular*|*paquete*3*|*paquete*angular*",
"key": "paq3" "key": "paq3"
},
{
"keywords": [
"/soporte",
"/ayuda"
],
"key": "soporte"
},
{
"keywords": "*",
"key": "Desbloqueo"
} }
] ]

View File

@@ -15,6 +15,7 @@
"trigger":null "trigger":null
}, },
"doblemensaje":{ "doblemensaje":{
"keywords": "7|*doble*mensaje*",
"replyMessage":[ "replyMessage":[
{"mensaje":["Este es un ejemplo del envío de *varios* mensajes con la *misma regla* en el *response.json*"]}, {"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" "goto":"menu"
}, },
"menu":{ "menu":{
"keywords": ["/menu"],
"replyMessage":[ "replyMessage":[
{ {
"mensaje":[ "mensaje":[
@@ -45,6 +47,7 @@
"trigger":null "trigger":null
}, },
"opcion1":{ "opcion1":{
"keywords": ["1"],
"replyMessage":[ "replyMessage":[
{ {
"mensaje":[ "mensaje":[
@@ -64,6 +67,7 @@
"goto":"menu" "goto":"menu"
}, },
"opcion2":{ "opcion2":{
"keywords": ["2"],
"replyMessage":[ "replyMessage":[
{ {
"mensaje":[ "mensaje":[
@@ -81,6 +85,7 @@
"goto":"menu" "goto":"menu"
}, },
"opcion3":{ "opcion3":{
"keywords": ["3"],
"replyMessage":[ "replyMessage":[
{ {
"mensaje":[ "mensaje":[
@@ -95,6 +100,7 @@
"pasoRequerido":"menu" "pasoRequerido":"menu"
}, },
"recibenombre":{ "recibenombre":{
"keywords": "*",
"replyMessage":[ "replyMessage":[
{ {
"mensaje":[ "mensaje":[
@@ -109,6 +115,7 @@
"goto":"menu" "goto":"menu"
}, },
"gRevisaCliente":{ "gRevisaCliente":{
"keywords": "*",
"replyMessage":[ "replyMessage":[
{ {
"mensaje":[ "mensaje":[
@@ -121,6 +128,7 @@
"pasoRequerido":"gallina" "pasoRequerido":"gallina"
}, },
"gGuardainfo":{ "gGuardainfo":{
"keywords": "*",
"replyMessage":[ "replyMessage":[
{ {
"mensaje":[ "mensaje":[
@@ -133,6 +141,7 @@
"pasoRequerido":"gRevisaCliente" "pasoRequerido":"gRevisaCliente"
}, },
"rnd":{ "rnd":{
"keywords": ["rnd"],
"replyMessage":[ "replyMessage":[
{ {
"mensaje":[ "mensaje":[
@@ -150,6 +159,7 @@
"trigger":null "trigger":null
}, },
"rnd2":{ "rnd2":{
"keywords": ["rnd2"],
"replyMessage":[ "replyMessage":[
{ {
"mensaje":[""] "mensaje":[""]
@@ -169,6 +179,7 @@
} }
}, },
"lista":{ "lista":{
"keywords": ["4"],
"replyMessage":[ "replyMessage":[
{ {
"mensaje":["*%saludo%*, este es un ejemplo de listas"] "mensaje":["*%saludo%*, este es un ejemplo de listas"]
@@ -195,6 +206,7 @@
"goto":"menu" "goto":"menu"
}, },
"botones":{ "botones":{
"keywords": ["5"],
"replyMessage":[ "replyMessage":[
{ {
"mensaje":["*%saludo%*, este es un ejemplo de botones"] "mensaje":["*%saludo%*, este es un ejemplo de botones"]
@@ -216,6 +228,7 @@
"goto":"menu" "goto":"menu"
}, },
"cursos":{ "cursos":{
"keywords": ["cursos"],
"replyMessage":[ "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*."] "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" "goto":"menu"
}, },
"youtube":{ "youtube":{
"keywords": ["youtube"],
"replyMessage":[ "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*."] "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" "goto":"menu"
}, },
"telegram":{ "telegram":{
"keywords": ["telegram"],
"replyMessage":[ "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*."] "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" "goto":"menu"
}, },
"manzana":{ "manzana":{
"keywords": ["manzana"],
"replyMessage":[ "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*."] "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" "goto":"menu"
}, },
"mango":{ "mango":{
"keywords": ["mango"],
"replyMessage":[ "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*."] "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" "goto":"menu"
}, },
"platano":{ "platano":{
"keywords": ["platano"],
"replyMessage":[ "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*."] "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" "goto":"menu"
}, },
"paq3":{ "paq3":{
"keywords": "*pak*3*|*pak*angular*|*paquete*3*|*paquete*angular*",
"replyMessage":[ "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*."] "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" "goto":"menu"
}, },
"botonespaq3":{ "botonespaq3":{
"keywords": ["6"],
"replyMessage":[ "replyMessage":[
{ {
"mensaje":["*%saludo%*, este es un ejemplo de botones y regExp"] "mensaje":["*%saludo%*, este es un ejemplo de botones y regExp"]
@@ -305,5 +325,40 @@
}, },
"pasoRequerido":"menu", "pasoRequerido":"menu",
"goto":"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
View File

@@ -1,12 +1,12 @@
{ {
"name": "test-ws-bot", "name": "chv-wweb-bot",
"version": "1.0.0", "version": "1.0.1",
"lockfileVersion": 3, "lockfileVersion": 3,
"requires": true, "requires": true,
"packages": { "packages": {
"": { "": {
"name": "test-ws-bot", "name": "chv-wweb-bot",
"version": "1.0.0", "version": "1.0.1",
"license": "ISC", "license": "ISC",
"dependencies": { "dependencies": {
"@google-cloud/dialogflow": "^5.2.0", "@google-cloud/dialogflow": "^5.2.0",
@@ -25,7 +25,7 @@
"qrcode-terminal": "^0.12.0", "qrcode-terminal": "^0.12.0",
"socket.io": "^4.5.1", "socket.io": "^4.5.1",
"stormdb": "^0.6.0", "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" "xlsx": "^0.18.5"
}, },
"devDependencies": { "devDependencies": {
@@ -37,9 +37,9 @@
} }
}, },
"node_modules/@babel/parser": { "node_modules/@babel/parser": {
"version": "7.20.7", "version": "7.20.13",
"resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.20.7.tgz", "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.20.13.tgz",
"integrity": "sha512-T3Z9oHybU+0vZlY9CiDSJQTD5ZapcW18ZctFMi0MOAl/4BjFF4ul7NVSARLdbGO5vDqy9eQiGTV0LtKfvCYvcg==", "integrity": "sha512-gFDLKMfpiXCsjt4za2JA9oTMn70CeseCehb11kRZgvd7+F67Hih3OHOK24cRrWECJ/ljfPGac6ygXAs/C8kIvw==",
"bin": { "bin": {
"parser": "bin/babel-parser.js" "parser": "bin/babel-parser.js"
}, },
@@ -576,9 +576,9 @@
} }
}, },
"node_modules/acorn": { "node_modules/acorn": {
"version": "8.8.1", "version": "8.8.2",
"resolved": "https://registry.npmjs.org/acorn/-/acorn-8.8.1.tgz", "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.8.2.tgz",
"integrity": "sha512-7zFpHzhnqYKrkYdUjF1HI1bzd0VygEGX8lFk4k5zVMqHEoES+P+7TKI+EvLO9WVMJ8eekdO0aDEK044xTXwPPA==", "integrity": "sha512-xjIYgE8HBrkpd/sJqOGNspf8uHG+NOHGOw6a/Urj8taM2EXfdNAH2oFcPeIFfsv3+kz/mJrS5VuMqbNLjCa2vw==",
"bin": { "bin": {
"acorn": "bin/acorn" "acorn": "bin/acorn"
}, },
@@ -1330,6 +1330,25 @@
"node-fetch": "2.6.7" "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": { "node_modules/culvert": {
"version": "0.1.2", "version": "0.1.2",
"resolved": "https://registry.npmjs.org/culvert/-/culvert-0.1.2.tgz", "resolved": "https://registry.npmjs.org/culvert/-/culvert-0.1.2.tgz",
@@ -1526,9 +1545,9 @@
} }
}, },
"node_modules/engine.io-parser": { "node_modules/engine.io-parser": {
"version": "5.0.5", "version": "5.0.6",
"resolved": "https://registry.npmjs.org/engine.io-parser/-/engine.io-parser-5.0.5.tgz", "resolved": "https://registry.npmjs.org/engine.io-parser/-/engine.io-parser-5.0.6.tgz",
"integrity": "sha512-mjEyaa4zhuuRhaSLOdjEb57X0XPP9JEsnXI4E+ivhwT0GgzUogARx4MqoY1jQyB+4Bkz3BUOmzL7t9RMKmlG3g==", "integrity": "sha512-tjuoZDMAdEhVnSFleYPCtdL2GXwVTGtNjoeJd9IhIG3C1xs9uwxqRNEu5WpnDZCaozwVlK/nuQhpodhXSIMaxw==",
"engines": { "engines": {
"node": ">=10.0.0" "node": ">=10.0.0"
} }
@@ -2162,9 +2181,9 @@
} }
}, },
"node_modules/get-intrinsic": { "node_modules/get-intrinsic": {
"version": "1.1.3", "version": "1.2.0",
"resolved": "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.1.3.tgz", "resolved": "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.2.0.tgz",
"integrity": "sha512-QJVz1Tj7MS099PevUG5jvnt9tSkXN8K14dxQlikJuPt4uD9hHAHjLyLBiLR5zELelBdD9QNRAXZzsJx0WaDL9A==", "integrity": "sha512-L049y6nFOuom5wGyRc3/gdTLO94dySVKRACj1RmJZBQXlbTMhtNIgkWkUHq+jYmZvKf14EW1EoJnnjbmoHij0Q==",
"dependencies": { "dependencies": {
"function-bind": "^1.1.1", "function-bind": "^1.1.1",
"has": "^1.0.3", "has": "^1.0.3",
@@ -3030,9 +3049,9 @@
} }
}, },
"node_modules/marked": { "node_modules/marked": {
"version": "4.2.5", "version": "4.2.12",
"resolved": "https://registry.npmjs.org/marked/-/marked-4.2.5.tgz", "resolved": "https://registry.npmjs.org/marked/-/marked-4.2.12.tgz",
"integrity": "sha512-jPueVhumq7idETHkb203WDD4fMA3yV9emQ5vLwop58lu8bTclMghBWcYAavlDqIEMaisADinV1TooIFCfqOsYQ==", "integrity": "sha512-yr8hSKa3Fv4D3jdZmtMMPghgVt6TWbk86WQaWhDloQjRSQhMMYCAro7jP7VDJrjjdV8pxVxMssXS8B8Y5DZ5aw==",
"bin": { "bin": {
"marked": "bin/marked.js" "marked": "bin/marked.js"
}, },
@@ -3255,9 +3274,9 @@
} }
}, },
"node_modules/node-fetch": { "node_modules/node-fetch": {
"version": "2.6.7", "version": "2.6.8",
"resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-2.6.7.tgz", "resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-2.6.8.tgz",
"integrity": "sha512-ZjMPFEfVx5j+y2yF35Kzx5sF7kDzxuDj6ziH4FFbOp87zKDZNx8yExJIb05OGF4Nlt9IHFIMBkRl41VdvcNdbQ==", "integrity": "sha512-RZ6dBYuj8dRSfxpUSu+NsdF1dpPpluJxwOp+6IoDp/sH2QNDSvurYsAa+F1WxY2RjA1iP93xhcsUoYbF2XBqVg==",
"dependencies": { "dependencies": {
"whatwg-url": "^5.0.0" "whatwg-url": "^5.0.0"
}, },
@@ -3330,9 +3349,9 @@
} }
}, },
"node_modules/object-inspect": { "node_modules/object-inspect": {
"version": "1.12.2", "version": "1.12.3",
"resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.12.2.tgz", "resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.12.3.tgz",
"integrity": "sha512-z+cPxW0QGUp0mcqcsgQyLVRDoXFQbXOwBaqyF7VIgI4TWNQsDHrBpUQslRmIfAoYWdYzs6UlKJtB2XJpTaNSpQ==", "integrity": "sha512-geUvdk7c+eizMNUDkRpW1wJwgfOiOeHbxBR/hLXK1aT6zmVSO0jsQcs7fj6MGw89jC/cjGfLcNOrtMYtGqm81g==",
"funding": { "funding": {
"url": "https://github.com/sponsors/ljharb" "url": "https://github.com/sponsors/ljharb"
} }
@@ -3908,9 +3927,9 @@
} }
}, },
"node_modules/protobufjs-cli/node_modules/glob": { "node_modules/protobufjs-cli/node_modules/glob": {
"version": "8.0.3", "version": "8.1.0",
"resolved": "https://registry.npmjs.org/glob/-/glob-8.0.3.tgz", "resolved": "https://registry.npmjs.org/glob/-/glob-8.1.0.tgz",
"integrity": "sha512-ull455NHSHI/Y1FqGaaYFaLGkNMMJbavMrEGFXG/PGrg6y7sutWHUHrz6gy6WEBH6akM1M414dWKCNs+IhKdiQ==", "integrity": "sha512-r8hpEjiQEYlF2QU0df3dS+nxxSIreXQS1qRhMJM0Q5NDdR386C7jb7Hwwod8Fgiuex+k0GFjgft18yvxm5XoCQ==",
"dependencies": { "dependencies": {
"fs.realpath": "^1.0.0", "fs.realpath": "^1.0.0",
"inflight": "^1.0.4", "inflight": "^1.0.4",
@@ -3926,9 +3945,9 @@
} }
}, },
"node_modules/protobufjs-cli/node_modules/minimatch": { "node_modules/protobufjs-cli/node_modules/minimatch": {
"version": "5.1.2", "version": "5.1.6",
"resolved": "https://registry.npmjs.org/minimatch/-/minimatch-5.1.2.tgz", "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-5.1.6.tgz",
"integrity": "sha512-bNH9mmM9qsJ2X4r2Nat1B//1dJVcn3+iBLa3IgqJ7EbGaDNepL9QSHOxN4ng33s52VMMhhIfgCYDk3C4ZmlDAg==", "integrity": "sha512-lKwV/1brpG6mBUFHtb7NUmtABCb2WZZmm2wNiOA5hAb8VdCS4B3dtMWyvcoViccwAW/COERjXLt0zP1zXUN26g==",
"dependencies": { "dependencies": {
"brace-expansion": "^2.0.1" "brace-expansion": "^2.0.1"
}, },
@@ -4195,9 +4214,9 @@
} }
}, },
"node_modules/readdir-glob/node_modules/minimatch": { "node_modules/readdir-glob/node_modules/minimatch": {
"version": "5.1.2", "version": "5.1.6",
"resolved": "https://registry.npmjs.org/minimatch/-/minimatch-5.1.2.tgz", "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-5.1.6.tgz",
"integrity": "sha512-bNH9mmM9qsJ2X4r2Nat1B//1dJVcn3+iBLa3IgqJ7EbGaDNepL9QSHOxN4ng33s52VMMhhIfgCYDk3C4ZmlDAg==", "integrity": "sha512-lKwV/1brpG6mBUFHtb7NUmtABCb2WZZmm2wNiOA5hAb8VdCS4B3dtMWyvcoViccwAW/COERjXLt0zP1zXUN26g==",
"dependencies": { "dependencies": {
"brace-expansion": "^2.0.1" "brace-expansion": "^2.0.1"
}, },
@@ -4518,9 +4537,9 @@
"integrity": "sha512-W4N+o69rkMEGVuk2D/cvca3uYsvGlMwsySWV447y99gUPghxq42BxqLNMndb+a1mm/5/7NeXVQS7RLa2XyXvYg==" "integrity": "sha512-W4N+o69rkMEGVuk2D/cvca3uYsvGlMwsySWV447y99gUPghxq42BxqLNMndb+a1mm/5/7NeXVQS7RLa2XyXvYg=="
}, },
"node_modules/socket.io-parser": { "node_modules/socket.io-parser": {
"version": "4.2.1", "version": "4.2.2",
"resolved": "https://registry.npmjs.org/socket.io-parser/-/socket.io-parser-4.2.1.tgz", "resolved": "https://registry.npmjs.org/socket.io-parser/-/socket.io-parser-4.2.2.tgz",
"integrity": "sha512-V4GrkLy+HeF1F/en3SpUaM+7XxYXpuMUWLGde1kSSh5nQMN4hLrbPIkD+otwh6q9R6NOQBN4AMaOZ2zVjui82g==", "integrity": "sha512-DJtziuKypFkMMHCm2uIshOYC7QaylbtzQwiMYDuCKy3OPkjLzu4B2vAhTlqipRHHzrI0NJeBAizTK7X+6m1jVw==",
"dependencies": { "dependencies": {
"@socket.io/component-emitter": "~3.1.0", "@socket.io/component-emitter": "~3.1.0",
"debug": "~4.3.1" "debug": "~4.3.1"
@@ -4774,9 +4793,9 @@
} }
}, },
"node_modules/systeminformation": { "node_modules/systeminformation": {
"version": "5.17.1", "version": "5.17.4",
"resolved": "https://registry.npmjs.org/systeminformation/-/systeminformation-5.17.1.tgz", "resolved": "https://registry.npmjs.org/systeminformation/-/systeminformation-5.17.4.tgz",
"integrity": "sha512-NX/EjbKznOTgt2pfCzZb5bPj5YJOO9mCUrRXquGMtmlfs+BowVaMsJSUUCvqOm9wexx4/F+ng4JQp6I4sG+SyA==", "integrity": "sha512-mEiIYrw7X5ABX8tJUgzbumQAuFQxNyHdZDz6+UtwNKUbKgIoZqLtug2z1spFB/LiXZne5tdPBJOlvVckbvfhiQ==",
"dev": true, "dev": true,
"optional": true, "optional": true,
"os": [ "os": [
@@ -5120,8 +5139,8 @@
"integrity": "sha512-2JAn3z8AR6rjK8Sm8orRC0h/bcl/DqL7tRPdGZ4I1CjdF+EaMLmYxBHyXuKL849eucPFhvBoxMsflfOb8kxaeQ==" "integrity": "sha512-2JAn3z8AR6rjK8Sm8orRC0h/bcl/DqL7tRPdGZ4I1CjdF+EaMLmYxBHyXuKL849eucPFhvBoxMsflfOb8kxaeQ=="
}, },
"node_modules/whatsapp-web.js": { "node_modules/whatsapp-web.js": {
"version": "1.18.4", "version": "1.19.2",
"resolved": "git+ssh://git@github.com/cheveguerra/whatsapp-web.js.git#b3e5d99f521c6d594fd2e204f12d3fd8ae4eba3b", "resolved": "git+ssh://git@github.com/cheveguerra/whatsapp-web.js.git#025f9914c3ee090c760fe6f2218e68b8bc9225af",
"license": "Apache-2.0", "license": "Apache-2.0",
"dependencies": { "dependencies": {
"@pedroslopez/moduleraid": "^5.0.2", "@pedroslopez/moduleraid": "^5.0.2",