fix(adapter): 🔥 improvement baileys

This commit is contained in:
Leifer Mendez
2022-12-14 18:44:50 +01:00
parent 4e0fcbd834
commit 2d5ac2664b
8 changed files with 189 additions and 62 deletions

View File

@@ -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)

View File

@@ -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,
}