diff --git a/.gitignore b/.gitignore index 2a3fcb7..721d12c 100644 --- a/.gitignore +++ b/.gitignore @@ -14,6 +14,10 @@ mediaSend/* !mediaSend/nota-de-voz.mp3 .env .wwebjs_auth +/session +/session/* +/tokens +/tokens/* packages/cli/config.json config.json .yarnrc.yml diff --git a/packages/bot/package.json b/packages/bot/package.json index cf9f3e0..77cb142 100644 --- a/packages/bot/package.json +++ b/packages/bot/package.json @@ -1,6 +1,6 @@ { "name": "@bot-whatsapp/bot", - "version": "0.0.44-alpha.0", + "version": "0.0.45-alpha.0", "description": "", "main": "./lib/bundle.bot.cjs", "scripts": { diff --git a/packages/cli/package.json b/packages/cli/package.json index 0279c4d..04118d7 100644 --- a/packages/cli/package.json +++ b/packages/cli/package.json @@ -1,6 +1,6 @@ { "name": "@bot-whatsapp/cli", - "version": "0.0.51-alpha.0", + "version": "0.0.52-alpha.0", "description": "", "main": "index.js", "devDependencies": { diff --git a/packages/create-bot-whatsapp/package.json b/packages/create-bot-whatsapp/package.json index 5dce363..bb19123 100644 --- a/packages/create-bot-whatsapp/package.json +++ b/packages/create-bot-whatsapp/package.json @@ -1,6 +1,6 @@ { "name": "create-bot-whatsapp", - "version": "0.0.62-alpha.0", + "version": "0.0.63-alpha.0", "description": "", "main": "./lib/bundle.create-bot-whatsapp.cjs", "files": [ diff --git a/packages/database/package.json b/packages/database/package.json index 616b1c2..cdab548 100644 --- a/packages/database/package.json +++ b/packages/database/package.json @@ -1,6 +1,6 @@ { "name": "@bot-whatsapp/database", - "version": "0.0.43-alpha.0", + "version": "0.0.44-alpha.0", "description": "Esto es el conector a mysql, pg, mongo", "main": "./lib/mock/index.cjs", "keywords": [], diff --git a/packages/provider/package.json b/packages/provider/package.json index 607e549..4c53f47 100644 --- a/packages/provider/package.json +++ b/packages/provider/package.json @@ -1,6 +1,6 @@ { "name": "@bot-whatsapp/provider", - "version": "0.0.49-alpha.0", + "version": "0.0.50-alpha.0", "description": "Esto es el conector a Twilio, Meta, etc...", "main": "./lib/mock/index.cjs", "keywords": [], diff --git a/packages/provider/src/web-whatsapp/index.js b/packages/provider/src/web-whatsapp/index.js index ef9427f..5c35a6c 100644 --- a/packages/provider/src/web-whatsapp/index.js +++ b/packages/provider/src/web-whatsapp/index.js @@ -24,6 +24,7 @@ class WebWhatsappProvider extends ProviderClass { super() this.vendor = new Client({ authStrategy: new LocalAuth(), + puppeteer: { headless: true, args: ['--no-sandbox', '--disable-setuid-sandbox', '--unhandled-rejections=strict'] } }) const listEvents = this.busEvents() diff --git a/starters/apps/base-baileys-json/Dockerfile b/starters/apps/base-baileys-json/Dockerfile new file mode 100644 index 0000000..14b07b2 --- /dev/null +++ b/starters/apps/base-baileys-json/Dockerfile @@ -0,0 +1,7 @@ +FROM node:lts-bullseye as bot +WORKDIR /app +COPY package*.json ./ +RUN npm i +COPY . . +ARG PORT +CMD ["npm", "start"] diff --git a/starters/apps/base-baileys-json/app.js b/starters/apps/base-baileys-json/app.js index 267d860..99ecf65 100644 --- a/starters/apps/base-baileys-json/app.js +++ b/starters/apps/base-baileys-json/app.js @@ -5,6 +5,8 @@ const { addKeyword, } = require('@bot-whatsapp/bot') +require('./server.http') + const BaileysProvider = require('@bot-whatsapp/provider/baileys') const JsonFileAdapter = require('@bot-whatsapp/database/json') diff --git a/starters/apps/base-baileys-json/public/index.html b/starters/apps/base-baileys-json/public/index.html new file mode 100644 index 0000000..202b50c --- /dev/null +++ b/starters/apps/base-baileys-json/public/index.html @@ -0,0 +1,80 @@ + + + + + + + + + 🤖 Crear chatbot WhatsApp en minutos + + + +
+ Escanear QR +
+

Whatsapp QR

+

+ F5 para actualizar, el codigo se actualiza cada minuto.
+ Con esta libreria, puedes configurar respuestas + automatizadas para preguntas frecuentes , recibir y + responder mensajes de manera automatizada, y hacer un + seguimiento de las interacciones con los clientes. Además, + nuestro Chatbot se integra fácilmente con otros sistemas y + herramientas que ya esté utilizando en su negocio. +

+
+ Ver documentación +
+
+
+ + diff --git a/starters/apps/base-baileys-json/server.http.js b/starters/apps/base-baileys-json/server.http.js new file mode 100644 index 0000000..217bd71 --- /dev/null +++ b/starters/apps/base-baileys-json/server.http.js @@ -0,0 +1,34 @@ +const http = require('http') +const fs = require('fs') +const path = require('path') + +const PORT = process.env.PORT || 3000 + +/** + * Levantar un HTTP Server + */ +http.createServer(function (req, res) { + var cssPath = undefined + var fileStream = undefined + var imagePath = undefined + + if (req.url === '/') { + fs.readFile('./public/index.html', 'UTF-8', function (err, html) { + res.writeHead(200, { 'Content-Type': 'text/html' }) + res.end(html) + }) + } else if (req.url.match('.css$')) { + cssPath = path.join(__dirname, 'public', req.url) + fileStream = fs.createReadStream(cssPath, 'UTF-8') + res.writeHead(200, { 'Content-Type': 'text/css' }) + fileStream.pipe(res) + } else if (req.url.match('.png$')) { + imagePath = path.join(__dirname, req.url) + fileStream = fs.createReadStream(imagePath) + res.writeHead(200, { 'Content-Type': 'image/png' }) + fileStream.pipe(res) + } else { + res.writeHead(404, { 'Content-Type': 'text/html' }) + res.end('No Page Found') + } +}).listen(PORT, () => console.log(`Escanear QR Code http://localhost:${PORT}`)) diff --git a/starters/apps/base-baileys-memory/Dockerfile b/starters/apps/base-baileys-memory/Dockerfile new file mode 100644 index 0000000..14b07b2 --- /dev/null +++ b/starters/apps/base-baileys-memory/Dockerfile @@ -0,0 +1,7 @@ +FROM node:lts-bullseye as bot +WORKDIR /app +COPY package*.json ./ +RUN npm i +COPY . . +ARG PORT +CMD ["npm", "start"] diff --git a/starters/apps/base-baileys-memory/app.js b/starters/apps/base-baileys-memory/app.js index 3b967a8..522bb6c 100644 --- a/starters/apps/base-baileys-memory/app.js +++ b/starters/apps/base-baileys-memory/app.js @@ -5,6 +5,8 @@ const { addKeyword, } = require('@bot-whatsapp/bot') +require('./server.http') + const BaileysProvider = require('@bot-whatsapp/provider/baileys') const MockAdapter = require('@bot-whatsapp/database/mock') diff --git a/starters/apps/base-baileys-memory/public/index.html b/starters/apps/base-baileys-memory/public/index.html new file mode 100644 index 0000000..202b50c --- /dev/null +++ b/starters/apps/base-baileys-memory/public/index.html @@ -0,0 +1,80 @@ + + + + + + + + + 🤖 Crear chatbot WhatsApp en minutos + + + +
+ Escanear QR +
+

