mirror of
https://github.com/cheveguerra/bot-whatsapp.git
synced 2026-04-20 04:29:16 +00:00
fix(adapter): 🔥 improvement baileys
This commit is contained in:
@@ -3,10 +3,10 @@ const { ProviderClass } = require('@bot-whatsapp/bot')
|
||||
const { Console } = require('console')
|
||||
const { createWriteStream } = require('fs')
|
||||
const {
|
||||
cleanNumber,
|
||||
generateImage,
|
||||
isValidNumber,
|
||||
downloadMedia,
|
||||
wwebCleanNumber,
|
||||
wwebDownloadMedia,
|
||||
wwebGenerateImage,
|
||||
wwebIsValidNumber,
|
||||
} = require('./utils')
|
||||
|
||||
const logger = new Console({
|
||||
@@ -65,7 +65,7 @@ class WebWhatsappProvider extends ProviderClass {
|
||||
`Necesitas ayuda: https://link.codigoencasa.com/DISCORD`,
|
||||
],
|
||||
})
|
||||
generateImage(qr)
|
||||
wwebGenerateImage(qr)
|
||||
},
|
||||
},
|
||||
{
|
||||
@@ -79,10 +79,10 @@ class WebWhatsappProvider extends ProviderClass {
|
||||
return
|
||||
}
|
||||
|
||||
if (!isValidNumber(payload.from)) {
|
||||
if (!wwebIsValidNumber(payload.from)) {
|
||||
return
|
||||
}
|
||||
payload.from = cleanNumber(payload.from, true)
|
||||
payload.from = wwebCleanNumber(payload.from, true)
|
||||
this.emit('message', payload)
|
||||
},
|
||||
},
|
||||
@@ -98,7 +98,7 @@ class WebWhatsappProvider extends ProviderClass {
|
||||
*/
|
||||
sendMedia = async (number, mediaInput = null) => {
|
||||
if (!mediaInput) throw new Error(`NO_SE_ENCONTRO: ${mediaInput}`)
|
||||
const fileDownloaded = await downloadMedia(mediaInput)
|
||||
const fileDownloaded = await wwebDownloadMedia(mediaInput)
|
||||
const media = MessageMedia.fromFilePath(fileDownloaded)
|
||||
return this.vendor.sendMessage(number, media, {
|
||||
sendAudioAsVoice: true,
|
||||
@@ -163,7 +163,7 @@ class WebWhatsappProvider extends ProviderClass {
|
||||
* @returns
|
||||
*/
|
||||
sendMessage = async (userId, message, { options }) => {
|
||||
const number = cleanNumber(userId)
|
||||
const number = wwebCleanNumber(userId)
|
||||
if (options?.buttons?.length)
|
||||
return this.sendButtons(number, message, options.buttons)
|
||||
if (options?.media) return this.sendMedia(number, options.media)
|
||||
|
||||
@@ -4,18 +4,18 @@ const { tmpdir } = require('os')
|
||||
const http = require('http')
|
||||
const https = require('https')
|
||||
|
||||
const cleanNumber = (number, full = false) => {
|
||||
const wwebCleanNumber = (number, full = false) => {
|
||||
number = number.replace('@c.us', '')
|
||||
number = !full ? `${number}@c.us` : `${number}`
|
||||
return number
|
||||
}
|
||||
|
||||
const generateImage = (base64) => {
|
||||
const wwebGenerateImage = (base64) => {
|
||||
let qr_svg = qr.image(base64, { type: 'png', margin: 4 })
|
||||
qr_svg.pipe(createWriteStream(`${process.cwd()}/qr.svg`))
|
||||
qr_svg.pipe(createWriteStream(`${process.cwd()}/qr.png`))
|
||||
}
|
||||
|
||||
const isValidNumber = (rawNumber) => {
|
||||
const wwebIsValidNumber = (rawNumber) => {
|
||||
const regexGroup = /\@g.us\b/gm
|
||||
const exist = rawNumber.match(regexGroup)
|
||||
return !exist
|
||||
@@ -27,7 +27,7 @@ const isValidNumber = (rawNumber) => {
|
||||
* @param {*} url
|
||||
* @returns
|
||||
*/
|
||||
const downloadMedia = (url) => {
|
||||
const wwebDownloadMedia = (url) => {
|
||||
return new Promise((resolve, reject) => {
|
||||
const ext = url.split('.').pop()
|
||||
const checkProtocol = url.includes('https:')
|
||||
@@ -50,4 +50,9 @@ const downloadMedia = (url) => {
|
||||
})
|
||||
}
|
||||
|
||||
module.exports = { cleanNumber, generateImage, isValidNumber, downloadMedia }
|
||||
module.exports = {
|
||||
wwebCleanNumber,
|
||||
wwebGenerateImage,
|
||||
wwebIsValidNumber,
|
||||
wwebDownloadMedia,
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user