fix(provider): 🐛 qr code accurate

This commit is contained in:
Leifer Mendez
2022-12-17 14:01:32 +01:00
parent 663641a1b8
commit 91bfdc4630
6 changed files with 50 additions and 23 deletions

View File

@@ -70,7 +70,7 @@ class BaileysProvider extends ProviderClass {
`Necesitas ayuda: https://link.codigoencasa.com/DISCORD`, `Necesitas ayuda: https://link.codigoencasa.com/DISCORD`,
], ],
}) })
baileyGenerateImage(qr) await baileyGenerateImage(qr)
} }
if (lastDisconnect?.error) { if (lastDisconnect?.error) {

View File

@@ -12,13 +12,24 @@ const baileyCleanNumber = (number, full = false) => {
* Hace promesa el write * Hace promesa el write
* @param {*} base64 * @param {*} base64
*/ */
const baileyGenerateImage = (base64) => { const baileyGenerateImage = async (base64) => {
const PATH_QR = `${process.cwd()}/qr.png` const PATH_QR = `${process.cwd()}/qr.png`
let qr_svg = qr.image(base64, { type: 'png', margin: 4 }) let qr_svg = qr.image(base64, { type: 'png', margin: 4 })
qr_svg.pipe(createWriteStream(PATH_QR))
combineImage([PATH_QR], { margin: 15, color: 0xffffffff }).then((img) => { const writeFilePromise = () =>
img.write(PATH_QR) new Promise((resolve, reject) => {
const file = qr_svg.pipe(createWriteStream(PATH_QR))
file.on('finish', () => resolve(true))
file.on('error', reject)
})
await writeFilePromise()
const cleanImage = await combineImage([PATH_QR], {
margin: 15,
color: 0xffffffff,
}) })
cleanImage.write(PATH_QR)
} }
const baileyIsValidNumber = (rawNumber) => { const baileyIsValidNumber = (rawNumber) => {

View File

@@ -49,7 +49,7 @@ class VenomProvider extends ProviderClass {
/** /**
* Generamos QR Code pra escanear con el Whatsapp * Generamos QR Code pra escanear con el Whatsapp
*/ */
generateQr = (qr) => { generateQr = async (qr) => {
console.clear() console.clear()
this.emit('require_action', { this.emit('require_action', {
instructions: [ instructions: [
@@ -58,7 +58,7 @@ class VenomProvider extends ProviderClass {
`Necesitas ayuda: https://link.codigoencasa.com/DISCORD`, `Necesitas ayuda: https://link.codigoencasa.com/DISCORD`,
], ],
}) })
venomGenerateImage(qr) await venomGenerateImage(qr)
} }
/** /**

View File

@@ -7,7 +7,7 @@ const venomCleanNumber = (number, full = false) => {
return number return number
} }
const venomGenerateImage = (base) => { const venomGenerateImage = async (base) => {
const PATH_QR = `${process.cwd()}/qr.png` const PATH_QR = `${process.cwd()}/qr.png`
const matches = base.match(/^data:([A-Za-z-+\/]+);base64,(.+)$/) const matches = base.match(/^data:([A-Za-z-+\/]+);base64,(.+)$/)
if (matches.length !== 3) { if (matches.length !== 3) {
@@ -18,16 +18,21 @@ const venomGenerateImage = (base) => {
response.type = matches[1] response.type = matches[1]
response.data = new Buffer.from(matches[2], 'base64') response.data = new Buffer.from(matches[2], 'base64')
var imageBuffer = response const writeFilePromise = () =>
writeFile(PATH_QR, imageBuffer['data'], 'binary', (err) => { new Promise((resolve, reject) => {
if (err != null) throw new Error('ERROR_QR_GENERATE') writeFile(PATH_QR, response['data'], 'binary', (err) => {
combineImage([PATH_QR], { margin: 15, color: 0xffffffff }).then( if (err != null) reject('ERROR_QR_GENERATE')
(img) => { resolve(true)
img.write(PATH_QR) })
} })
)
return await writeFilePromise()
const cleanImage = await combineImage([PATH_QR], {
margin: 15,
color: 0xffffffff,
}) })
cleanImage.write(PATH_QR)
} }
const venomisValidNumber = (rawNumber) => { const venomisValidNumber = (rawNumber) => {

View File

@@ -57,7 +57,7 @@ class WebWhatsappProvider extends ProviderClass {
}, },
{ {
event: 'qr', event: 'qr',
func: (qr) => { func: async (qr) => {
this.emit('require_action', { this.emit('require_action', {
instructions: [ instructions: [
`Debes escanear el QR Code para iniciar session reivsa qr.png`, `Debes escanear el QR Code para iniciar session reivsa qr.png`,
@@ -65,7 +65,7 @@ class WebWhatsappProvider extends ProviderClass {
`Necesitas ayuda: https://link.codigoencasa.com/DISCORD`, `Necesitas ayuda: https://link.codigoencasa.com/DISCORD`,
], ],
}) })
wwebGenerateImage(qr) await wwebGenerateImage(qr)
}, },
}, },
{ {

View File

@@ -11,13 +11,24 @@ const wwebCleanNumber = (number, full = false) => {
return number return number
} }
const wwebGenerateImage = (base64) => { const wwebGenerateImage = async (base64) => {
const PATH_QR = `${process.cwd()}/qr.png` const PATH_QR = `${process.cwd()}/qr.png`
let qr_svg = qr.image(base64, { type: 'png', margin: 4 }) let qr_svg = qr.image(base64, { type: 'png', margin: 4 })
qr_svg.pipe(createWriteStream(PATH_QR))
combineImage([PATH_QR], { margin: 15, color: 0xffffffff }).then((img) => { const writeFilePromise = () =>
img.write(PATH_QR) new Promise((resolve, reject) => {
const file = qr_svg.pipe(createWriteStream(PATH_QR))
file.on('finish', () => resolve(true))
file.on('error', reject)
})
await writeFilePromise()
const cleanImage = await combineImage([PATH_QR], {
margin: 15,
color: 0xffffffff,
}) })
cleanImage.write(PATH_QR)
} }
const wwebIsValidNumber = (rawNumber) => { const wwebIsValidNumber = (rawNumber) => {