Whatsapp QR

+

+ F5 para actualizar, el codigo se actualiza cada minuto.
+ Con esta libreria, puedes configurar respuestas + automatizadas para preguntas frecuentes , recibir y + responder mensajes de manera automatizada, y hacer un + seguimiento de las interacciones con los clientes. Además, + nuestro Chatbot se integra fácilmente con otros sistemas y + herramientas que ya esté utilizando en su negocio. +

+
+ Ver documentación +
+
+
+ + diff --git a/starters/apps/base-baileys-memory/server.http.js b/starters/apps/base-baileys-memory/server.http.js new file mode 100644 index 0000000..217bd71 --- /dev/null +++ b/starters/apps/base-baileys-memory/server.http.js @@ -0,0 +1,34 @@ +const http = require('http') +const fs = require('fs') +const path = require('path') + +const PORT = process.env.PORT || 3000 + +/** + * Levantar un HTTP Server + */ +http.createServer(function (req, res) { + var cssPath = undefined + var fileStream = undefined + var imagePath = undefined + + if (req.url === '/') { + fs.readFile('./public/index.html', 'UTF-8', function (err, html) { + res.writeHead(200, { 'Content-Type': 'text/html' }) + res.end(html) + }) + } else if (req.url.match('.css$')) { + cssPath = path.join(__dirname, 'public', req.url) + fileStream = fs.createReadStream(cssPath, 'UTF-8') + res.writeHead(200, { 'Content-Type': 'text/css' }) + fileStream.pipe(res) + } else if (req.url.match('.png$')) { + imagePath = path.join(__dirname, req.url) + fileStream = fs.createReadStream(imagePath) + res.writeHead(200, { 'Content-Type': 'image/png' }) + fileStream.pipe(res) + } else { + res.writeHead(404, { 'Content-Type': 'text/html' }) + res.end('No Page Found') + } +}).listen(PORT, () => console.log(`Escanear QR Code http://localhost:${PORT}`)) diff --git a/starters/apps/base-baileys-mongo/Dockerfile b/starters/apps/base-baileys-mongo/Dockerfile new file mode 100644 index 0000000..14b07b2 --- /dev/null +++ b/starters/apps/base-baileys-mongo/Dockerfile @@ -0,0 +1,7 @@ +FROM node:lts-bullseye as bot +WORKDIR /app +COPY package*.json ./ +RUN npm i +COPY . . +ARG PORT +CMD ["npm", "start"] diff --git a/starters/apps/base-baileys-mongo/app.js b/starters/apps/base-baileys-mongo/app.js index 96f04b0..277115d 100644 --- a/starters/apps/base-baileys-mongo/app.js +++ b/starters/apps/base-baileys-mongo/app.js @@ -5,6 +5,8 @@ const { addKeyword, } = require('@bot-whatsapp/bot') +require('./server.http') + const BaileysProvider = require('@bot-whatsapp/provider/baileys') const MongoAdapter = require('@bot-whatsapp/database/mongo') diff --git a/starters/apps/base-baileys-mongo/public/index.html b/starters/apps/base-baileys-mongo/public/index.html new file mode 100644 index 0000000..202b50c --- /dev/null +++ b/starters/apps/base-baileys-mongo/public/index.html @@ -0,0 +1,80 @@ + + + + + + + + + 🤖 Crear chatbot WhatsApp en minutos + + + +
+ Escanear QR +
+

Whatsapp QR

+

+ F5 para actualizar, el codigo se actualiza cada minuto.
+ Con esta libreria, puedes configurar respuestas + automatizadas para preguntas frecuentes , recibir y + responder mensajes de manera automatizada, y hacer un + seguimiento de las interacciones con los clientes. Además, + nuestro Chatbot se integra fácilmente con otros sistemas y + herramientas que ya esté utilizando en su negocio. +

