This commit is contained in:
2023-04-02 01:49:03 -06:00
parent 6f5885ff7d
commit a4d745b6b1
6 changed files with 193 additions and 814 deletions

6
.env
View File

@@ -1,5 +1,5 @@
######DATABASE: none, mysql, dialogflow
###### DATABASE: none, mysql, dialogflow
###### PROVIDER: wwebjs, baileys
DEFAULT_MESSAGE=false
SAVE_MEDIA=true
PORT=3005
@@ -13,4 +13,4 @@ KEEP_DIALOG_FLOW=false
MULTI_DEVICE=true
DIALOGFLOW_MEDIA_FOR_SLOT_FILLING=false
GDRIVE_FOLDER_ID=
PROVIDER=wwebjs
PROVIDER=baileys

20
app.js
View File

@@ -48,12 +48,28 @@ function listenMessage(client){
else { client0 = client.ev; messageEV = 'messages.upsert' } // Usamos Baileys.
client0.on(messageEV, async msg => {
if(provider == 'wwebjs'){ msg.type = 'notify' }
const { from, body, name, hasMedia } = traeVariablesFromMsg(msg);
const { from, body, name, hasMedia, timestamp } = traeVariablesFromMsg(msg);
if (vars[from] === undefined) vars[from] = []
// Este bug lo reporto Lucas Aldeco Brescia para evitar que se publiquen estados.
if (from === 'status@broadcast' || msg.type !== 'notify') { console.log("++++++ status@broadcast o tipo mensaje = ", msg.type); return }
if ((timestamp*1000) + (300000) < Date.now()) { console.log("Mensaje Viejo"); return }// Si el mensaje es mas viejo de 300 segundos no le hacemos caso!
console.log("+++++++++++++++++++++++++++++++++++++ INICIO +++++++++++++++++++++++++++++++++++++++");
console.log("HORA:"+new Date().toLocaleTimeString()+" FROM:"+from+", BODY:"+body+", HASMEDIA:"+hasMedia+", DEVICETYPE:"+client.theMsg?.deviceType);
console.log("HORA:" + new Date().toLocaleTimeString() + " FROM:" + from + ", BODY:" + body + ", HASMEDIA:" + hasMedia + ", DEVICETYPE:" + msg?.deviceType);
if(provider == 'baileys'){
console.log('---------------------------------------------------------------')
console.log(msg?.messages[0]?.message)
console.log('---------------------------------------------------------------')
console.log(msg?.messages[0]?.message?.extendedTextMessage?.text)
}
// console.log('---------------------------------------------------------------')
// if(provider == 'baileys') {verificado = await client.onWhatsApp('5215512345678@s.whatsapp.net')}
// else { verificado = await client.isRegisteredUser('5215512345678@c.us') }
// console.log('VERIFICADO1=', verificado)
// console.log('---------------------------------------------------------------')
// if(provider == 'baileys') {verificado = await client.onWhatsApp('5215554192439@s.whatsapp.net')}
// else { verificado = await client.isRegisteredUser('5215554192439@c.us') }
// console.log('VERIFICADO2=', verificado)
// console.log('---------------------------------------------------------------')
// * Numero NO válido.
if(!isValidNumber(from)){ console.log("Número invalido"); return }
const number = soloNumero(from)

View File

@@ -215,15 +215,16 @@ function traeVariablesFromMsgBaileys(msg){
let body = theBody
let name = pushName
let hasMedia = false
let timestamp = msg.messages[0].messageTimestamp
// console.log("fromBody=", from, body, name)
return {"from":from, "body":body, "name":name, "hasMedia":hasMedia}
return {"from":from, "body":body, "name":name, "hasMedia":hasMedia, "timestamp":timestamp}
}
function traeVariablesFromMsgWWebJS(msg){
const { from, body, hasMedia } = msg;
const { from, body, hasMedia, timestamp } = msg;
let name = msg?._data?.notifyName
// console.log("fromBody=", msg?._data)
return {"from":from, "body":body, "name":name, "hasMedia":hasMedia}
return {"from":from, "body":body, "name":name, "hasMedia":hasMedia, "timestamp":timestamp}
}
/**

962
package-lock.json generated

File diff suppressed because it is too large Load Diff

View File

@@ -93,7 +93,7 @@ initBot = async () => {
}
});
sock.ev.on('creds.update', async () => { await saveCreds() });
}
}
catch (e) {
logger.log(e);
console.log('auth_failure', [

View File

@@ -1,6 +1,7 @@
const { MessageMedia, Client, LocalAuth, Buttons, List } = require('whatsapp-web.js');
const { sendMedia, sendMessage, sendMessageButton, sendMessageList, readChat } = require(`../controllers/send`);
const mime = require('mime-types')
// const mysqlConnection = require('./config/mysql')
require('dotenv').config()
const fs = require('fs');
const express = require('express');
@@ -51,15 +52,22 @@ initBot = async () => {
client.on('authenticated', () => {
console.log('AUTHENTICATED');
});
client.on('qr', qr => generateImage(qr, async () => {
qrcode.generate(qr, { small: true });
console.log(`Ver QR http://localhost:${port}/bot.qr.png`)
}))
client.initialize();
/**
* Verificamos si tienes un gesto de db
*/
if (process.env.DATABASE === 'mysql') {
mysqlConnection.connect()
}
let waReady = false
// Socket IO
io.on('connection', async function (socket) {