mirror of
https://github.com/cheveguerra/bot-whatsapp.git
synced 2026-04-17 19:26:23 +00:00
qr express
This commit is contained in:
9
app.js
9
app.js
@@ -8,6 +8,7 @@ const qrcode = require('qrcode-terminal');
|
||||
const { Client } = require('whatsapp-web.js');
|
||||
const mysqlConnection = require('./config/mysql')
|
||||
const { middlewareClient } = require('./middleware/client')
|
||||
const { generateImage } = require('./controllers/handle')
|
||||
const { connectionReady, connectionLost } = require('./controllers/connection')
|
||||
const { saveMedia } = require('./controllers/save')
|
||||
const { getMessages, responseMessages, bothResponse } = require('./controllers/flows')
|
||||
@@ -15,6 +16,7 @@ const { sendMedia, sendMessage, lastTrigger } = require('./controllers/send')
|
||||
|
||||
const app = express();
|
||||
app.use(express.json())
|
||||
app.use('/',require('./routes/web'))
|
||||
|
||||
const port = process.env.PORT || 3000
|
||||
const SESSION_FILE_PATH = './session.json';
|
||||
@@ -128,10 +130,11 @@ const withOutSession = () => {
|
||||
}
|
||||
});
|
||||
|
||||
client.on('qr', qr => {
|
||||
client.on('qr', qr => generateImage(qr, () => {
|
||||
qrcode.generate(qr, { small: true });
|
||||
});
|
||||
|
||||
console.log(`Ver QR http://localhost:${port}/qr`)
|
||||
}))
|
||||
|
||||
client.on('ready', () => {
|
||||
connectionReady()
|
||||
listenMessage()
|
||||
|
||||
@@ -1,6 +1,7 @@
|
||||
const http = require('http'); // or 'https' for https:// URLs
|
||||
const https = require('https'); // or 'https' for https:// URLs
|
||||
const fs = require('fs');
|
||||
const qr = require('qr-image')
|
||||
|
||||
|
||||
const cleanNumber = (number) => {
|
||||
@@ -14,10 +15,9 @@ const saveExternalFile = (url) => new Promise((resolve, reject) => {
|
||||
const checkProtocol = url.split('/').includes('https:');
|
||||
const handleHttp = checkProtocol ? https : http;
|
||||
const name = `${Date.now()}.${ext}`;
|
||||
const file = fs.createWriteStream(`./mediaSend/${name}`);
|
||||
const file = fs.createWriteStream(`${__dirname}/../mediaSend/${name}`);
|
||||
console.log(url)
|
||||
handleHttp.get(url, function(response) {
|
||||
console.log('aaaa')
|
||||
response.pipe(file);
|
||||
file.on('finish', function() {
|
||||
file.close(); // close() is async, call cb after close completes.
|
||||
@@ -30,4 +30,13 @@ const saveExternalFile = (url) => new Promise((resolve, reject) => {
|
||||
});
|
||||
});
|
||||
})
|
||||
module.exports = {cleanNumber, saveExternalFile}
|
||||
|
||||
const generateImage = (base64, cb = () => {}) => {
|
||||
let qr_svg = qr.image(base64, { type: 'svg', margin: 4 });
|
||||
qr_svg.pipe(require('fs').createWriteStream('./mediaSend/qr-code.svg'));
|
||||
console.log(`⚡ Recuerda que el QR se actualiza cada minuto ⚡'`);
|
||||
console.log(`⚡ Actualiza F5 el navegador para mantener el mejor QR⚡`);
|
||||
cb()
|
||||
}
|
||||
|
||||
module.exports = {cleanNumber, saveExternalFile, generateImage}
|
||||
@@ -1,3 +1,4 @@
|
||||
const fs = require('fs')
|
||||
const { sendMessage } = require('../controllers/send')
|
||||
|
||||
const sendMessagePost = (req, res) => {
|
||||
@@ -7,4 +8,9 @@ const sendMessagePost = (req, res) => {
|
||||
res.send({ status: 'Enviado!' })
|
||||
}
|
||||
|
||||
module.exports = { sendMessagePost }
|
||||
const getQr = (req, res) => {
|
||||
res.writeHead(200, { 'content-type': 'image/svg+xml' });
|
||||
fs.createReadStream(`${__dirname}/../mediaSend/qr-code.svg`).pipe(res);
|
||||
}
|
||||
|
||||
module.exports = { sendMessagePost, getQr }
|
||||
5
package-lock.json
generated
5
package-lock.json
generated
@@ -3095,6 +3095,11 @@
|
||||
}
|
||||
}
|
||||
},
|
||||
"qr-image": {
|
||||
"version": "3.2.0",
|
||||
"resolved": "https://registry.npmjs.org/qr-image/-/qr-image-3.2.0.tgz",
|
||||
"integrity": "sha1-n6gpW+rlDEoUnPn5CaHbRkqGcug="
|
||||
},
|
||||
"qrcode-terminal": {
|
||||
"version": "0.12.0",
|
||||
"resolved": "https://registry.npmjs.org/qrcode-terminal/-/qrcode-terminal-0.12.0.tgz",
|
||||
|
||||
@@ -20,6 +20,7 @@
|
||||
"moment": "^2.29.1",
|
||||
"mysql": "^2.18.1",
|
||||
"nanoid": "^3.1.32",
|
||||
"qr-image": "^3.2.0",
|
||||
"qrcode-terminal": "^0.12.0",
|
||||
"socket.io": "^4.4.1",
|
||||
"whatsapp-web.js": "^1.15.3",
|
||||
|
||||
7
routes/web.js
Normal file
7
routes/web.js
Normal file
@@ -0,0 +1,7 @@
|
||||
const express = require('express');
|
||||
const router = express.Router()
|
||||
const { getQr } = require('../controllers/web')
|
||||
|
||||
router.use('/qr', getQr)
|
||||
|
||||
module.exports = router
|
||||
Reference in New Issue
Block a user