+
+ Ver documentación +
+
+
+ + diff --git a/starters/apps/base-baileys-mongo/server.http.js b/starters/apps/base-baileys-mongo/server.http.js new file mode 100644 index 0000000..217bd71 --- /dev/null +++ b/starters/apps/base-baileys-mongo/server.http.js @@ -0,0 +1,34 @@ +const http = require('http') +const fs = require('fs') +const path = require('path') + +const PORT = process.env.PORT || 3000 + +/** + * Levantar un HTTP Server + */ +http.createServer(function (req, res) { + var cssPath = undefined + var fileStream = undefined + var imagePath = undefined + + if (req.url === '/') { + fs.readFile('./public/index.html', 'UTF-8', function (err, html) { + res.writeHead(200, { 'Content-Type': 'text/html' }) + res.end(html) + }) + } else if (req.url.match('.css$')) { + cssPath = path.join(__dirname, 'public', req.url) + fileStream = fs.createReadStream(cssPath, 'UTF-8') + res.writeHead(200, { 'Content-Type': 'text/css' }) + fileStream.pipe(res) + } else if (req.url.match('.png$')) { + imagePath = path.join(__dirname, req.url) + fileStream = fs.createReadStream(imagePath) + res.writeHead(200, { 'Content-Type': 'image/png' }) + fileStream.pipe(res) + } else { + res.writeHead(404, { 'Content-Type': 'text/html' }) + res.end('No Page Found') + } +}).listen(PORT, () => console.log(`Escanear QR Code http://localhost:${PORT}`)) diff --git a/starters/apps/base-baileys-mysql/Dockerfile b/starters/apps/base-baileys-mysql/Dockerfile new file mode 100644 index 0000000..14b07b2 --- /dev/null +++ b/starters/apps/base-baileys-mysql/Dockerfile @@ -0,0 +1,7 @@ +FROM node:lts-bullseye as bot +WORKDIR /app +COPY package*.json ./ +RUN npm i +COPY . . +ARG PORT +CMD ["npm", "start"] diff --git a/starters/apps/base-baileys-mysql/app.js b/starters/apps/base-baileys-mysql/app.js index 6982000..02a13c0 100644 --- a/starters/apps/base-baileys-mysql/app.js +++ b/starters/apps/base-baileys-mysql/app.js @@ -5,6 +5,8 @@ const { addKeyword, } = require('@bot-whatsapp/bot') +require('./server.http') + const BaileysProvider = require('@bot-whatsapp/provider/baileys') const MySQLAdapter = require('@bot-whatsapp/database/mysql') diff --git a/starters/apps/base-baileys-mysql/public/index.html b/starters/apps/base-baileys-mysql/public/index.html new file mode 100644 index 0000000..202b50c --- /dev/null +++ b/starters/apps/base-baileys-mysql/public/index.html @@ -0,0 +1,80 @@ + + + + + + + + + 🤖 Crear chatbot WhatsApp en minutos + + + +
+ Escanear QR +
+

Whatsapp QR

+

+ F5 para actualizar, el codigo se actualiza cada minuto.
+ Con esta libreria, puedes configurar respuestas + automatizadas para preguntas frecuentes , recibir y + responder mensajes de manera automatizada, y hacer un + seguimiento de las interacciones con los clientes. Además, + nuestro Chatbot se integra fácilmente con otros sistemas y + herramientas que ya esté utilizando en su negocio. +

+
+ Ver documentación +
+
+
+ + diff --git a/starters/apps/base-baileys-mysql/server.http.js b/starters/apps/base-baileys-mysql/server.http.js new file mode 100644 index 0000000..217bd71 --- /dev/null +++ b/starters/apps/base-baileys-mysql/server.http.js @@ -0,0 +1,34 @@ +const http = require('http') +const fs = require('fs') +const path = require('path') + +const PORT = process.env.PORT || 3000 + +/** + * Levantar un HTTP Server + */ +http.createServer(function (req, res) { + var cssPath = undefined + var fileStream = undefined + var imagePath = undefined + + if (req.url === '/') { + fs.readFile('./public/index.html', 'UTF-8', function (err, html) { + res.writeHead(200, { 'Content-Type': 'text/html' }) + res.end(html) + }) + } else if (req.url.match('.css$')) { + cssPath = path.join(__dirname, 'public', req.url) + fileStream = fs.createReadStream(cssPath, 'UTF-8') + res.writeHead(200, { 'Content-Type': 'text/css' }) + fileStream.pipe(res) + } else if (req.url.match('.png$')) { + imagePath = path.join(__dirname, req.url) + fileStream = fs.createReadStream(imagePath) + res.writeHead(200, { 'Content-Type': 'image/png' }) + fileStream.pipe(res) + } else { + res.writeHead(404, { 'Content-Type': 'text/html' }) + res.end('No Page Found') + } +}).listen(PORT, () => console.log(`Escanear QR Code http://localhost:${PORT}`)) diff --git a/starters/apps/base-venom-json/Dockerfile b/starters/apps/base-venom-json/Dockerfile new file mode 100644 index 0000000..3a9aa17 --- /dev/null +++ b/starters/apps/base-venom-json/Dockerfile @@ -0,0 +1,24 @@ +FROM node:18-alpine as node + +WORKDIR /app +# Installs latest Chromium (92) package. +RUN apk add --no-cache \ + chromium \ + nss \ + freetype \ + harfbuzz \ + ca-certificates \ + ttf-freefont \ + nodejs \ + yarn + +# Tell Puppeteer to skip installing Chrome. We'll be using the installed package. +ENV PUPPETEER_SKIP_CHROMIUM_DOWNLOAD=true \ + PUPPETEER_EXECUTABLE_PATH=/usr/bin/chromium-browser + +# Puppeteer v10.0.0 works with Chromium 92. +COPY . . +RUN npm install puppeteer@10.0.0 +RUN npm install + +CMD ["npm", "start"] diff --git a/starters/apps/base-venom-json/app.js b/starters/apps/base-venom-json/app.js index 8a223b2..c742f78 100644 --- a/starters/apps/base-venom-json/app.js +++ b/starters/apps/base-venom-json/app.js @@ -5,6 +5,8 @@ const { addKeyword, } = require('@bot-whatsapp/bot') +require('./server.http') + const VenomProvider = require('@bot-whatsapp/provider/venom') const JsonFileAdapter = require('@bot-whatsapp/database/json') diff --git a/starters/apps/base-venom-json/public/index.html b/starters/apps/base-venom-json/public/index.html new file mode 100644 index 0000000..202b50c --- /dev/null +++ b/starters/apps/base-venom-json/public/index.html @@ -0,0 +1,80 @@ + + + + + + + + + 🤖 Crear chatbot WhatsApp en minutos + + + +
+ Escanear QR +
+

