integramos Baileys y varios cambios,

This commit is contained in:
2023-02-21 18:49:07 -06:00
parent 3518f516e0
commit fe8d0f7648
17 changed files with 935 additions and 1360 deletions

View File

@@ -1,5 +1,5 @@
const mimeDb = require('mime-db');
const { uploadSingleFile } = require('../adapter/gdrive');
// const { uploadSingleFile } = require('../adapter/gdrive') // Para Goole Drive y DialogFlow
const fs = require('fs');
var fileName;

View File

@@ -2,7 +2,9 @@
const ExcelJS = require('exceljs');
const moment = require('moment');
const fs = require('fs');
const { MessageMedia, Buttons, List } = require('whatsapp-web.js');
const { MessageMedia, Buttons, List } = require('whatsapp-web.js')
const baileys = require('./send_baileys')
const wwebjs = require('./send_wwebjs')
const { cleanNumber } = require('./handle')
const { remplazos } = require('../adapter/index'); //MOD by CHV - Agregamos remplazos
const DELAY_TIME = 170; //ms
@@ -12,22 +14,26 @@ const DIR_MEDIA = `${__dirname}/../mediaSend`;
const { saveMessage } = require('../adapter')
/**
* Enviamos archivos multimedia a nuestro cliente
* @param {*} number
* @param {*} client
* @param {*} number
* @param {*} fileName
* @param {*} caption
*/
const sendMedia = (client, number = null, fileName = null, trigger = null) => {
const sendMedia = (client, number = null, fileName = null, caption = null) => {
if(!client) return console.error("El objeto cliente no está definido.");
console.log("MEDIA:"+fileName);
// console.log("MEDIA:"+fileName);
try {
number = cleanNumber(number || 0)
const file = `${DIR_MEDIA}/${fileName}`;
console.log("FILE="+file);
if (fs.existsSync(file)) {
console.log("ARCHIVO EXISTE");
const media = MessageMedia.fromFilePath(file);
client.sendMessage(number, media, { sendAudioAsVoice: true });
}
// number = cleanNumber(number || 0)
// const file = `${DIR_MEDIA}/${fileName}`;
// console.log("FILE="+file);
// if (fs.existsSync(file)) {
// console.log("ARCHIVO EXISTE");
// const media = MessageMedia.fromFilePath(file);
if(provider === 'baileys'){baileys.sendMedia(client, number, fileName, caption)}
else{wwebjs.sendMedia(client, number, fileName, caption)}
// client.sendMessage(number, media, { sendAudioAsVoice: true });
// }
} catch(e) {
throw e;
}
@@ -42,13 +48,14 @@ const sendMedia = (client, number = null, fileName = null, trigger = null) => {
const sendMediaVoiceNote = (client, number = null, fileName = null) => {
if(!client) return console.error("El objeto cliente no está definido.");
try {
number = cleanNumber(number || 0)
const file = `${DIR_MEDIA}/${fileName}`;
if (fs.existsSync(file)) {
const media = MessageMedia.fromFilePath(file);
client.sendMessage(number, media ,{ sendAudioAsVoice: true });
}
// number = cleanNumber(number || 0)
// const file = `${DIR_MEDIA}/${fileName}`;
// if (fs.existsSync(file)) {
// const media = MessageMedia.fromFilePath(file)
if(provider === 'baileys'){baileys.sendMediaVoiceNote(client, number, fileName)}
else{wwebjs.sendMediaVoiceNote(client, number, fileName)}
// client.sendMessage(number, media ,{ sendAudioAsVoice: true });
// }
}catch(e) {
throw e;
}
@@ -58,13 +65,15 @@ const sendMedia = (client, number = null, fileName = null, trigger = null) => {
* Enviamos un mensaje simple (texto) a nuestro cliente
* @param {*} number
*/
const sendMessage = async (client, number = null, text = null, trigger = null, regla) => { //MOD by CHV - Agregamos el parametro "regla" para guardarlo en "chats/numero.json"
const sendMessage = async (client, number = null, text = null, regla) => { //MOD by CHV - Agregamos el parametro "regla" para guardarlo en "chats/numero.json"
setTimeout(async () => {
number = cleanNumber(number)
const message = text
client.sendMessage(number, message);
// number = cleanNumber(number)
// const message = text
if(provider === 'baileys'){baileys.sendMessage(client, number, text, regla)}
else{wwebjs.sendMessage(client, number, text, regla)}
// client.sendMessage(number, message);
// console.log(number, message, regla)
await readChat(number, message, trigger, regla) //MOD by CHV - Agregamos el parametro "regla"
await readChat(number, message, regla) //MOD by CHV - Agregamos el parametro "regla"
console.log(`⚡⚡⚡ Enviando mensajes....`);
// console.log("********************* SEND MESSAGE **************************************");
},DELAY_TIME)
@@ -76,13 +85,14 @@ const sendMessage = async (client, number = null, text = null, trigger = null, r
*/
const sendMessageButton = async (client, number = null, text = null, actionButtons) => {
setTimeout(async () => {
number = cleanNumber(number)
const { title = null, message = null, footer = null, buttons = [] } = actionButtons;
let button = new Buttons(remplazos(message, client),[...buttons], remplazos(title, client), remplazos(footer, client));
await readChat(number, message, actionButtons)
client.sendMessage(number, button);
if(provider === 'baileys'){baileys.sendMessageButton(client, number, text, actionButtons)}
else{wwebjs.sendMessageButton(client, number, text, actionButtons)}
// number = cleanNumber(number)
// const { title = null, message = null, footer = null, buttons = [] } = actionButtons;
// let button = new Buttons(remplazos(message, client),[...buttons], remplazos(title, client), remplazos(footer, client));
await readChat(number, message)
// client.sendMessage(number, button);
console.log(`⚡⚡⚡ Enviando mensajes (botones)....`);
// console.log("sendMessageButton.");
}, DELAY_TIME)
// console.log("************************ SEND MESSAGE BUTTON ***********************************");
}
@@ -95,12 +105,14 @@ const sendMessageList = async (client, number = null, text = null, actionList) =
setTimeout(async () => {
// console.log("********************** client **************************")
// console.log(client)
number = cleanNumber(number)
const { body = null, buttonText = null, sections = [], title = null, footer = null } = actionList;
let aList = new List( remplazos(body, client),remplazos(buttonText, client),[...sections],remplazos(title, client),remplazos(footer, client));
client.sendMessage(number, aList);
await readChat(number, message, actionList)
console.log('⚡⚡⚡ Enviando lista a '+number+' ....');
// number = cleanNumber(number)
// const { body = null, buttonText = null, sections = [], title = null, footer = null } = actionList;
// let aList = new List( remplazos(body, client),remplazos(buttonText, client),[...sections],remplazos(title, client),remplazos(footer, client));
if(provider === 'baileys'){baileys.sendMessageList(client, number, text, actionList)}
else{wwebjs.sendMessageList(client, number, text, actionList)}
// client.sendMessage(number, aList);
await readChat(number, message)
// console.log('⚡⚡⚡ Enviando lista a '+number+' ....');
}, DELAY_TIME)
}
@@ -130,9 +142,9 @@ const lastTrigger = (number) => new Promise((resolve, reject) => {
* @param {*} number
* @param {*} message
*/
const readChat = async (number, message, trigger = null, regla) => { //MOD by CHV - Agregamos el parametro "regla" para guardarlo en "chats/numero.json"
const readChat = async (number, message, regla) => { //MOD by CHV - Agregamos el parametro "regla" para guardarlo en "chats/numero.json"
number = cleanNumber(number)
await saveMessage( message, trigger, number, regla ) //MOD by CHV - Agregamos "regla"
await saveMessage( message, number, regla ) //MOD by CHV - Agregamos "regla"
// console.log('Saved')
}

View File

@@ -17,10 +17,11 @@ const mime = require('mime-types')
* @param {*} number
* @param {*} mediaInput
* @param {*} message
* @example await sendMessage('+XXXXXXXXXXX', 'https://dominio.com/imagen.jpg' | 'img/imagen.jpg')
* @param {*} caption
* @example await sendMessage(client, '+XXXXXXXXXXX', 'https://dominio.com/imagen.jpg' | 'img/imagen.jpg', 'caption')
*/
const sendMedia = async (client, number, fileName, text) => {
console.log("SendMedia = ", number, fileName, text)
const sendMedia = async (client, number, fileName, caption = null) => {
console.log("SendMedia Baileys = ", number, fileName, caption)
// const fileDownloaded = await generalDownload(imageUrl)
const file = `${DIR_MEDIA}/${fileName}`;
@@ -28,9 +29,9 @@ const sendMedia = async (client, number, fileName, text) => {
if (fs.existsSync(file)) {
console.log("ARCHIVO EXISTE");
const mimeType = mime.lookup(file)
if (mimeType.includes('image')) return sendImage(client, number, file, text)
if (mimeType.includes('video')) return sendVideo(client, number, file, text)
if (mimeType.includes('audio')) return sendAudio(client, number, file, text)
if (mimeType.includes('image')) return sendImage(client, number, file, caption)
if (mimeType.includes('video')) return sendVideo(client, number, file, caption)
if (mimeType.includes('audio')) return sendAudio(client, number, file, caption)
return sendFile(client, number, file)
}
}
@@ -63,7 +64,6 @@ const sendImage = async (client, number, filePath, text) => {
if (fs.existsSync(file)) {
const media = MessageMedia.fromFilePath(file);
client.sendMessage(number, media ,{ sendAudioAsVoice: true });
}
}catch(e) {
throw e;
@@ -74,13 +74,13 @@ const sendImage = async (client, number, filePath, text) => {
* Enviamos un mensaje simple (texto) a nuestro cliente
* @param {*} number
*/
const sendMessage = async (client, number = null, text = null, trigger = null, regla) => { //MOD by CHV - Agregamos el parametro "regla" para guardarlo en "chats/numero.json"
const sendMessage = async (client, number = null, text = null, regla = null) => { //MOD by CHV - Agregamos el parametro "regla" para guardarlo en "chats/numero.json"
if(text !== undefined && text != null){
setTimeout(async () => {
number = cleanNumber(number)
await client.sendMessage(number, { text: text })
client.sendMessage(number, { text: text })
// console.log(number, message, regla)
await readChat(number, text, trigger, regla) //MOD by CHV - Agregamos el parametro "regla"
await readChat(number, text, regla) //MOD by CHV - Agregamos el parametro "regla"
console.log(`⚡⚡⚡ Enviando mensajes....`);
// ingresarDatos(number, text, 'Salida', 'Bot Pruebas')
// console.log("********************* SEND MESSAGE **************************************");
@@ -97,7 +97,7 @@ const sendMessageButton2 = async (client, number = null, text = null, actionButt
number = cleanNumber(number)
const { title = null, message = null, footer = null, buttons = [] } = actionButtons;
let button = new Buttons(remplazos(message, client),[...buttons], remplazos(title, client), remplazos(footer, client));
await readChat(number, message, actionButtons)
await readChat(number, message)
client.sendMessage(number, button);
console.log(`⚡⚡⚡ Enviando mensajes (botones)....`);
// console.log("sendMessageButton.");
@@ -122,10 +122,11 @@ const sendMessageButton = async (client, number, text = null, actionButtons) =>
type: 1,
}))
text = remplazos(`*${title}*\n${message}`, client)
await readChat(number, message, actionButtons)
// console.log("sendMessageButton:", text, templateButtons)
const buttonMessage = { text, footer, buttons: templateButtons, headerType: 1 }
console.log("sendMessageButton:", buttonMessage)
console.log(templateButtons)
return client.sendMessage(number, buttonMessage)
await readChat(number, message)
}
/**
@@ -133,7 +134,7 @@ const sendMessageButton = async (client, number, text = null, actionButtons) =>
* @param {*} number
*/
const sendMessageList = async (client, number = null, text = null, actionList) => {
console.log("**************** baileys send")
// console.log("**************** baileys send ", number, text, actionList)
setTimeout(async () => {
// console.log("********************** client **************************")
number = cleanNumber(number)
@@ -145,10 +146,10 @@ const sendMessageList = async (client, number = null, text = null, actionList) =
buttonText: remplazos(buttonText, client),
sections
}
console.log(theList)
// console.log(theList)
// console.log(sections[0])
client.sendMessage(number, theList);
await readChat(number, body, actionList)
await readChat(number, body)
console.log('⚡⚡⚡ Enviando lista a '+number+' ....');
}, DELAY_TIME)
}
@@ -179,9 +180,9 @@ const lastTrigger = (number) => new Promise((resolve, reject) => {
* @param {*} number
* @param {*} message
*/
const readChat = async (number, message, trigger = null, regla) => { //MOD by CHV - Agregamos el parametro "regla" para guardarlo en "chats/numero.json"
const readChat = async (number, message, regla = null) => { //MOD by CHV - Agregamos el parametro "regla" para guardarlo en "chats/numero.json"
number = cleanNumber(number)
await saveMessage( message, trigger, number, regla ) //MOD by CHV - Agregamos "regla"
await saveMessage( message, number, regla ) //MOD by CHV - Agregamos "regla"
// console.log('Saved')
}

View File

@@ -17,19 +17,20 @@ const mime = require('mime-types')
* @param {*} number
* @param {*} mediaInput
* @param {*} message
* @param {*} caption
* @returns
*/
const sendMedia = async (client, number, fileName, text) => {
console.log("SendMedia = ", number, fileName, text)
const sendMedia = async (client, number, fileName, caption = null) => {
console.log("SendMedia WWebJS = ", number, fileName, caption)
// const fileDownloaded = await generalDownload(imageUrl)
const file = `${DIR_MEDIA}/${fileName}`;
console.log("FILE="+file);
if (fs.existsSync(file)) {
console.log("ARCHIVO EXISTE");
const mimeType = mime.lookup(file)
if (mimeType.includes('image')) return sendImage(client, number, file, text)
if (mimeType.includes('video')) return sendVideo(client, number, file, text)
if (mimeType.includes('audio')) return sendAudio(client, number, file, text)
if (mimeType.includes('image')) return sendImage(client, number, file, caption)
if (mimeType.includes('video')) return sendVideo(client, number, file, caption)
if (mimeType.includes('audio')) return sendAudio(client, number, file, caption)
return sendFile(client, number, file)
}
}
@@ -68,7 +69,6 @@ const sendImage = async (client, number, fileName, caption) => {
if (fs.existsSync(file)) {
const media = MessageMedia.fromFilePath(file);
client.sendMessage(number, media ,{ sendAudioAsVoice: true });
}
}catch(e) {
throw e;
@@ -79,13 +79,13 @@ const sendImage = async (client, number, fileName, caption) => {
* Enviamos un mensaje simple (texto) a nuestro cliente
* @param {*} number
*/
const sendMessage = async (client, number = null, text = null, trigger = null, regla) => { //MOD by CHV - Agregamos el parametro "regla" para guardarlo en "chats/numero.json"
const sendMessage = async (client, number = null, text = null, regla = null) => { //MOD by CHV - Agregamos el parametro "regla" para guardarlo en "chats/numero.json"
setTimeout(async () => {
number = cleanNumber(number)
const message = text
client.sendMessage(number, message);
// console.log(number, message, regla)
await readChat(number, message, trigger, regla) //MOD by CHV - Agregamos el parametro "regla"
await readChat(number, message, regla) //MOD by CHV - Agregamos el parametro "regla"
console.log(`⚡⚡⚡ Enviando mensajes....`);
// ingresarDatos(number, message, 'Salida', 'Bot Pruebas')
// console.log("********************* SEND MESSAGE **************************************");
@@ -96,15 +96,19 @@ const sendMessage = async (client, number = null, text = null, trigger = null, r
* Enviamos un mensaje con buttons a nuestro cliente
* @param {*} number
*/
const sendMessageButton = async (client, number = null, text = null, actionButtons) => {
const sendMessageButton = async (client, number, text = null, actionButtons) => {
setTimeout(async () => {
number = cleanNumber(number)
const { title = null, message = null, footer = null, buttons = [] } = actionButtons;
let button = new Buttons(remplazos(message, client),[...buttons], remplazos(title, client), remplazos(footer, client));
await readChat(number, message, actionButtons)
let button = new Buttons(
remplazos(message, client),
[...buttons],
remplazos(title, client),
remplazos(footer, client));
console.log("sendMessageButton:", button)
console.log(buttons)
client.sendMessage(number, button);
console.log(`⚡⚡⚡ Enviando mensajes (botones)....`);
// console.log("sendMessageButton.");
await readChat(number, message)
}, DELAY_TIME)
// console.log("************************ SEND MESSAGE BUTTON ***********************************");
}
@@ -117,12 +121,12 @@ const sendMessageList = async (client, number = null, text = null, actionList) =
// console.log("*************** wwebjs send")
setTimeout(async () => {
// console.log("********************** client **************************")
// console.log(client)
console.log(actionList)
number = cleanNumber(number)
const { body = null, buttonText = null, sections = [], title = null, footer = null } = actionList;
let aList = new List( remplazos(body, client),remplazos(buttonText, client),[...sections],remplazos(title, client),remplazos(footer, client));
client.sendMessage(number, aList);
await readChat(number, message, actionList)
await readChat(number, message)
console.log('⚡⚡⚡ Enviando lista a '+number+' ....');
}, DELAY_TIME)
}
@@ -153,9 +157,9 @@ const lastTrigger = (number) => new Promise((resolve, reject) => {
* @param {*} number
* @param {*} message
*/
const readChat = async (number, message, trigger = null, regla) => { //MOD by CHV - Agregamos el parametro "regla" para guardarlo en "chats/numero.json"
const readChat = async (number, message, regla = null) => { //MOD by CHV - Agregamos el parametro "regla" para guardarlo en "chats/numero.json"
number = cleanNumber(number)
await saveMessage( message, trigger, number, regla ) //MOD by CHV - Agregamos "regla"
await saveMessage( message, number, regla ) //MOD by CHV - Agregamos "regla"
// console.log('Saved')
}