Skip to content

Commit

Permalink
fix(provider): ⚡ fix qr generate
Browse files Browse the repository at this point in the history
  • Loading branch information
leifermendez committed Feb 26, 2023
2 parents 1f98177 + 2c3b6a1 commit dae14d1
Show file tree
Hide file tree
Showing 2 changed files with 17 additions and 14 deletions.
6 changes: 3 additions & 3 deletions packages/provider/src/wppconnect/index.js
Original file line number Diff line number Diff line change
Expand Up @@ -31,17 +31,17 @@ class WPPConnectProviderClass extends ProviderClass {
const name = this.globalVendorArgs.name
const session = await create({
session: name,
catchQR: (qrCode, { attempt }) => {
catchQR: (base64Qrimg, { attempt }) => {
if (attempt == 5) throw new Error()

this.emit('require_action', {
instructions: [
`Debe escanear el código QR 👌 ${this.globalVendorArgs.name}.qr.png`,
`Debes escanear el QR Code para iniciar ${this.globalVendorArgs.name}.qr.png`,
`Recuerde que el código QR se actualiza cada minuto `,
`¿Necesita ayuda? https://link.codigoencasa.com/DISCORD`,
],
})
WppConnectGenerateImage(qrCode, `${this.globalVendorArgs.name}.qr.png`)
WppConnectGenerateImage(base64Qrimg, `${this.globalVendorArgs.name}.qr.png`)
},
})

Expand Down
25 changes: 14 additions & 11 deletions packages/provider/src/wppconnect/utils.js
Original file line number Diff line number Diff line change
@@ -1,26 +1,29 @@
const { createWriteStream } = require('fs')
const { writeFile, createWriteStream } = require('fs')
const { cleanImage } = require('../utils/cleanImage')
const qr = require('qr-image')

const WppConnectCleanNumber = (number, full = false) => {
number = number.replace('@s.whatsapp.net', '')
number = !full ? `${number}@s.whatsapp.net` : `${number}`
return number
}

/**
* Hace promesa el write
* @param {*} base64
*/
const WppConnectGenerateImage = async (base64, name = 'qr.png') => {
const WppConnectGenerateImage = async (base, name = 'qr.png') => {
const PATH_QR = `${process.cwd()}/${name}`
let qr_svg = qr.image(base64, { type: 'png', margin: 4 })
const matches = base.match(/^data:([A-Za-z-+\/]+);base64,(.+)$/)
if (matches.length !== 3) {
return new Error('Invalid input string')
}

let response = {}
response.type = matches[1]
response.data = new Buffer.from(matches[2], 'base64')

const writeFilePromise = () =>
new Promise((resolve, reject) => {
const file = qr_svg.pipe(createWriteStream(PATH_QR))
file.on('finish', () => resolve(true))
file.on('error', reject)
writeFile(PATH_QR, response['data'], 'binary', (err) => {
if (err != null) reject('ERROR_QR_GENERATE')
resolve(true)
})
})

await writeFilePromise()
Expand Down

0 comments on commit dae14d1

Please sign in to comment.