mirror of
https://github.com/cheveguerra/bot-whatsapp.git
synced 2026-04-17 19:26:23 +00:00
fix(provider): 🐛 create static site html qr
This commit is contained in:
@@ -11,7 +11,9 @@
|
||||
],
|
||||
"dependencies": {
|
||||
"@bot-whatsapp/bot": "*",
|
||||
"qr-image": "^3.2.0"
|
||||
"body-parser": "^1.20.1",
|
||||
"polka": "^0.5.2",
|
||||
"serve-static": "^1.13.1"
|
||||
},
|
||||
"exports": {
|
||||
"./mock": "./lib/mock/index.cjs",
|
||||
|
||||
@@ -1,8 +1,16 @@
|
||||
const banner = require('../../config/banner.rollup.json')
|
||||
const { join } = require('path')
|
||||
const { default: rollupPluginHTML } = require('@web/rollup-plugin-html')
|
||||
const commonjs = require('@rollup/plugin-commonjs')
|
||||
|
||||
module.exports = [
|
||||
{
|
||||
input: join(__dirname, 'src', 'server', 'pages', 'index.html'),
|
||||
output: {
|
||||
dir: join(__dirname, 'lib', 'server', 'pages'),
|
||||
},
|
||||
plugins: [rollupPluginHTML()],
|
||||
},
|
||||
{
|
||||
input: join(__dirname, 'src', 'web-whatsapp', 'index.js'),
|
||||
output: {
|
||||
|
||||
@@ -1,4 +1,5 @@
|
||||
const { ProviderClass } = require('@bot-whatsapp/bot')
|
||||
const { createHttpServer } = require('../server')
|
||||
const pino = require('pino')
|
||||
const mime = require('mime-types')
|
||||
const fs = require('fs')
|
||||
@@ -40,7 +41,10 @@ class BaileysProvider extends ProviderClass {
|
||||
this.vendor.ev.on(
|
||||
'connection.update',
|
||||
async ({ qr, connection, lastDisconnect }) => {
|
||||
if (qr) baileyGenerateImage(qr)
|
||||
if (qr) {
|
||||
baileyGenerateImage(qr)
|
||||
createHttpServer()
|
||||
}
|
||||
if (connection === 'open') this.emit('ready', true)
|
||||
if (lastDisconnect?.error) {
|
||||
saveCreds()
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
const { createWriteStream } = require('fs')
|
||||
const { createWriteStream, existsSync } = require('fs')
|
||||
const qr = require('qr-image')
|
||||
|
||||
const baileyCleanNumber = (number, full = false) => {
|
||||
|
||||
12
packages/provider/src/server/index.js
Normal file
12
packages/provider/src/server/index.js
Normal file
@@ -0,0 +1,12 @@
|
||||
const ProviderHTTPServer = require('./providerhttp.class')
|
||||
|
||||
/**
|
||||
* Instanciamos clase de Server
|
||||
* podriamos pasar port?
|
||||
* @returns
|
||||
*/
|
||||
const createHttpServer = () => {
|
||||
return new ProviderHTTPServer().start()
|
||||
}
|
||||
|
||||
module.exports = { createHttpServer }
|
||||
25
packages/provider/src/server/pages/index.html
Normal file
25
packages/provider/src/server/pages/index.html
Normal file
@@ -0,0 +1,25 @@
|
||||
<!DOCTYPE html>
|
||||
<html lang="en">
|
||||
<head>
|
||||
<meta charset="UTF-8" />
|
||||
<title>Sample Site</title>
|
||||
<link
|
||||
rel="stylesheet"
|
||||
href="https://stackpath.bootstrapcdn.com/bootstrap/4.3.1/css/bootstrap.min.css"
|
||||
integrity="sha384-ggOyR0iXCbMQv3Xipma34MD+dH/1fQ784/j6cY/iJTQUOhcWr7x9JvoRxT2MZw1T"
|
||||
crossorigin="anonymous"
|
||||
/>
|
||||
<style>
|
||||
body {
|
||||
padding-top: 50px;
|
||||
}
|
||||
</style>
|
||||
</head>
|
||||
<body>
|
||||
<div class="container">
|
||||
<div class="jumbotron">
|
||||
<h1>res.sendFile() Works!</h1>
|
||||
</div>
|
||||
</div>
|
||||
</body>
|
||||
</html>
|
||||
56
packages/provider/src/server/providerhttp.class.js
Normal file
56
packages/provider/src/server/providerhttp.class.js
Normal file
@@ -0,0 +1,56 @@
|
||||
const polka = require('polka')
|
||||
const { existsSync } = require('fs')
|
||||
const { join } = require('path')
|
||||
|
||||
/**
|
||||
* Servidor HTTP para exponder rutas (endpoints)
|
||||
*/
|
||||
class ProviderHTTPServer {
|
||||
port = 4000
|
||||
constructor() {}
|
||||
|
||||
/**
|
||||
* Controlador para exponer la pagina de QR para escanear
|
||||
* GET http://localhost:4000/qr
|
||||
* @param {*} _
|
||||
* @param {*} res
|
||||
*/
|
||||
qrController = (_, res) => {
|
||||
try {
|
||||
res.end('OK')
|
||||
} catch (e) {
|
||||
res.end('ERROR_QR_CONTROLLER')
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Iniciar Server
|
||||
* @returns
|
||||
*/
|
||||
start = () => {
|
||||
try {
|
||||
const paths = [
|
||||
join(__dirname, 'server', 'pages'),
|
||||
join(__dirname, '..', 'server', 'pages'),
|
||||
]
|
||||
const indexPath = paths.find((i) => existsSync(i))
|
||||
const serve = require('serve-static')(indexPath)
|
||||
|
||||
polka()
|
||||
.use(serve)
|
||||
.get('/qr', this.qrController)
|
||||
.listen(this.port, () => {
|
||||
console.log(``)
|
||||
console.log(
|
||||
`[BOT Server]: Visita http://localhost:${this.port}/qr`
|
||||
)
|
||||
console.log(``)
|
||||
})
|
||||
return Promise.resolve()
|
||||
} catch (e) {
|
||||
return Promise.reject()
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
module.exports = ProviderHTTPServer
|
||||
@@ -1,4 +1,5 @@
|
||||
const { ProviderClass } = require('@bot-whatsapp/bot')
|
||||
const { createHttpServer } = require('../server')
|
||||
const venom = require('venom-bot')
|
||||
const {
|
||||
venomCleanNumber,
|
||||
@@ -59,6 +60,7 @@ class VenomProvider extends ProviderClass {
|
||||
],
|
||||
})
|
||||
venomGenerateImage(qr)
|
||||
createHttpServer()
|
||||
}
|
||||
|
||||
/**
|
||||
|
||||
Reference in New Issue
Block a user