Whatsapp QR

+

+ F5 para actualizar, el codigo se actualiza cada minuto.
+ Con esta libreria, puedes configurar respuestas + automatizadas para preguntas frecuentes , recibir y + responder mensajes de manera automatizada, y hacer un + seguimiento de las interacciones con los clientes. Además, + nuestro Chatbot se integra fácilmente con otros sistemas y + herramientas que ya esté utilizando en su negocio. +

+
+ Ver documentación +
+
+
+ + diff --git a/starters/apps/base-venom-json/server.http.js b/starters/apps/base-venom-json/server.http.js new file mode 100644 index 0000000..217bd71 --- /dev/null +++ b/starters/apps/base-venom-json/server.http.js @@ -0,0 +1,34 @@ +const http = require('http') +const fs = require('fs') +const path = require('path') + +const PORT = process.env.PORT || 3000 + +/** + * Levantar un HTTP Server + */ +http.createServer(function (req, res) { + var cssPath = undefined + var fileStream = undefined + var imagePath = undefined + + if (req.url === '/') { + fs.readFile('./public/index.html', 'UTF-8', function (err, html) { + res.writeHead(200, { 'Content-Type': 'text/html' }) + res.end(html) + }) + } else if (req.url.match('.css$')) { + cssPath = path.join(__dirname, 'public', req.url) + fileStream = fs.createReadStream(cssPath, 'UTF-8') + res.writeHead(200, { 'Content-Type': 'text/css' }) + fileStream.pipe(res) + } else if (req.url.match('.png$')) { + imagePath = path.join(__dirname, req.url) + fileStream = fs.createReadStream(imagePath) + res.writeHead(200, { 'Content-Type': 'image/png' }) + fileStream.pipe(res) + } else { + res.writeHead(404, { 'Content-Type': 'text/html' }) + res.end('No Page Found') + } +}).listen(PORT, () => console.log(`Escanear QR Code http://localhost:${PORT}`)) diff --git a/starters/apps/base-venom-memory/Dockerfile b/starters/apps/base-venom-memory/Dockerfile new file mode 100644 index 0000000..3a9aa17 --- /dev/null +++ b/starters/apps/base-venom-memory/Dockerfile @@ -0,0 +1,24 @@ +FROM node:18-alpine as node + +WORKDIR /app +# Installs latest Chromium (92) package. +RUN apk add --no-cache \ + chromium \ + nss \ + freetype \ + harfbuzz \ + ca-certificates \ + ttf-freefont \ + nodejs \ + yarn + +# Tell Puppeteer to skip installing Chrome. We'll be using the installed package. +ENV PUPPETEER_SKIP_CHROMIUM_DOWNLOAD=true \ + PUPPETEER_EXECUTABLE_PATH=/usr/bin/chromium-browser + +# Puppeteer v10.0.0 works with Chromium 92. +COPY . . +RUN npm install puppeteer@10.0.0 +RUN npm install + +CMD ["npm", "start"] diff --git a/starters/apps/base-venom-memory/app.js b/starters/apps/base-venom-memory/app.js index 44750c4..6f89ef2 100644 --- a/starters/apps/base-venom-memory/app.js +++ b/starters/apps/base-venom-memory/app.js @@ -5,6 +5,8 @@ const { addKeyword, } = require('@bot-whatsapp/bot') +require('./server.http') + const VenomProvider = require('@bot-whatsapp/provider/venom') const MockAdapter = require('@bot-whatsapp/database/mock') diff --git a/starters/apps/base-venom-memory/public/index.html b/starters/apps/base-venom-memory/public/index.html new file mode 100644 index 0000000..202b50c --- /dev/null +++ b/starters/apps/base-venom-memory/public/index.html @@ -0,0 +1,80 @@ + + + + + + + + + 🤖 Crear chatbot WhatsApp en minutos + + + +
+ Escanear QR +
+

Whatsapp QR

+

+ F5 para actualizar, el codigo se actualiza cada minuto.
+ Con esta libreria, puedes configurar respuestas + automatizadas para preguntas frecuentes , recibir y + responder mensajes de manera automatizada, y hacer un + seguimiento de las interacciones con los clientes. Además, + nuestro Chatbot se integra fácilmente con otros sistemas y + herramientas que ya esté utilizando en su negocio. +

