fix(provider): 🔥 send message togther with media

This commit is contained in:
Leifer Mendez
2022-12-19 12:16:20 +01:00
parent d9aa97c781
commit b6bf43d70f
3 changed files with 75 additions and 20 deletions

View File

@@ -7,6 +7,7 @@ const {
venomCleanNumber,
venomGenerateImage,
venomisValidNumber,
venomDownloadMedia,
} = require('./utils')
const logger = new Console({
@@ -104,6 +105,19 @@ class VenomProvider extends ProviderClass {
}
}
/**
* Enviar imagen o multimedia
* @param {*} number
* @param {*} mediaInput
* @param {*} message
* @returns
*/
sendMedia = async (number, mediaInput, message) => {
if (!mediaInput) throw new Error(`NO_SE_ENCONTRO: ${mediaInput}`)
const fileDownloaded = await venomDownloadMedia(mediaInput)
return this.vendor.sendImage(number, fileDownloaded, '.', message)
}
/**
* Enviar mensaje al usuario
* @param {*} userId
@@ -115,7 +129,8 @@ class VenomProvider extends ProviderClass {
const number = venomCleanNumber(userId)
if (options?.buttons?.length)
return this.sendButtons(number, message, options.buttons)
if (options?.media) return this.sendMedia(number, options.media)
if (options?.media)
return this.sendMedia(number, options.media, message)
return this.vendor.sendText(number, message)
}
}

View File

@@ -1,4 +1,7 @@
const { writeFile } = require('fs')
const { writeFile, createWriteStream } = require('fs')
const { tmpdir } = require('os')
const http = require('http')
const https = require('https')
const combineImage = require('combine-image')
const venomCleanNumber = (number, full = false) => {
@@ -35,9 +38,43 @@ const venomGenerateImage = async (base) => {
cleanImage.write(PATH_QR)
}
/**
* Incompleta
* Descargar archivo multimedia para enviar
* @param {*} url
* @returns
*/
const venomDownloadMedia = (url) => {
return new Promise((resolve, reject) => {
const ext = url.split('.').pop()
const checkProtocol = url.includes('https:')
const handleHttp = checkProtocol ? https : http
const name = `tmp-${Date.now()}.${ext}`
const fullPath = `${tmpdir()}/${name}`
const file = createWriteStream(fullPath)
handleHttp.get(url, function (response) {
response.pipe(file)
file.on('finish', function () {
file.close()
resolve(fullPath)
})
file.on('error', function () {
console.log('errro')
file.close()
reject(null)
})
})
})
}
const venomisValidNumber = (rawNumber) => {
const regexGroup = /\@g.us\b/gm
const exist = rawNumber.match(regexGroup)
return !exist
}
module.exports = { venomCleanNumber, venomGenerateImage, venomisValidNumber }
module.exports = {
venomCleanNumber,
venomGenerateImage,
venomisValidNumber,
venomDownloadMedia,
}