mirror of
https://github.com/cheveguerra/bot-whatsapp.git
synced 2026-04-20 12:39:24 +00:00
fix(provider): 🐛 qr code accurate
fix(provider): 🐛 qr code accurate
This commit is contained in:
@@ -11,6 +11,7 @@
|
|||||||
],
|
],
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
"@bot-whatsapp/bot": "*",
|
"@bot-whatsapp/bot": "*",
|
||||||
|
"combine-image": "^1.0.3",
|
||||||
"qr-image": "^3.2.0"
|
"qr-image": "^3.2.0"
|
||||||
},
|
},
|
||||||
"exports": {
|
"exports": {
|
||||||
|
|||||||
@@ -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) {
|
||||||
|
|||||||
@@ -1,4 +1,5 @@
|
|||||||
const { createWriteStream } = require('fs')
|
const { createWriteStream } = require('fs')
|
||||||
|
const combineImage = require('combine-image')
|
||||||
const qr = require('qr-image')
|
const qr = require('qr-image')
|
||||||
|
|
||||||
const baileyCleanNumber = (number, full = false) => {
|
const baileyCleanNumber = (number, full = false) => {
|
||||||
@@ -7,9 +8,28 @@ const baileyCleanNumber = (number, full = false) => {
|
|||||||
return number
|
return number
|
||||||
}
|
}
|
||||||
|
|
||||||
const baileyGenerateImage = (base64) => {
|
/**
|
||||||
|
* Hace promesa el write
|
||||||
|
* @param {*} base64
|
||||||
|
*/
|
||||||
|
const baileyGenerateImage = async (base64) => {
|
||||||
|
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(`${process.cwd()}/qr.png`))
|
|
||||||
|
const writeFilePromise = () =>
|
||||||
|
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) => {
|
||||||
|
|||||||
@@ -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)
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
|||||||
@@ -1,4 +1,5 @@
|
|||||||
const { writeFile } = require('fs')
|
const { writeFile } = require('fs')
|
||||||
|
const combineImage = require('combine-image')
|
||||||
|
|
||||||
const venomCleanNumber = (number, full = false) => {
|
const venomCleanNumber = (number, full = false) => {
|
||||||
number = number.replace('@c.us', '')
|
number = number.replace('@c.us', '')
|
||||||
@@ -6,7 +7,8 @@ const venomCleanNumber = (number, full = false) => {
|
|||||||
return number
|
return number
|
||||||
}
|
}
|
||||||
|
|
||||||
const venomGenerateImage = (base) => {
|
const venomGenerateImage = async (base) => {
|
||||||
|
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) {
|
||||||
return new Error('Invalid input string')
|
return new Error('Invalid input string')
|
||||||
@@ -16,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(
|
new Promise((resolve, reject) => {
|
||||||
`${process.cwd()}/qr.png`,
|
writeFile(PATH_QR, response['data'], 'binary', (err) => {
|
||||||
imageBuffer['data'],
|
if (err != null) reject('ERROR_QR_GENERATE')
|
||||||
'binary',
|
resolve(true)
|
||||||
(err) => {
|
})
|
||||||
if (err != null) throw new Error('ERROR_QR_GENERATE')
|
})
|
||||||
return
|
|
||||||
}
|
await writeFilePromise()
|
||||||
)
|
|
||||||
|
const cleanImage = await combineImage([PATH_QR], {
|
||||||
|
margin: 15,
|
||||||
|
color: 0xffffffff,
|
||||||
|
})
|
||||||
|
cleanImage.write(PATH_QR)
|
||||||
}
|
}
|
||||||
|
|
||||||
const venomisValidNumber = (rawNumber) => {
|
const venomisValidNumber = (rawNumber) => {
|
||||||
|
|||||||
@@ -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)
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
|
|||||||
@@ -1,4 +1,5 @@
|
|||||||
const { createWriteStream } = require('fs')
|
const { createWriteStream } = require('fs')
|
||||||
|
const combineImage = require('combine-image')
|
||||||
const qr = require('qr-image')
|
const qr = require('qr-image')
|
||||||
const { tmpdir } = require('os')
|
const { tmpdir } = require('os')
|
||||||
const http = require('http')
|
const http = require('http')
|
||||||
@@ -10,9 +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`
|
||||||
let qr_svg = qr.image(base64, { type: 'png', margin: 4 })
|
let qr_svg = qr.image(base64, { type: 'png', margin: 4 })
|
||||||
qr_svg.pipe(createWriteStream(`${process.cwd()}/qr.png`))
|
|
||||||
|
const writeFilePromise = () =>
|
||||||
|
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) => {
|
||||||
|
|||||||
Reference in New Issue
Block a user