+
+ Ver documentación +
+
+
+ + diff --git a/starters/apps/base-venom-memory/server.http.js b/starters/apps/base-venom-memory/server.http.js new file mode 100644 index 0000000..217bd71 --- /dev/null +++ b/starters/apps/base-venom-memory/server.http.js @@ -0,0 +1,34 @@ +const http = require('http') +const fs = require('fs') +const path = require('path') + +const PORT = process.env.PORT || 3000 + +/** + * Levantar un HTTP Server + */ +http.createServer(function (req, res) { + var cssPath = undefined + var fileStream = undefined + var imagePath = undefined + + if (req.url === '/') { + fs.readFile('./public/index.html', 'UTF-8', function (err, html) { + res.writeHead(200, { 'Content-Type': 'text/html' }) + res.end(html) + }) + } else if (req.url.match('.css$')) { + cssPath = path.join(__dirname, 'public', req.url) + fileStream = fs.createReadStream(cssPath, 'UTF-8') + res.writeHead(200, { 'Content-Type': 'text/css' }) + fileStream.pipe(res) + } else if (req.url.match('.png$')) { + imagePath = path.join(__dirname, req.url) + fileStream = fs.createReadStream(imagePath) + res.writeHead(200, { 'Content-Type': 'image/png' }) + fileStream.pipe(res) + } else { + res.writeHead(404, { 'Content-Type': 'text/html' }) + res.end('No Page Found') + } +}).listen(PORT, () => console.log(`Escanear QR Code http://localhost:${PORT}`)) diff --git a/starters/apps/base-venom-mongo/Dockerfile b/starters/apps/base-venom-mongo/Dockerfile new file mode 100644 index 0000000..3a9aa17 --- /dev/null +++ b/starters/apps/base-venom-mongo/Dockerfile @@ -0,0 +1,24 @@ +FROM node:18-alpine as node + +WORKDIR /app +# Installs latest Chromium (92) package. +RUN apk add --no-cache \ + chromium \ + nss \ + freetype \ + harfbuzz \ + ca-certificates \ + ttf-freefont \ + nodejs \ + yarn + +# Tell Puppeteer to skip installing Chrome. We'll be using the installed package. +ENV PUPPETEER_SKIP_CHROMIUM_DOWNLOAD=true \ + PUPPETEER_EXECUTABLE_PATH=/usr/bin/chromium-browser + +# Puppeteer v10.0.0 works with Chromium 92. +COPY . . +RUN npm install puppeteer@10.0.0 +RUN npm install + +CMD ["npm", "start"] diff --git a/starters/apps/base-venom-mongo/app.js b/starters/apps/base-venom-mongo/app.js index 266e2e0..d8de982 100644 --- a/starters/apps/base-venom-mongo/app.js +++ b/starters/apps/base-venom-mongo/app.js @@ -5,6 +5,8 @@ const { addKeyword, } = require('@bot-whatsapp/bot') +require('./server.http') + const VenomProvider = require('@bot-whatsapp/provider/venom') const MongoAdapter = require('@bot-whatsapp/database/mongo') diff --git a/starters/apps/base-venom-mongo/public/index.html b/starters/apps/base-venom-mongo/public/index.html new file mode 100644 index 0000000..202b50c --- /dev/null +++ b/starters/apps/base-venom-mongo/public/index.html @@ -0,0 +1,80 @@ + + + + + + + + + 🤖 Crear chatbot WhatsApp en minutos + + + +
+ Escanear QR +
+

Whatsapp QR

+

+ F5 para actualizar, el codigo se actualiza cada minuto.
+ Con esta libreria, puedes configurar respuestas + automatizadas para preguntas frecuentes , recibir y + responder mensajes de manera automatizada, y hacer un + seguimiento de las interacciones con los clientes. Además, + nuestro Chatbot se integra fácilmente con otros sistemas y + herramientas que ya esté utilizando en su negocio. +

+
+ Ver documentación +
+
+
+ + diff --git a/starters/apps/base-venom-mongo/server.http.js b/starters/apps/base-venom-mongo/server.http.js new file mode 100644 index 0000000..217bd71 --- /dev/null +++ b/starters/apps/base-venom-mongo/server.http.js @@ -0,0 +1,34 @@ +const http = require('http') +const fs = require('fs') +const path = require('path') + +const PORT = process.env.PORT || 3000 + +/** + * Levantar un HTTP Server + */ +http.createServer(function (req, res) { + var cssPath = undefined + var fileStream = undefined + var imagePath = undefined + + if (req.url === '/') { + fs.readFile('./public/index.html', 'UTF-8', function (err, html) { + res.writeHead(200, { 'Content-Type': 'text/html' }) + res.end(html) + }) + } else if (req.url.match('.css$')) { + cssPath = path.join(__dirname, 'public', req.url) + fileStream = fs.createReadStream(cssPath, 'UTF-8') + res.writeHead(200, { 'Content-Type': 'text/css' }) + fileStream.pipe(res) + } else if (req.url.match('.png$')) { + imagePath = path.join(__dirname, req.url) + fileStream = fs.createReadStream(imagePath) + res.writeHead(200, { 'Content-Type': 'image/png' }) + fileStream.pipe(res) + } else { + res.writeHead(404, { 'Content-Type': 'text/html' }) + res.end('No Page Found') + } +}).listen(PORT, () => console.log(`Escanear QR Code http://localhost:${PORT}`)) diff --git a/starters/apps/base-venom-mysql/Dockerfile b/starters/apps/base-venom-mysql/Dockerfile new file mode 100644 index 0000000..3a9aa17 --- /dev/null +++ b/starters/apps/base-venom-mysql/Dockerfile @@ -0,0 +1,24 @@ +FROM node:18-alpine as node + +WORKDIR /app +# Installs latest Chromium (92) package. +RUN apk add --no-cache \ + chromium \ + nss \ + freetype \ + harfbuzz \ + ca-certificates \ + ttf-freefont \ + nodejs \ + yarn + +# Tell Puppeteer to skip installing Chrome. We'll be using the installed package. +ENV PUPPETEER_SKIP_CHROMIUM_DOWNLOAD=true \ + PUPPETEER_EXECUTABLE_PATH=/usr/bin/chromium-browser + +# Puppeteer v10.0.0 works with Chromium 92. +COPY . . +RUN npm install puppeteer@10.0.0 +RUN npm install + +CMD ["npm", "start"] diff --git a/starters/apps/base-venom-mysql/app.js b/starters/apps/base-venom-mysql/app.js index fe19fa5..24da8ee 100644 --- a/starters/apps/base-venom-mysql/app.js +++ b/starters/apps/base-venom-mysql/app.js @@ -5,6 +5,8 @@ const { addKeyword, } = require('@bot-whatsapp/bot') +require('./server.http') + const VenomProvider = require('@bot-whatsapp/provider/venom') const MySQLAdapter = require('@bot-whatsapp/database/mysql') diff --git a/starters/apps/base-venom-mysql/public/index.html b/starters/apps/base-venom-mysql/public/index.html new file mode 100644 index 0000000..202b50c --- /dev/null +++ b/starters/apps/base-venom-mysql/public/index.html @@ -0,0 +1,80 @@ + + + + + + + + + 🤖 Crear chatbot WhatsApp en minutos + + + +
+ Escanear QR +
+

