mirror of
https://github.com/cheveguerra/bot-whatsapp.git
synced 2026-04-20 12:39:24 +00:00
feat(provider): 🚀 implements all send media to venom provider
This commit is contained in:
@@ -2,18 +2,20 @@ const { ProviderClass } = require('@bot-whatsapp/bot')
|
|||||||
const venom = require('venom-bot')
|
const venom = require('venom-bot')
|
||||||
const { createWriteStream } = require('fs')
|
const { createWriteStream } = require('fs')
|
||||||
const { Console } = require('console')
|
const { Console } = require('console')
|
||||||
|
const mime = require('mime-types')
|
||||||
|
|
||||||
const {
|
const {
|
||||||
venomCleanNumber,
|
venomCleanNumber,
|
||||||
venomGenerateImage,
|
venomGenerateImage,
|
||||||
venomisValidNumber,
|
venomisValidNumber,
|
||||||
venomDownloadMedia,
|
|
||||||
} = require('./utils')
|
} = require('./utils')
|
||||||
|
|
||||||
const logger = new Console({
|
const logger = new Console({
|
||||||
stdout: createWriteStream(`${process.cwd()}/venom.log`),
|
stdout: createWriteStream(`${process.cwd()}/venom.log`),
|
||||||
})
|
})
|
||||||
|
|
||||||
|
const { generalDownload } = require('../../common/download')
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* ⚙️ VenomProvider: Es una clase tipo adaptor
|
* ⚙️ VenomProvider: Es una clase tipo adaptor
|
||||||
* que extiende clases de ProviderClass (la cual es como interfaz para sber que funciones rqueridas)
|
* que extiende clases de ProviderClass (la cual es como interfaz para sber que funciones rqueridas)
|
||||||
@@ -134,6 +136,53 @@ class VenomProvider extends ProviderClass {
|
|||||||
// return this.vendor.sendButtons(number, "Title", buttons1, "Description");
|
// return this.vendor.sendButtons(number, "Title", buttons1, "Description");
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Enviar audio
|
||||||
|
* @alpha
|
||||||
|
* @param {string} number
|
||||||
|
* @param {string} message
|
||||||
|
* @param {boolean} voiceNote optional
|
||||||
|
* @example await sendMessage('+XXXXXXXXXXX', 'audio.mp3')
|
||||||
|
*/
|
||||||
|
|
||||||
|
sendAudio = async (number, audioPath, voiceNote = false) => {
|
||||||
|
return this.vendor.sendVoice(number, audioPath)
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Enviar imagen
|
||||||
|
* @param {*} number
|
||||||
|
* @param {*} imageUrl
|
||||||
|
* @param {*} text
|
||||||
|
* @returns
|
||||||
|
*/
|
||||||
|
sendImage = async (number, filePath, text) => {
|
||||||
|
return this.vendor.sendImage(number, filePath, 'image-name', text)
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
*
|
||||||
|
* @param {string} number
|
||||||
|
* @param {string} filePath
|
||||||
|
* @example await sendMessage('+XXXXXXXXXXX', './document/file.pdf')
|
||||||
|
*/
|
||||||
|
|
||||||
|
sendFile = async (number, filePath, text) => {
|
||||||
|
const fileName = filePath.split('/').pop()
|
||||||
|
return this.vendor.sendFile(number, filePath, fileName, text)
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Enviar video
|
||||||
|
* @param {*} number
|
||||||
|
* @param {*} imageUrl
|
||||||
|
* @param {*} text
|
||||||
|
* @returns
|
||||||
|
*/
|
||||||
|
sendVideo = async (number, filePath, text) => {
|
||||||
|
return this.vendor.sendVideoAsGif(number, filePath, 'video.gif', text)
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Enviar imagen o multimedia
|
* Enviar imagen o multimedia
|
||||||
* @param {*} number
|
* @param {*} number
|
||||||
@@ -141,10 +190,18 @@ class VenomProvider extends ProviderClass {
|
|||||||
* @param {*} message
|
* @param {*} message
|
||||||
* @returns
|
* @returns
|
||||||
*/
|
*/
|
||||||
sendMedia = async (number, mediaInput, message) => {
|
sendMedia = async (number, mediaUrl, text) => {
|
||||||
if (!mediaInput) throw new Error(`NO_SE_ENCONTRO: ${mediaInput}`)
|
const fileDownloaded = await generalDownload(mediaUrl)
|
||||||
const fileDownloaded = await venomDownloadMedia(mediaInput)
|
const mimeType = mime.lookup(fileDownloaded)
|
||||||
return this.vendor.sendImage(number, fileDownloaded, '.', message)
|
|
||||||
|
if (mimeType.includes('image'))
|
||||||
|
return this.sendImage(number, fileDownloaded, text)
|
||||||
|
if (mimeType.includes('video'))
|
||||||
|
return this.sendVideo(number, fileDownloaded, text)
|
||||||
|
if (mimeType.includes('audio'))
|
||||||
|
return this.sendAudio(number, fileDownloaded)
|
||||||
|
|
||||||
|
return this.sendFile(number, fileDownloaded, text)
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
|||||||
Reference in New Issue
Block a user