Merge pull request #418 from codigoencasa/next-release

Next release
This commit is contained in:
Leifer Mendez
2023-01-10 11:07:31 +01:00
committed by GitHub
11 changed files with 59 additions and 43 deletions

View File

@@ -1,6 +1,6 @@
{
"name": "@bot-whatsapp/bot",
"version": "0.0.45-alpha.0",
"version": "0.0.49-alpha.0",
"description": "",
"main": "./lib/bundle.bot.cjs",
"scripts": {

View File

@@ -1,6 +1,6 @@
{
"name": "@bot-whatsapp/cli",
"version": "0.0.52-alpha.0",
"version": "0.0.56-alpha.0",
"description": "",
"main": "index.js",
"devDependencies": {

View File

@@ -1,6 +1,6 @@
{
"name": "create-bot-whatsapp",
"version": "0.0.63-alpha.0",
"version": "0.0.67-alpha.0",
"description": "",
"main": "./lib/bundle.create-bot-whatsapp.cjs",
"files": [

View File

@@ -1,6 +1,6 @@
{
"name": "@bot-whatsapp/database",
"version": "0.0.44-alpha.0",
"version": "0.0.48-alpha.0",
"description": "Esto es el conector a mysql, pg, mongo",
"main": "./lib/mock/index.cjs",
"keywords": [],

View File

@@ -1,6 +1,6 @@
{
"name": "@bot-whatsapp/portal",
"version": "0.0.3-alpha.0",
"version": "0.0.6-alpha.0",
"description": "Portal WEB para escanear QR",
"main": "./lib/portal.http.cjs",
"scripts": {

View File

@@ -1,10 +1,10 @@
const { join } = require('path')
const { createReadStream, existsSync } = require('fs')
const { bgYellow, cyan } = require('kleur')
const { bgYellow, cyan, yellow } = require('kleur')
const polka = require('polka')
const HTTP_PORT = process.env.PORT || 3000
const QR_FILE = process.env.QR_FILE ?? 'qr.png'
const QR_FILE = process.env.QR_FILE ?? 'bot'
const PUBLIC_URL =
process.env.PUBLIC_URL ??
process.env.RAILWAY_STATIC_URL ??
@@ -23,18 +23,33 @@ const start = (args) => {
const injectArgs = {
port: HTTP_PORT,
publicSite: PUBLIC_URL,
qrFile: QR_FILE,
name: QR_FILE,
...args,
}
const { port, publicSite, qrFile } = injectArgs
const { port, publicSite, name } = injectArgs
const banner = () => {
console.log(``)
console.log(bgYellow(`🚩 ESCANEAR QR 🚩`))
console.log(cyan(`Existen varias maneras de escanear el QR code`))
console.log(
cyan(`- Tambien puedes visitar `),
yellow(`${publicSite}:${port}`)
)
console.log(
cyan(`- Se ha creado un archivo que finaliza `),
yellow('qr.png')
)
console.log(``)
}
polka()
.use(serve)
.get(qrFile, (_, res) => {
.get('qr.png', (_, res) => {
const qrSource = [
join(process.cwd(), qrFile),
join(__dirname, '..', qrFile),
join(__dirname, qrFile),
join(process.cwd(), `${name}.qr.png`),
join(__dirname, '..', `${name}.qr.png`),
join(__dirname, `${name}.qr.png`),
].find((i) => existsSync(i))
const qrMark = [
@@ -42,17 +57,11 @@ const start = (args) => {
join(__dirname, '..', 'dist', 'water-mark.png'),
].find((i) => existsSync(i))
const fileStream = createReadStream(qrSource ?? qrMark)
res.writeHead(200, { 'Content-Type': 'image/png' })
fileStream.pipe(res)
})
.listen(port, () => {
console.log(``)
console.log(bgYellow(`🚩 ESCANEAR QR 🚩`))
console.log(cyan(`Existen varias maneras de escanear el QR code`))
console.log(cyan(`- Se ha creado un archivo /qr.png`))
console.log(cyan(`- Tambien puedes visitar ${publicSite}:${port}`))
console.log(``)
})
.listen(port, () => banner())
}
module.exports = start

View File

@@ -4,7 +4,6 @@ import {
useStore,
useStylesScoped$,
} from '@builder.io/qwik'
import { useLocation } from '@builder.io/qwik-city'
import style from './qr.css?inline'
export const QR = component$(() => {
@@ -19,15 +18,12 @@ export const QR = component$(() => {
}, 800)
})
const location = useLocation()
const qrImage = location.query?.qr ?? 'qr.png'
return (
<div>
<img
width={350}
height={350}
src={qrImage + '?time=' + state.count}
src={'qr.png?time=' + state.count}
alt="QR"
/>
</div>

View File

@@ -1,6 +1,6 @@
{
"name": "@bot-whatsapp/provider",
"version": "0.0.50-alpha.0",
"version": "0.0.54-alpha.0",
"description": "Esto es el conector a Twilio, Meta, etc...",
"main": "./lib/mock/index.cjs",
"keywords": [],

View File

@@ -24,16 +24,13 @@ const logger = new Console({
stdout: createWriteStream(`${process.cwd()}/baileys.log`),
})
const NAME_DIR_SESSION = `sessions`
const PATH_BASE = join(process.cwd(), NAME_DIR_SESSION)
/**
* ⚙️ BaileysProvider: Es una clase tipo adaptor
* que extiende clases de ProviderClass (la cual es como interfaz para sber que funciones rqueridas)
* https://github.com/adiwajshing/Baileys
*/
class BaileysProvider extends ProviderClass {
globalVendorArgs = { qrFile: 'qr.png' }
globalVendorArgs = { name: `bot` }
vendor
saveCredsGlobal = null
constructor(args) {
@@ -46,6 +43,7 @@ class BaileysProvider extends ProviderClass {
* Iniciar todo Bailey
*/
initBailey = async () => {
const NAME_DIR_SESSION = `${this.globalVendorArgs.name}_sessions`
const { state, saveCreds } = await useMultiFileAuthState(
NAME_DIR_SESSION
)
@@ -72,6 +70,7 @@ class BaileysProvider extends ProviderClass {
}
if (statusCode === DisconnectReason.loggedOut) {
const PATH_BASE = join(process.cwd(), NAME_DIR_SESSION)
rimraf(PATH_BASE, (err) => {
if (err) return
})
@@ -90,12 +89,15 @@ class BaileysProvider extends ProviderClass {
if (qr) {
this.emit('require_action', {
instructions: [
`Debes escanear el QR Code para iniciar session reivsa qr.png`,
`Debes escanear el QR Code para iniciar ${this.globalVendorArgs.name}.qr.png`,
`Recuerda que el QR se actualiza cada minuto `,
`Necesitas ayuda: https://link.codigoencasa.com/DISCORD`,
],
})
await baileyGenerateImage(qr, this.globalVendorArgs.qrFile)
await baileyGenerateImage(
qr,
`${this.globalVendorArgs.name}.qr.png`
)
}
})

View File

@@ -20,7 +20,7 @@ const logger = new Console({
* https://github.com/orkestral/venom
*/
class VenomProvider extends ProviderClass {
globalVendorArgs = { qrFile: 'qr.png' }
globalVendorArgs = { name: `bot` }
vendor
constructor(args) {
super()
@@ -32,15 +32,19 @@ class VenomProvider extends ProviderClass {
* Iniciamos el Proveedor Venom
*/
init = async () => {
const NAME_DIR_SESSION = `${this.globalVendorArgs.name}_sessions`
try {
const client = await venom.create(
{
session: 'session-base',
session: NAME_DIR_SESSION,
multidevice: true,
disableSpins: true,
disableWelcome: true,
logger,
logQR: false,
},
(base) => this.generateQr(base),
undefined,
{ logQR: false }
undefined
)
this.vendor = client
} catch (e) {
@@ -63,12 +67,12 @@ class VenomProvider extends ProviderClass {
console.clear()
this.emit('require_action', {
instructions: [
`Debes escanear el QR Code para iniciar session reivsa qr.png`,
`Debes escanear el QR Code para iniciar ${this.globalVendorArgs.name}.qr.png`,
`Recuerda que el QR se actualiza cada minuto `,
`Necesitas ayuda: https://link.codigoencasa.com/DISCORD`,
],
})
await venomGenerateImage(qr)
await venomGenerateImage(qr, `${this.globalVendorArgs.name}.qr.png`)
}
/**

View File

@@ -19,13 +19,15 @@ const logger = new Console({
* https://github.com/pedroslopez/whatsapp-web.js
*/
class WebWhatsappProvider extends ProviderClass {
globalVendorArgs = { qrFile: 'qr.png' }
globalVendorArgs = { name: `bot` }
vendor
constructor(args) {
super()
this.globalVendorArgs = { ...this.globalVendorArgs, ...args }
this.vendor = new Client({
authStrategy: new LocalAuth(),
authStrategy: new LocalAuth({
clientId: `${this.globalVendorArgs.name}_sessions`,
}),
puppeteer: {
headless: true,
args: [
@@ -70,12 +72,15 @@ class WebWhatsappProvider extends ProviderClass {
func: async (qr) => {
this.emit('require_action', {
instructions: [
`Debes escanear el QR Code para iniciar session reivsa qr.png`,
`Debes escanear el QR Code para iniciar ${this.globalVendorArgs.name}.qr.png`,
`Recuerda que el QR se actualiza cada minuto `,
`Necesitas ayuda: https://link.codigoencasa.com/DISCORD`,
],
})
await wwebGenerateImage(qr)
await wwebGenerateImage(
qr,
`${this.globalVendorArgs.name}.qr.png`
)
},
},
{