Whatsapp QR

+

+ F5 para actualizar, el codigo se actualiza cada minuto.
+ Con esta libreria, puedes configurar respuestas + automatizadas para preguntas frecuentes , recibir y + responder mensajes de manera automatizada, y hacer un + seguimiento de las interacciones con los clientes. Además, + nuestro Chatbot se integra fácilmente con otros sistemas y + herramientas que ya esté utilizando en su negocio. +

+
+ Ver documentación +
+
+
+ + diff --git a/starters/apps/base-venom-mysql/server.http.js b/starters/apps/base-venom-mysql/server.http.js new file mode 100644 index 0000000..217bd71 --- /dev/null +++ b/starters/apps/base-venom-mysql/server.http.js @@ -0,0 +1,34 @@ +const http = require('http') +const fs = require('fs') +const path = require('path') + +const PORT = process.env.PORT || 3000 + +/** + * Levantar un HTTP Server + */ +http.createServer(function (req, res) { + var cssPath = undefined + var fileStream = undefined + var imagePath = undefined + + if (req.url === '/') { + fs.readFile('./public/index.html', 'UTF-8', function (err, html) { + res.writeHead(200, { 'Content-Type': 'text/html' }) + res.end(html) + }) + } else if (req.url.match('.css$')) { + cssPath = path.join(__dirname, 'public', req.url) + fileStream = fs.createReadStream(cssPath, 'UTF-8') + res.writeHead(200, { 'Content-Type': 'text/css' }) + fileStream.pipe(res) + } else if (req.url.match('.png$')) { + imagePath = path.join(__dirname, req.url) + fileStream = fs.createReadStream(imagePath) + res.writeHead(200, { 'Content-Type': 'image/png' }) + fileStream.pipe(res) + } else { + res.writeHead(404, { 'Content-Type': 'text/html' }) + res.end('No Page Found') + } +}).listen(PORT, () => console.log(`Escanear QR Code http://localhost:${PORT}`)) diff --git a/starters/apps/base-wweb-json/Dockerfile b/starters/apps/base-wweb-json/Dockerfile new file mode 100644 index 0000000..3a9aa17 --- /dev/null +++ b/starters/apps/base-wweb-json/Dockerfile @@ -0,0 +1,24 @@ +FROM node:18-alpine as node + +WORKDIR /app +# Installs latest Chromium (92) package. +RUN apk add --no-cache \ + chromium \ + nss \ + freetype \ + harfbuzz \ + ca-certificates \ + ttf-freefont \ + nodejs \ + yarn + +# Tell Puppeteer to skip installing Chrome. We'll be using the installed package. +ENV PUPPETEER_SKIP_CHROMIUM_DOWNLOAD=true \ + PUPPETEER_EXECUTABLE_PATH=/usr/bin/chromium-browser + +# Puppeteer v10.0.0 works with Chromium 92. +COPY . . +RUN npm install puppeteer@10.0.0 +RUN npm install + +CMD ["npm", "start"] diff --git a/starters/apps/base-wweb-json/app.js b/starters/apps/base-wweb-json/app.js index 2b8a55d..31f03dd 100644 --- a/starters/apps/base-wweb-json/app.js +++ b/starters/apps/base-wweb-json/app.js @@ -5,6 +5,8 @@ const { addKeyword, } = require('@bot-whatsapp/bot') +require('./server.http') + const WebWhatsappProvider = require('@bot-whatsapp/provider/web-whatsapp') const JsonFileAdapter = require('@bot-whatsapp/database/json') diff --git a/starters/apps/base-wweb-json/public/index.html b/starters/apps/base-wweb-json/public/index.html new file mode 100644 index 0000000..202b50c --- /dev/null +++ b/starters/apps/base-wweb-json/public/index.html @@ -0,0 +1,80 @@ + + + + + + + + + 🤖 Crear chatbot WhatsApp en minutos + + + +
+ Escanear QR +
+

Whatsapp QR

+

+ F5 para actualizar, el codigo se actualiza cada minuto.
+ Con esta libreria, puedes configurar respuestas + automatizadas para preguntas frecuentes , recibir y + responder mensajes de manera automatizada, y hacer un + seguimiento de las interacciones con los clientes. Además, + nuestro Chatbot se integra fácilmente con otros sistemas y + herramientas que ya esté utilizando en su negocio. +

