mirror of
https://github.com/cheveguerra/bot-whatsapp.git
synced 2026-04-20 04:29:16 +00:00
external downlaod
This commit is contained in:
@@ -1,21 +1,18 @@
|
||||
const {get} = require('../adapter')
|
||||
const {get, reply} = require('../adapter')
|
||||
const {saveExternalFile} = require('./handle')
|
||||
|
||||
const getMessages = async (step, message) => {
|
||||
const data = await get(step)
|
||||
return data.includes(message)
|
||||
const getMessages = async (message) => {
|
||||
const data = await get(message)
|
||||
return data
|
||||
}
|
||||
|
||||
|
||||
const responseMessages = (step) => {
|
||||
switch (step) {
|
||||
case 'STEP_1':
|
||||
return ['Si como estas', '🤔'].join('')
|
||||
break;
|
||||
case 'STEP_2':
|
||||
return ['pa como estas', '🤔'].join('')
|
||||
break;
|
||||
const responseMessages = async (step) => {
|
||||
const data = await reply(step)
|
||||
if(data && data.media){
|
||||
const file = await saveExternalFile(data.media)
|
||||
return {...data,...{media:file}}
|
||||
}
|
||||
return null
|
||||
return data
|
||||
}
|
||||
|
||||
module.exports = { getMessages, responseMessages }
|
||||
@@ -1,7 +1,28 @@
|
||||
const http = require('http'); // or 'https' for https:// URLs
|
||||
const https = require('https'); // or 'https' for https:// URLs
|
||||
const fs = require('fs');
|
||||
|
||||
|
||||
const cleanNumber = (number) => {
|
||||
number = number.replace('@c.us', '');
|
||||
number = `${number}@c.us`;
|
||||
return number
|
||||
}
|
||||
|
||||
module.exports = {cleanNumber}
|
||||
const saveExternalFile = (url) => new Promise((resolve, reject) => {
|
||||
const ext = url.split('.').pop()
|
||||
const checkProtocol = url.split('/').includes('https:');
|
||||
console.log(checkProtocol)
|
||||
const handleHttp = checkProtocol ? https : http;
|
||||
const name = `${Date.now()}.${ext}`;
|
||||
const file = fs.createWriteStream(`./mediaSend/${name}`);
|
||||
const request = handleHttp.get(url, function(response) {
|
||||
const ext = response.headers['content-type'].split('/').pop()
|
||||
response.pipe(file);
|
||||
file.on('finish', function() {
|
||||
file.close(); // close() is async, call cb after close completes.
|
||||
resolve(name)
|
||||
});
|
||||
});
|
||||
})
|
||||
module.exports = {cleanNumber, saveExternalFile}
|
||||
@@ -1,4 +1,5 @@
|
||||
const mimeDb = require('mime-db')
|
||||
const fs = require('fs')
|
||||
|
||||
/**
|
||||
* Guardamos archivos multimedia que nuestro cliente nos envie!
|
||||
@@ -6,10 +7,10 @@ const mimeDb = require('mime-db')
|
||||
*/
|
||||
|
||||
|
||||
const saveMedia = () => {
|
||||
const saveMedia = (media) => {
|
||||
const extensionProcess = mimeDb[media.mimetype]
|
||||
const ext = extensionProcess.extensions[0]
|
||||
fs.writeFile(`../media/${media.filename}.${ext}`, media.data, { encoding: 'base64' }, function (err) {
|
||||
fs.writeFile(`./media/${Date.now()}.${ext}`, media.data, { encoding: 'base64' }, function (err) {
|
||||
console.log('** Archivo Media Guardado **');
|
||||
});
|
||||
}
|
||||
|
||||
@@ -4,6 +4,7 @@ const moment = require('moment');
|
||||
const fs = require('fs');
|
||||
const { MessageMedia } = require('whatsapp-web.js');
|
||||
const { cleanNumber } = require('./handle')
|
||||
const { saveMedia } = require('../controllers/save')
|
||||
/**
|
||||
* Enviamos archivos multimedia a nuestro cliente
|
||||
* @param {*} number
|
||||
@@ -11,20 +12,24 @@ const { cleanNumber } = require('./handle')
|
||||
*/
|
||||
|
||||
const sendMedia = (client, number, fileName) => {
|
||||
const dirMedia = `${__dirname}/../mediaSend/${fileName}`;
|
||||
console.log(dirMedia)
|
||||
number = cleanNumber(number)
|
||||
const media = MessageMedia.fromFilePath(`${__dirname}/../mediaSend/${fileName}`);
|
||||
client.sendMessage(number, media);
|
||||
if(fs.existsSync(dirMedia)){
|
||||
const media = MessageMedia.fromFilePath(dirMedia);
|
||||
client.sendMessage(number, media);
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Enviamos un mensaje simple (texto) a nuestro cliente
|
||||
* @param {*} number
|
||||
*/
|
||||
const sendMessage = (client, number = null, text = null, trigger = null) => {
|
||||
const sendMessage = async (client, number = null, text = null, trigger = null) => {
|
||||
number = cleanNumber(number)
|
||||
const message = text
|
||||
client.sendMessage(number, message);
|
||||
readChat(number, message, trigger)
|
||||
await readChat(number, message, trigger)
|
||||
console.log(`⚡⚡⚡ Enviando mensajes....`);
|
||||
}
|
||||
|
||||
@@ -35,17 +40,16 @@ const lastTrigger = (number) => new Promise((resolve, reject) => {
|
||||
number = cleanNumber(number)
|
||||
const pathExcel = `${__dirname}/../chats/${number}.xlsx`;
|
||||
const workbook = new ExcelJS.Workbook();
|
||||
if(fs.existsSync(pathExcel))
|
||||
{
|
||||
if (fs.existsSync(pathExcel)) {
|
||||
workbook.xlsx.readFile(pathExcel)
|
||||
.then(() => {
|
||||
const worksheet = workbook.getWorksheet(1);
|
||||
const lastRow = worksheet.lastRow;
|
||||
const getRowPrevStep = worksheet.getRow(lastRow.number);
|
||||
const lastStep = getRowPrevStep.getCell('C').value;
|
||||
resolve(lastStep)
|
||||
});
|
||||
}else{
|
||||
.then(() => {
|
||||
const worksheet = workbook.getWorksheet(1);
|
||||
const lastRow = worksheet.lastRow;
|
||||
const getRowPrevStep = worksheet.getRow(lastRow.number);
|
||||
const lastStep = getRowPrevStep.getCell('C').value;
|
||||
resolve(lastStep)
|
||||
});
|
||||
} else {
|
||||
resolve(null)
|
||||
}
|
||||
})
|
||||
@@ -55,7 +59,7 @@ const lastTrigger = (number) => new Promise((resolve, reject) => {
|
||||
* @param {*} number
|
||||
* @param {*} message
|
||||
*/
|
||||
const readChat = async (number, message, trigger = null) => {
|
||||
const readChat = async (number, message, trigger = null) => {
|
||||
const pathExcel = `${__dirname}/../chats/${number}.xlsx`;
|
||||
const workbook = new ExcelJS.Workbook();
|
||||
const today = moment().format('DD-MM-YYYY hh:mm')
|
||||
|
||||
Reference in New Issue
Block a user