mirror of
https://github.com/cheveguerra/bot-whatsapp.git
synced 2026-04-20 04:29:16 +00:00
qr express
This commit is contained in:
7
app.js
7
app.js
@@ -8,6 +8,7 @@ const qrcode = require('qrcode-terminal');
|
|||||||
const { Client } = require('whatsapp-web.js');
|
const { Client } = require('whatsapp-web.js');
|
||||||
const mysqlConnection = require('./config/mysql')
|
const mysqlConnection = require('./config/mysql')
|
||||||
const { middlewareClient } = require('./middleware/client')
|
const { middlewareClient } = require('./middleware/client')
|
||||||
|
const { generateImage } = require('./controllers/handle')
|
||||||
const { connectionReady, connectionLost } = require('./controllers/connection')
|
const { connectionReady, connectionLost } = require('./controllers/connection')
|
||||||
const { saveMedia } = require('./controllers/save')
|
const { saveMedia } = require('./controllers/save')
|
||||||
const { getMessages, responseMessages, bothResponse } = require('./controllers/flows')
|
const { getMessages, responseMessages, bothResponse } = require('./controllers/flows')
|
||||||
@@ -15,6 +16,7 @@ const { sendMedia, sendMessage, lastTrigger } = require('./controllers/send')
|
|||||||
|
|
||||||
const app = express();
|
const app = express();
|
||||||
app.use(express.json())
|
app.use(express.json())
|
||||||
|
app.use('/',require('./routes/web'))
|
||||||
|
|
||||||
const port = process.env.PORT || 3000
|
const port = process.env.PORT || 3000
|
||||||
const SESSION_FILE_PATH = './session.json';
|
const SESSION_FILE_PATH = './session.json';
|
||||||
@@ -128,9 +130,10 @@ const withOutSession = () => {
|
|||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
|
||||||
client.on('qr', qr => {
|
client.on('qr', qr => generateImage(qr, () => {
|
||||||
qrcode.generate(qr, { small: true });
|
qrcode.generate(qr, { small: true });
|
||||||
});
|
console.log(`Ver QR http://localhost:${port}/qr`)
|
||||||
|
}))
|
||||||
|
|
||||||
client.on('ready', () => {
|
client.on('ready', () => {
|
||||||
connectionReady()
|
connectionReady()
|
||||||
|
|||||||
@@ -1,6 +1,7 @@
|
|||||||
const http = require('http'); // or 'https' for https:// URLs
|
const http = require('http'); // or 'https' for https:// URLs
|
||||||
const https = require('https'); // or 'https' for https:// URLs
|
const https = require('https'); // or 'https' for https:// URLs
|
||||||
const fs = require('fs');
|
const fs = require('fs');
|
||||||
|
const qr = require('qr-image')
|
||||||
|
|
||||||
|
|
||||||
const cleanNumber = (number) => {
|
const cleanNumber = (number) => {
|
||||||
@@ -14,10 +15,9 @@ const saveExternalFile = (url) => new Promise((resolve, reject) => {
|
|||||||
const checkProtocol = url.split('/').includes('https:');
|
const checkProtocol = url.split('/').includes('https:');
|
||||||
const handleHttp = checkProtocol ? https : http;
|
const handleHttp = checkProtocol ? https : http;
|
||||||
const name = `${Date.now()}.${ext}`;
|
const name = `${Date.now()}.${ext}`;
|
||||||
const file = fs.createWriteStream(`./mediaSend/${name}`);
|
const file = fs.createWriteStream(`${__dirname}/../mediaSend/${name}`);
|
||||||
console.log(url)
|
console.log(url)
|
||||||
handleHttp.get(url, function(response) {
|
handleHttp.get(url, function(response) {
|
||||||
console.log('aaaa')
|
|
||||||
response.pipe(file);
|
response.pipe(file);
|
||||||
file.on('finish', function() {
|
file.on('finish', function() {
|
||||||
file.close(); // close() is async, call cb after close completes.
|
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 { sendMessage } = require('../controllers/send')
|
||||||
|
|
||||||
const sendMessagePost = (req, res) => {
|
const sendMessagePost = (req, res) => {
|
||||||
@@ -7,4 +8,9 @@ const sendMessagePost = (req, res) => {
|
|||||||
res.send({ status: 'Enviado!' })
|
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": {
|
"qrcode-terminal": {
|
||||||
"version": "0.12.0",
|
"version": "0.12.0",
|
||||||
"resolved": "https://registry.npmjs.org/qrcode-terminal/-/qrcode-terminal-0.12.0.tgz",
|
"resolved": "https://registry.npmjs.org/qrcode-terminal/-/qrcode-terminal-0.12.0.tgz",
|
||||||
|
|||||||
@@ -20,6 +20,7 @@
|
|||||||
"moment": "^2.29.1",
|
"moment": "^2.29.1",
|
||||||
"mysql": "^2.18.1",
|
"mysql": "^2.18.1",
|
||||||
"nanoid": "^3.1.32",
|
"nanoid": "^3.1.32",
|
||||||
|
"qr-image": "^3.2.0",
|
||||||
"qrcode-terminal": "^0.12.0",
|
"qrcode-terminal": "^0.12.0",
|
||||||
"socket.io": "^4.4.1",
|
"socket.io": "^4.4.1",
|
||||||
"whatsapp-web.js": "^1.15.3",
|
"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