+
+ Ver documentación +
+
+
+ + diff --git a/starters/apps/base-wweb-json/server.http.js b/starters/apps/base-wweb-json/server.http.js new file mode 100644 index 0000000..217bd71 --- /dev/null +++ b/starters/apps/base-wweb-json/server.http.js @@ -0,0 +1,34 @@ +const http = require('http') +const fs = require('fs') +const path = require('path') + +const PORT = process.env.PORT || 3000 + +/** + * Levantar un HTTP Server + */ +http.createServer(function (req, res) { + var cssPath = undefined + var fileStream = undefined + var imagePath = undefined + + if (req.url === '/') { + fs.readFile('./public/index.html', 'UTF-8', function (err, html) { + res.writeHead(200, { 'Content-Type': 'text/html' }) + res.end(html) + }) + } else if (req.url.match('.css$')) { + cssPath = path.join(__dirname, 'public', req.url) + fileStream = fs.createReadStream(cssPath, 'UTF-8') + res.writeHead(200, { 'Content-Type': 'text/css' }) + fileStream.pipe(res) + } else if (req.url.match('.png$')) { + imagePath = path.join(__dirname, req.url) + fileStream = fs.createReadStream(imagePath) + res.writeHead(200, { 'Content-Type': 'image/png' }) + fileStream.pipe(res) + } else { + res.writeHead(404, { 'Content-Type': 'text/html' }) + res.end('No Page Found') + } +}).listen(PORT, () => console.log(`Escanear QR Code http://localhost:${PORT}`)) diff --git a/starters/apps/base-wweb-memory/Dockerfile b/starters/apps/base-wweb-memory/Dockerfile new file mode 100644 index 0000000..3a9aa17 --- /dev/null +++ b/starters/apps/base-wweb-memory/Dockerfile @@ -0,0 +1,24 @@ +FROM node:18-alpine as node + +WORKDIR /app +# Installs latest Chromium (92) package. +RUN apk add --no-cache \ + chromium \ + nss \ + freetype \ + harfbuzz \ + ca-certificates \ + ttf-freefont \ + nodejs \ + yarn + +# Tell Puppeteer to skip installing Chrome. We'll be using the installed package. +ENV PUPPETEER_SKIP_CHROMIUM_DOWNLOAD=true \ + PUPPETEER_EXECUTABLE_PATH=/usr/bin/chromium-browser + +# Puppeteer v10.0.0 works with Chromium 92. +COPY . . +RUN npm install puppeteer@10.0.0 +RUN npm install + +CMD ["npm", "start"] diff --git a/starters/apps/base-wweb-memory/app.js b/starters/apps/base-wweb-memory/app.js index 1e47221..5318283 100644 --- a/starters/apps/base-wweb-memory/app.js +++ b/starters/apps/base-wweb-memory/app.js @@ -5,6 +5,8 @@ const { addKeyword, } = require('@bot-whatsapp/bot') +require('./server.http') + const WebWhatsappProvider = require('@bot-whatsapp/provider/web-whatsapp') const MockAdapter = require('@bot-whatsapp/database/mock') diff --git a/starters/apps/base-wweb-memory/public/index.html b/starters/apps/base-wweb-memory/public/index.html new file mode 100644 index 0000000..202b50c --- /dev/null +++ b/starters/apps/base-wweb-memory/public/index.html @@ -0,0 +1,80 @@ + + + + + + + + + 🤖 Crear chatbot WhatsApp en minutos + + + +
+ Escanear QR +
+

Whatsapp QR

+

+ F5 para actualizar, el codigo se actualiza cada minuto.
+ Con esta libreria, puedes configurar respuestas + automatizadas para preguntas frecuentes , recibir y + responder mensajes de manera automatizada, y hacer un + seguimiento de las interacciones con los clientes. Además, + nuestro Chatbot se integra fácilmente con otros sistemas y + herramientas que ya esté utilizando en su negocio. +

+
+ Ver documentación +
+
+
+ + diff --git a/starters/apps/base-wweb-memory/server.http.js b/starters/apps/base-wweb-memory/server.http.js new file mode 100644 index 0000000..217bd71 --- /dev/null +++ b/starters/apps/base-wweb-memory/server.http.js @@ -0,0 +1,34 @@ +const http = require('http') +const fs = require('fs') +const path = require('path') + +const PORT = process.env.PORT || 3000 + +/** + * Levantar un HTTP Server + */ +http.createServer(function (req, res) { + var cssPath = undefined + var fileStream = undefined + var imagePath = undefined + + if (req.url === '/') { + fs.readFile('./public/index.html', 'UTF-8', function (err, html) { + res.writeHead(200, { 'Content-Type': 'text/html' }) + res.end(html) + }) + } else if (req.url.match('.css$')) { + cssPath = path.join(__dirname, 'public', req.url) + fileStream = fs.createReadStream(cssPath, 'UTF-8') + res.writeHead(200, { 'Content-Type': 'text/css' }) + fileStream.pipe(res) + } else if (req.url.match('.png$')) { + imagePath = path.join(__dirname, req.url) + fileStream = fs.createReadStream(imagePath) + res.writeHead(200, { 'Content-Type': 'image/png' }) + fileStream.pipe(res) + } else { + res.writeHead(404, { 'Content-Type': 'text/html' }) + res.end('No Page Found') + } +}).listen(PORT, () => console.log(`Escanear QR Code http://localhost:${PORT}`)) diff --git a/starters/apps/base-wweb-mongo/Dockerfile b/starters/apps/base-wweb-mongo/Dockerfile new file mode 100644 index 0000000..3a9aa17 --- /dev/null +++ b/starters/apps/base-wweb-mongo/Dockerfile @@ -0,0 +1,24 @@ +FROM node:18-alpine as node + +WORKDIR /app +# Installs latest Chromium (92) package. +RUN apk add --no-cache \ + chromium \ + nss \ + freetype \ + harfbuzz \ + ca-certificates \ + ttf-freefont \ + nodejs \ + yarn + +# Tell Puppeteer to skip installing Chrome. We'll be using the installed package. +ENV PUPPETEER_SKIP_CHROMIUM_DOWNLOAD=true \ + PUPPETEER_EXECUTABLE_PATH=/usr/bin/chromium-browser + +# Puppeteer v10.0.0 works with Chromium 92. +COPY . . +RUN npm install puppeteer@10.0.0 +RUN npm install + +CMD ["npm", "start"] diff --git a/starters/apps/base-wweb-mongo/app.js b/starters/apps/base-wweb-mongo/app.js index e78f1b1..34f3887 100644 --- a/starters/apps/base-wweb-mongo/app.js +++ b/starters/apps/base-wweb-mongo/app.js @@ -8,6 +8,8 @@ const { const WebWhatsappProvider = require('@bot-whatsapp/provider/web-whatsapp') const MongoAdapter = require('@bot-whatsapp/database/mongo') +require('./server.http') + /** * Declaramos las conexiones de Mongo */ diff --git a/starters/apps/base-wweb-mongo/public/index.html b/starters/apps/base-wweb-mongo/public/index.html new file mode 100644 index 0000000..202b50c --- /dev/null +++ b/starters/apps/base-wweb-mongo/public/index.html @@ -0,0 +1,80 @@ + + + + + + + + + 🤖 Crear chatbot WhatsApp en minutos + + + +
+ Escanear QR +
+

Whatsapp QR

+

+ F5 para actualizar, el codigo se actualiza cada minuto.
+ Con esta libreria, puedes configurar respuestas + automatizadas para preguntas frecuentes , recibir y + responder mensajes de manera automatizada, y hacer un + seguimiento de las interacciones con los clientes. Además, + nuestro Chatbot se integra fácilmente con otros sistemas y + herramientas que ya esté utilizando en su negocio. +

+
+ Ver documentación +
+
+
+ + diff --git a/starters/apps/base-wweb-mongo/server.http.js b/starters/apps/base-wweb-mongo/server.http.js new file mode 100644 index 0000000..217bd71 --- /dev/null +++ b/starters/apps/base-wweb-mongo/server.http.js @@ -0,0 +1,34 @@ +const http = require('http') +const fs = require('fs') +const path = require('path') + +const PORT = process.env.PORT || 3000 + +/** + * Levantar un HTTP Server + */ +http.createServer(function (req, res) { + var cssPath = undefined + var fileStream = undefined + var imagePath = undefined + + if (req.url === '/') { + fs.readFile('./public/index.html', 'UTF-8', function (err, html) { + res.writeHead(200, { 'Content-Type': 'text/html' }) + res.end(html) + }) + } else if (req.url.match('.css$')) { + cssPath = path.join(__dirname, 'public', req.url) + fileStream = fs.createReadStream(cssPath, 'UTF-8') + res.writeHead(200, { 'Content-Type': 'text/css' }) + fileStream.pipe(res) + } else if (req.url.match('.png$')) { + imagePath = path.join(__dirname, req.url) + fileStream = fs.createReadStream(imagePath) + res.writeHead(200, { 'Content-Type': 'image/png' }) + fileStream.pipe(res) + } else { + res.writeHead(404, { 'Content-Type': 'text/html' }) + res.end('No Page Found') + } +}).listen(PORT, () => console.log(`Escanear QR Code http://localhost:${PORT}`)) diff --git a/starters/apps/base-wweb-mysql/Dockerfile b/starters/apps/base-wweb-mysql/Dockerfile new file mode 100644 index 0000000..3a9aa17 --- /dev/null +++ b/starters/apps/base-wweb-mysql/Dockerfile @@ -0,0 +1,24 @@ +FROM node:18-alpine as node + +WORKDIR /app +# Installs latest Chromium (92) package. +RUN apk add --no-cache \ + chromium \ + nss \ + freetype \ + harfbuzz \ + ca-certificates \ + ttf-freefont \ + nodejs \ + yarn + +# Tell Puppeteer to skip installing Chrome. We'll be using the installed package. +ENV PUPPETEER_SKIP_CHROMIUM_DOWNLOAD=true \ + PUPPETEER_EXECUTABLE_PATH=/usr/bin/chromium-browser + +# Puppeteer v10.0.0 works with Chromium 92. +COPY . . +RUN npm install puppeteer@10.0.0 +RUN npm install + +CMD ["npm", "start"] diff --git a/starters/apps/base-wweb-mysql/app.js b/starters/apps/base-wweb-mysql/app.js index 2d92136..2095842 100644 --- a/starters/apps/base-wweb-mysql/app.js +++ b/starters/apps/base-wweb-mysql/app.js @@ -5,6 +5,8 @@ const { addKeyword, } = require('@bot-whatsapp/bot') +require('./server.http') + const WebWhatsappProvider = require('@bot-whatsapp/provider/web-whatsapp') const MySQLAdapter = require('@bot-whatsapp/database/mysql') diff --git a/starters/apps/base-wweb-mysql/public/index.html b/starters/apps/base-wweb-mysql/public/index.html new file mode 100644 index 0000000..202b50c --- /dev/null +++ b/starters/apps/base-wweb-mysql/public/index.html @@ -0,0 +1,80 @@ + + + + + + + + + 🤖 Crear chatbot WhatsApp en minutos + + + +
+ Escanear QR +
+

Whatsapp QR

+

+ F5 para actualizar, el codigo se actualiza cada minuto.
+ Con esta libreria, puedes configurar respuestas + automatizadas para preguntas frecuentes , recibir y + responder mensajes de manera automatizada, y hacer un + seguimiento de las interacciones con los clientes. Además, + nuestro Chatbot se integra fácilmente con otros sistemas y + herramientas que ya esté utilizando en su negocio. +

+
+ Ver documentación +
+
+
+ + diff --git a/starters/apps/base-wweb-mysql/server.http.js b/starters/apps/base-wweb-mysql/server.http.js new file mode 100644 index 0000000..217bd71 --- /dev/null +++ b/starters/apps/base-wweb-mysql/server.http.js @@ -0,0 +1,34 @@ +const http = require('http') +const fs = require('fs') +const path = require('path') + +const PORT = process.env.PORT || 3000 + +/** + * Levantar un HTTP Server + */ +http.createServer(function (req, res) { + var cssPath = undefined + var fileStream = undefined + var imagePath = undefined + + if (req.url === '/') { + fs.readFile('./public/index.html', 'UTF-8', function (err, html) { + res.writeHead(200, { 'Content-Type': 'text/html' }) + res.end(html) + }) + } else if (req.url.match('.css$')) { + cssPath = path.join(__dirname, 'public', req.url) + fileStream = fs.createReadStream(cssPath, 'UTF-8') + res.writeHead(200, { 'Content-Type': 'text/css' }) + fileStream.pipe(res) + } else if (req.url.match('.png$')) { + imagePath = path.join(__dirname, req.url) + fileStream = fs.createReadStream(imagePath) + res.writeHead(200, { 'Content-Type': 'image/png' }) + fileStream.pipe(res) + } else { + res.writeHead(404, { 'Content-Type': 'text/html' }) + res.end('No Page Found') + } +}).listen(PORT, () => console.log(`Escanear QR Code http://localhost:${PORT}`))