create-builderbot 0.0.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/bin/create.cjs +3 -0
- package/dist/index.cjs +15 -0
- package/dist/index.d.ts +9 -0
- package/dist/index.d.ts.map +1 -0
- package/package.json +34 -0
- package/starters/apps/base-baileys-json/.eslintrc.js +23 -0
- package/starters/apps/base-baileys-json/Dockerfile +9 -0
- package/starters/apps/base-baileys-json/README.md +22 -0
- package/starters/apps/base-baileys-json/app.js +79 -0
- package/starters/apps/base-baileys-json/package.json +29 -0
- package/starters/apps/base-baileys-memory/.eslintrc.js +23 -0
- package/starters/apps/base-baileys-memory/Dockerfile +9 -0
- package/starters/apps/base-baileys-memory/README.md +22 -0
- package/starters/apps/base-baileys-memory/app.js +79 -0
- package/starters/apps/base-baileys-memory/package.json +28 -0
- package/starters/apps/base-baileys-mongo/.eslintrc.js +23 -0
- package/starters/apps/base-baileys-mongo/Dockerfile +9 -0
- package/starters/apps/base-baileys-mongo/README.md +40 -0
- package/starters/apps/base-baileys-mongo/app.js +99 -0
- package/starters/apps/base-baileys-mongo/package.json +30 -0
- package/starters/apps/base-baileys-mysql/.eslintrc.js +23 -0
- package/starters/apps/base-baileys-mysql/Dockerfile +9 -0
- package/starters/apps/base-baileys-mysql/README.md +40 -0
- package/starters/apps/base-baileys-mysql/app.js +104 -0
- package/starters/apps/base-baileys-mysql/package.json +29 -0
- package/starters/apps/base-baileys-postgres/.eslintrc.js +23 -0
- package/starters/apps/base-baileys-postgres/Dockerfile +9 -0
- package/starters/apps/base-baileys-postgres/README.md +40 -0
- package/starters/apps/base-baileys-postgres/app.js +105 -0
- package/starters/apps/base-baileys-postgres/package.json +29 -0
- package/starters/apps/base-meta-json/.eslintrc.js +23 -0
- package/starters/apps/base-meta-json/Dockerfile +9 -0
- package/starters/apps/base-meta-json/README.md +40 -0
- package/starters/apps/base-meta-json/app.js +94 -0
- package/starters/apps/base-meta-json/package.json +29 -0
- package/starters/apps/base-meta-memory/.eslintrc.js +23 -0
- package/starters/apps/base-meta-memory/Dockerfile +9 -0
- package/starters/apps/base-meta-memory/README.md +40 -0
- package/starters/apps/base-meta-memory/app.js +94 -0
- package/starters/apps/base-meta-memory/package.json +29 -0
- package/starters/apps/base-meta-mongo/.eslintrc.js +23 -0
- package/starters/apps/base-meta-mongo/Dockerfile +9 -0
- package/starters/apps/base-meta-mongo/README.md +40 -0
- package/starters/apps/base-meta-mongo/app.js +105 -0
- package/starters/apps/base-meta-mongo/package.json +30 -0
- package/starters/apps/base-meta-mysql/.eslintrc.js +23 -0
- package/starters/apps/base-meta-mysql/Dockerfile +9 -0
- package/starters/apps/base-meta-mysql/README.md +40 -0
- package/starters/apps/base-meta-mysql/app.js +109 -0
- package/starters/apps/base-meta-mysql/package.json +30 -0
- package/starters/apps/base-meta-postgres/.eslintrc.js +23 -0
- package/starters/apps/base-meta-postgres/Dockerfile +9 -0
- package/starters/apps/base-meta-postgres/README.md +40 -0
- package/starters/apps/base-meta-postgres/app.js +110 -0
- package/starters/apps/base-meta-postgres/package.json +30 -0
- package/starters/apps/base-twilio-json/.eslintrc.js +23 -0
- package/starters/apps/base-twilio-json/Dockerfile +9 -0
- package/starters/apps/base-twilio-json/README.md +40 -0
- package/starters/apps/base-twilio-json/app.js +93 -0
- package/starters/apps/base-twilio-json/package.json +27 -0
- package/starters/apps/base-twilio-memory/.eslintrc.js +23 -0
- package/starters/apps/base-twilio-memory/Dockerfile +9 -0
- package/starters/apps/base-twilio-memory/README.md +40 -0
- package/starters/apps/base-twilio-memory/app.js +93 -0
- package/starters/apps/base-twilio-memory/package.json +27 -0
- package/starters/apps/base-twilio-mongo/.eslintrc.js +23 -0
- package/starters/apps/base-twilio-mongo/Dockerfile +9 -0
- package/starters/apps/base-twilio-mongo/README.md +40 -0
- package/starters/apps/base-twilio-mongo/app.js +102 -0
- package/starters/apps/base-twilio-mongo/package.json +29 -0
- package/starters/apps/base-twilio-mysql/.eslintrc.js +23 -0
- package/starters/apps/base-twilio-mysql/Dockerfile +9 -0
- package/starters/apps/base-twilio-mysql/README.md +40 -0
- package/starters/apps/base-twilio-mysql/app.js +107 -0
- package/starters/apps/base-twilio-mysql/package.json +28 -0
- package/starters/apps/base-twilio-postgres/.eslintrc.js +23 -0
- package/starters/apps/base-twilio-postgres/Dockerfile +9 -0
- package/starters/apps/base-twilio-postgres/README.md +40 -0
- package/starters/apps/base-twilio-postgres/app.js +105 -0
- package/starters/apps/base-twilio-postgres/package.json +28 -0
- package/starters/apps/base-venom-json/.eslintrc.js +23 -0
- package/starters/apps/base-venom-json/Dockerfile +24 -0
- package/starters/apps/base-venom-json/README.md +40 -0
- package/starters/apps/base-venom-json/app.js +89 -0
- package/starters/apps/base-venom-json/package.json +27 -0
- package/starters/apps/base-venom-memory/.eslintrc.js +23 -0
- package/starters/apps/base-venom-memory/Dockerfile +24 -0
- package/starters/apps/base-venom-memory/README.md +40 -0
- package/starters/apps/base-venom-memory/app.js +89 -0
- package/starters/apps/base-venom-memory/package.json +27 -0
- package/starters/apps/base-venom-mongo/.eslintrc.js +23 -0
- package/starters/apps/base-venom-mongo/Dockerfile +24 -0
- package/starters/apps/base-venom-mongo/README.md +40 -0
- package/starters/apps/base-venom-mongo/app.js +99 -0
- package/starters/apps/base-venom-mongo/package.json +28 -0
- package/starters/apps/base-venom-mysql/.eslintrc.js +23 -0
- package/starters/apps/base-venom-mysql/Dockerfile +24 -0
- package/starters/apps/base-venom-mysql/README.md +40 -0
- package/starters/apps/base-venom-mysql/app.js +105 -0
- package/starters/apps/base-venom-mysql/package.json +28 -0
- package/starters/apps/base-venom-postgres/.eslintrc.js +23 -0
- package/starters/apps/base-venom-postgres/Dockerfile +9 -0
- package/starters/apps/base-venom-postgres/README.md +40 -0
- package/starters/apps/base-venom-postgres/app.js +105 -0
- package/starters/apps/base-venom-postgres/package.json +28 -0
- package/starters/apps/base-wppconnect-json/.eslintrc.js +23 -0
- package/starters/apps/base-wppconnect-json/README.md +22 -0
- package/starters/apps/base-wppconnect-json/app.js +79 -0
- package/starters/apps/base-wppconnect-json/package.json +27 -0
- package/starters/apps/base-wppconnect-memory/.eslintrc.js +23 -0
- package/starters/apps/base-wppconnect-memory/README.md +22 -0
- package/starters/apps/base-wppconnect-memory/app.js +79 -0
- package/starters/apps/base-wppconnect-memory/package.json +27 -0
- package/starters/apps/base-wppconnect-mongo/.eslintrc.js +23 -0
- package/starters/apps/base-wppconnect-mongo/README.md +40 -0
- package/starters/apps/base-wppconnect-mongo/app.js +99 -0
- package/starters/apps/base-wppconnect-mongo/package.json +28 -0
- package/starters/apps/base-wppconnect-mysql/.eslintrc.js +23 -0
- package/starters/apps/base-wppconnect-mysql/README.md +40 -0
- package/starters/apps/base-wppconnect-mysql/app.js +104 -0
- package/starters/apps/base-wppconnect-mysql/package.json +28 -0
- package/starters/apps/base-wppconnect-postgres/.eslintrc.js +23 -0
- package/starters/apps/base-wppconnect-postgres/README.md +40 -0
- package/starters/apps/base-wppconnect-postgres/app.js +105 -0
- package/starters/apps/base-wppconnect-postgres/package.json +28 -0
- package/starters/apps/base-wweb-json/.eslintrc.js +23 -0
- package/starters/apps/base-wweb-json/Dockerfile +24 -0
- package/starters/apps/base-wweb-json/README.md +40 -0
- package/starters/apps/base-wweb-json/app.js +89 -0
- package/starters/apps/base-wweb-json/package.json +26 -0
- package/starters/apps/base-wweb-memory/.eslintrc.js +23 -0
- package/starters/apps/base-wweb-memory/Dockerfile +24 -0
- package/starters/apps/base-wweb-memory/README.md +40 -0
- package/starters/apps/base-wweb-memory/app.js +89 -0
- package/starters/apps/base-wweb-memory/package.json +26 -0
- package/starters/apps/base-wweb-mongo/.eslintrc.js +23 -0
- package/starters/apps/base-wweb-mongo/Dockerfile +24 -0
- package/starters/apps/base-wweb-mongo/README.md +40 -0
- package/starters/apps/base-wweb-mongo/app.js +99 -0
- package/starters/apps/base-wweb-mongo/package.json +28 -0
- package/starters/apps/base-wweb-mysql/.eslintrc.js +23 -0
- package/starters/apps/base-wweb-mysql/Dockerfile +24 -0
- package/starters/apps/base-wweb-mysql/README.md +40 -0
- package/starters/apps/base-wweb-mysql/app.js +105 -0
- package/starters/apps/base-wweb-mysql/package.json +27 -0
- package/starters/apps/base-wweb-postgres/.eslintrc.js +23 -0
- package/starters/apps/base-wweb-postgres/Dockerfile +24 -0
- package/starters/apps/base-wweb-postgres/README.md +40 -0
- package/starters/apps/base-wweb-postgres/app.js +105 -0
- package/starters/apps/base-wweb-postgres/package.json +27 -0
|
@@ -0,0 +1,40 @@
|
|
|
1
|
+
### CHATBOT Whatsapp (Baileys Provider)
|
|
2
|
+
|
|
3
|
+
<p align="center">
|
|
4
|
+
<img width="300" src="https://i.imgur.com/Oauef6t.png">
|
|
5
|
+
</p>
|
|
6
|
+
|
|
7
|
+
|
|
8
|
+
**Con esta librerÃa, puedes construir flujos automatizados de conversación de manera agnóstica al proveedor de WhatsApp,** 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, puedes configurar fácilmente disparadores que te ayudaran a expandir las funcionalidades sin lÃmites. **[Ver más informacion](https://bot-whatsapp.netlify.app/)**
|
|
9
|
+
|
|
10
|
+
```js
|
|
11
|
+
const main = async () => {
|
|
12
|
+
const adapterDB = new MockAdapter()
|
|
13
|
+
const adapterFlow = createFlow([flowPrincipal])
|
|
14
|
+
|
|
15
|
+
const adapterProvider = createProvider(BaileysProvider, {
|
|
16
|
+
accountSid: process.env.ACC_SID,
|
|
17
|
+
authToken: process.env.ACC_TOKEN,
|
|
18
|
+
vendorNumber: process.env.ACC_VENDOR,
|
|
19
|
+
})
|
|
20
|
+
|
|
21
|
+
createBot({
|
|
22
|
+
flow: adapterFlow,
|
|
23
|
+
provider: adapterProvider,
|
|
24
|
+
database: adapterDB,
|
|
25
|
+
})
|
|
26
|
+
}
|
|
27
|
+
```
|
|
28
|
+
|
|
29
|
+
```
|
|
30
|
+
npm install
|
|
31
|
+
npm start
|
|
32
|
+
```
|
|
33
|
+
|
|
34
|
+
---
|
|
35
|
+
## Recursos
|
|
36
|
+
- [📄 Documentación](https://bot-whatsapp.netlify.app/)
|
|
37
|
+
- [🚀 Roadmap](https://github.com/orgs/codigoencasa/projects/1)
|
|
38
|
+
- [💻 Discord](https://link.codigoencasa.com/DISCORD)
|
|
39
|
+
- [👌 Twitter](https://twitter.com/leifermendez)
|
|
40
|
+
- [🎥 Youtube](https://www.youtube.com/watch?v=5lEMCeWEJ8o&list=PL_WGMLcL4jzWPhdhcUyhbFU6bC0oJd2BR)
|
|
@@ -0,0 +1,104 @@
|
|
|
1
|
+
const { createBot, createProvider, createFlow, addKeyword } = require('@bot-whatsapp/bot')
|
|
2
|
+
|
|
3
|
+
const QRPortalWeb = require('@bot-whatsapp/portal')
|
|
4
|
+
const BaileysProvider = require('@bot-whatsapp/provider/baileys')
|
|
5
|
+
const MySQLAdapter = require('@bot-whatsapp/database/mysql')
|
|
6
|
+
|
|
7
|
+
/**
|
|
8
|
+
* Declaramos las conexiones de MySQL
|
|
9
|
+
*/
|
|
10
|
+
const MYSQL_DB_HOST = 'localhost'
|
|
11
|
+
const MYSQL_DB_USER = 'usr'
|
|
12
|
+
const MYSQL_DB_PASSWORD = 'pass'
|
|
13
|
+
const MYSQL_DB_NAME = 'bot'
|
|
14
|
+
const MYSQL_DB_PORT = '3306'
|
|
15
|
+
|
|
16
|
+
/**
|
|
17
|
+
* Aqui declaramos los flujos hijos, los flujos se declaran de atras para adelante, es decir que si tienes un flujo de este tipo:
|
|
18
|
+
*
|
|
19
|
+
* Menu Principal
|
|
20
|
+
* - SubMenu 1
|
|
21
|
+
* - Submenu 1.1
|
|
22
|
+
* - Submenu 2
|
|
23
|
+
* - Submenu 2.1
|
|
24
|
+
*
|
|
25
|
+
* Primero declaras los submenus 1.1 y 2.1, luego el 1 y 2 y al final el principal.
|
|
26
|
+
*/
|
|
27
|
+
|
|
28
|
+
const flowSecundario = addKeyword(['2', 'siguiente']).addAnswer(['📄 Aquà tenemos el flujo secundario'])
|
|
29
|
+
|
|
30
|
+
const flowDocs = addKeyword(['doc', 'documentacion', 'documentación']).addAnswer(
|
|
31
|
+
[
|
|
32
|
+
'📄 Aquà encontras las documentación recuerda que puedes mejorarla',
|
|
33
|
+
'https://bot-whatsapp.netlify.app/',
|
|
34
|
+
'\n*2* Para siguiente paso.',
|
|
35
|
+
],
|
|
36
|
+
null,
|
|
37
|
+
null,
|
|
38
|
+
[flowSecundario]
|
|
39
|
+
)
|
|
40
|
+
|
|
41
|
+
const flowTuto = addKeyword(['tutorial', 'tuto']).addAnswer(
|
|
42
|
+
[
|
|
43
|
+
'🙌 Aquà encontras un ejemplo rapido',
|
|
44
|
+
'https://bot-whatsapp.netlify.app/docs/example/',
|
|
45
|
+
'\n*2* Para siguiente paso.',
|
|
46
|
+
],
|
|
47
|
+
null,
|
|
48
|
+
null,
|
|
49
|
+
[flowSecundario]
|
|
50
|
+
)
|
|
51
|
+
|
|
52
|
+
const flowGracias = addKeyword(['gracias', 'grac']).addAnswer(
|
|
53
|
+
[
|
|
54
|
+
'🚀 Puedes aportar tu granito de arena a este proyecto',
|
|
55
|
+
'[*opencollective*] https://opencollective.com/bot-whatsapp',
|
|
56
|
+
'[*buymeacoffee*] https://www.buymeacoffee.com/leifermendez',
|
|
57
|
+
'[*patreon*] https://www.patreon.com/leifermendez',
|
|
58
|
+
'\n*2* Para siguiente paso.',
|
|
59
|
+
],
|
|
60
|
+
null,
|
|
61
|
+
null,
|
|
62
|
+
[flowSecundario]
|
|
63
|
+
)
|
|
64
|
+
|
|
65
|
+
const flowDiscord = addKeyword(['discord']).addAnswer(
|
|
66
|
+
['🤪 Únete al discord', 'https://link.codigoencasa.com/DISCORD', '\n*2* Para siguiente paso.'],
|
|
67
|
+
null,
|
|
68
|
+
null,
|
|
69
|
+
[flowSecundario]
|
|
70
|
+
)
|
|
71
|
+
|
|
72
|
+
const flowPrincipal = addKeyword(['hola', 'ole', 'alo'])
|
|
73
|
+
.addAnswer('🙌 Hola bienvenido a este *Chatbot*')
|
|
74
|
+
.addAnswer(
|
|
75
|
+
[
|
|
76
|
+
'te comparto los siguientes links de interes sobre el proyecto',
|
|
77
|
+
'👉 *doc* para ver la documentación',
|
|
78
|
+
'👉 *gracias* para ver la lista de videos',
|
|
79
|
+
'👉 *discord* unirte al discord',
|
|
80
|
+
],
|
|
81
|
+
null,
|
|
82
|
+
null,
|
|
83
|
+
[flowDocs, flowGracias, flowTuto, flowDiscord]
|
|
84
|
+
)
|
|
85
|
+
|
|
86
|
+
const main = async () => {
|
|
87
|
+
const adapterDB = new MySQLAdapter({
|
|
88
|
+
host: MYSQL_DB_HOST,
|
|
89
|
+
user: MYSQL_DB_USER,
|
|
90
|
+
database: MYSQL_DB_NAME,
|
|
91
|
+
password: MYSQL_DB_PASSWORD,
|
|
92
|
+
port: MYSQL_DB_PORT,
|
|
93
|
+
})
|
|
94
|
+
const adapterFlow = createFlow([flowPrincipal])
|
|
95
|
+
const adapterProvider = createProvider(BaileysProvider)
|
|
96
|
+
createBot({
|
|
97
|
+
flow: adapterFlow,
|
|
98
|
+
provider: adapterProvider,
|
|
99
|
+
database: adapterDB,
|
|
100
|
+
})
|
|
101
|
+
QRPortalWeb()
|
|
102
|
+
}
|
|
103
|
+
|
|
104
|
+
main()
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
{
|
|
2
|
+
"name": "base-bailey-mysql",
|
|
3
|
+
"version": "1.0.0",
|
|
4
|
+
"description": "",
|
|
5
|
+
"main": "app.js",
|
|
6
|
+
"scripts": {
|
|
7
|
+
"prestart": "npx eslint . --no-ignore",
|
|
8
|
+
"pre-copy": "cd .. && npm run copy.lib base-baileys-mysql",
|
|
9
|
+
"start": "node app.js"
|
|
10
|
+
},
|
|
11
|
+
"keywords": [],
|
|
12
|
+
"dependencies": {
|
|
13
|
+
"@bot-whatsapp/bot": "latest",
|
|
14
|
+
"@bot-whatsapp/cli": "latest",
|
|
15
|
+
"@bot-whatsapp/database": "latest",
|
|
16
|
+
"@bot-whatsapp/provider": "latest",
|
|
17
|
+
"@bot-whatsapp/portal": "latest",
|
|
18
|
+
"mysql2": "^2.3.3",
|
|
19
|
+
"@whiskeysockets/baileys": "6.5.0",
|
|
20
|
+
"wa-sticker-formatter": "4.4.4",
|
|
21
|
+
"cache-manager": "5.2.4"
|
|
22
|
+
},
|
|
23
|
+
"devDependencies": {
|
|
24
|
+
"eslint-plugin-bot-whatsapp": "latest",
|
|
25
|
+
"eslint": "^8.52.0"
|
|
26
|
+
},
|
|
27
|
+
"author": "",
|
|
28
|
+
"license": "ISC"
|
|
29
|
+
}
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
module.exports = {
|
|
2
|
+
env: {
|
|
3
|
+
browser: true,
|
|
4
|
+
commonjs: true,
|
|
5
|
+
es2021: true,
|
|
6
|
+
},
|
|
7
|
+
overrides: [
|
|
8
|
+
{
|
|
9
|
+
env: {
|
|
10
|
+
node: true,
|
|
11
|
+
},
|
|
12
|
+
files: ['.eslintrc.{js,cjs}'],
|
|
13
|
+
parserOptions: {
|
|
14
|
+
sourceType: 'script',
|
|
15
|
+
},
|
|
16
|
+
},
|
|
17
|
+
],
|
|
18
|
+
parserOptions: {
|
|
19
|
+
ecmaVersion: 'latest',
|
|
20
|
+
},
|
|
21
|
+
plugins: ['bot-whatsapp'],
|
|
22
|
+
extends: ['plugin:bot-whatsapp/recommended'],
|
|
23
|
+
}
|
|
@@ -0,0 +1,40 @@
|
|
|
1
|
+
### CHATBOT Whatsapp (Baileys Provider)
|
|
2
|
+
|
|
3
|
+
<p align="center">
|
|
4
|
+
<img width="300" src="https://i.imgur.com/Oauef6t.png">
|
|
5
|
+
</p>
|
|
6
|
+
|
|
7
|
+
|
|
8
|
+
**Con esta librerÃa, puedes construir flujos automatizados de conversación de manera agnóstica al proveedor de WhatsApp,** 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, puedes configurar fácilmente disparadores que te ayudaran a expandir las funcionalidades sin lÃmites. **[Ver más informacion](https://bot-whatsapp.netlify.app/)**
|
|
9
|
+
|
|
10
|
+
```js
|
|
11
|
+
const main = async () => {
|
|
12
|
+
const adapterDB = new MockAdapter()
|
|
13
|
+
const adapterFlow = createFlow([flowPrincipal])
|
|
14
|
+
|
|
15
|
+
const adapterProvider = createProvider(BaileysProvider, {
|
|
16
|
+
accountSid: process.env.ACC_SID,
|
|
17
|
+
authToken: process.env.ACC_TOKEN,
|
|
18
|
+
vendorNumber: process.env.ACC_VENDOR,
|
|
19
|
+
})
|
|
20
|
+
|
|
21
|
+
createBot({
|
|
22
|
+
flow: adapterFlow,
|
|
23
|
+
provider: adapterProvider,
|
|
24
|
+
database: adapterDB,
|
|
25
|
+
})
|
|
26
|
+
}
|
|
27
|
+
```
|
|
28
|
+
|
|
29
|
+
```
|
|
30
|
+
npm install
|
|
31
|
+
npm start
|
|
32
|
+
```
|
|
33
|
+
|
|
34
|
+
---
|
|
35
|
+
## Recursos
|
|
36
|
+
- [📄 Documentación](https://bot-whatsapp.netlify.app/)
|
|
37
|
+
- [🚀 Roadmap](https://github.com/orgs/codigoencasa/projects/1)
|
|
38
|
+
- [💻 Discord](https://link.codigoencasa.com/DISCORD)
|
|
39
|
+
- [👌 Twitter](https://twitter.com/leifermendez)
|
|
40
|
+
- [🎥 Youtube](https://www.youtube.com/watch?v=5lEMCeWEJ8o&list=PL_WGMLcL4jzWPhdhcUyhbFU6bC0oJd2BR)
|
|
@@ -0,0 +1,105 @@
|
|
|
1
|
+
const { createBot, createProvider, createFlow, addKeyword } = require('@bot-whatsapp/bot')
|
|
2
|
+
|
|
3
|
+
const QRPortalWeb = require('@bot-whatsapp/portal')
|
|
4
|
+
const BaileysProvider = require('@bot-whatsapp/provider/baileys')
|
|
5
|
+
const PostgreSQLAdapter = require('@bot-whatsapp/database/postgres')
|
|
6
|
+
|
|
7
|
+
/**
|
|
8
|
+
* Declaramos las conexiones de PostgreSQL
|
|
9
|
+
*/
|
|
10
|
+
|
|
11
|
+
const POSTGRES_DB_HOST = 'localhost'
|
|
12
|
+
const POSTGRES_DB_USER = 'postgres'
|
|
13
|
+
const POSTGRES_DB_PASSWORD = 'password'
|
|
14
|
+
const POSTGRES_DB_NAME = 'postgres'
|
|
15
|
+
const POSTGRES_DB_PORT = '5432'
|
|
16
|
+
|
|
17
|
+
/**
|
|
18
|
+
* Aqui declaramos los flujos hijos, los flujos se declaran de atras para adelante, es decir que si tienes un flujo de este tipo:
|
|
19
|
+
*
|
|
20
|
+
* Menu Principal
|
|
21
|
+
* - SubMenu 1
|
|
22
|
+
* - Submenu 1.1
|
|
23
|
+
* - Submenu 2
|
|
24
|
+
* - Submenu 2.1
|
|
25
|
+
*
|
|
26
|
+
* Primero declaras los submenus 1.1 y 2.1, luego el 1 y 2 y al final el principal.
|
|
27
|
+
*/
|
|
28
|
+
|
|
29
|
+
const flowSecundario = addKeyword(['2', 'siguiente']).addAnswer(['📄 Aquà tenemos el flujo secundario'])
|
|
30
|
+
|
|
31
|
+
const flowDocs = addKeyword(['doc', 'documentacion', 'documentación']).addAnswer(
|
|
32
|
+
[
|
|
33
|
+
'📄 Aquà encontras las documentación recuerda que puedes mejorarla',
|
|
34
|
+
'https://bot-whatsapp.netlify.app/',
|
|
35
|
+
'\n*2* Para siguiente paso.',
|
|
36
|
+
],
|
|
37
|
+
null,
|
|
38
|
+
null,
|
|
39
|
+
[flowSecundario]
|
|
40
|
+
)
|
|
41
|
+
|
|
42
|
+
const flowTuto = addKeyword(['tutorial', 'tuto']).addAnswer(
|
|
43
|
+
[
|
|
44
|
+
'🙌 Aquà encontras un ejemplo rapido',
|
|
45
|
+
'https://bot-whatsapp.netlify.app/docs/example/',
|
|
46
|
+
'\n*2* Para siguiente paso.',
|
|
47
|
+
],
|
|
48
|
+
null,
|
|
49
|
+
null,
|
|
50
|
+
[flowSecundario]
|
|
51
|
+
)
|
|
52
|
+
|
|
53
|
+
const flowGracias = addKeyword(['gracias', 'grac']).addAnswer(
|
|
54
|
+
[
|
|
55
|
+
'🚀 Puedes aportar tu granito de arena a este proyecto',
|
|
56
|
+
'[*opencollective*] https://opencollective.com/bot-whatsapp',
|
|
57
|
+
'[*buymeacoffee*] https://www.buymeacoffee.com/leifermendez',
|
|
58
|
+
'[*patreon*] https://www.patreon.com/leifermendez',
|
|
59
|
+
'\n*2* Para siguiente paso.',
|
|
60
|
+
],
|
|
61
|
+
null,
|
|
62
|
+
null,
|
|
63
|
+
[flowSecundario]
|
|
64
|
+
)
|
|
65
|
+
|
|
66
|
+
const flowDiscord = addKeyword(['discord']).addAnswer(
|
|
67
|
+
['🤪 Únete al discord', 'https://link.codigoencasa.com/DISCORD', '\n*2* Para siguiente paso.'],
|
|
68
|
+
null,
|
|
69
|
+
null,
|
|
70
|
+
[flowSecundario]
|
|
71
|
+
)
|
|
72
|
+
|
|
73
|
+
const flowPrincipal = addKeyword(['hola', 'ole', 'alo'])
|
|
74
|
+
.addAnswer('🙌 Hola bienvenido a este *Chatbot*')
|
|
75
|
+
.addAnswer(
|
|
76
|
+
[
|
|
77
|
+
'te comparto los siguientes links de interes sobre el proyecto',
|
|
78
|
+
'👉 *doc* para ver la documentación',
|
|
79
|
+
'👉 *gracias* para ver la lista de videos',
|
|
80
|
+
'👉 *discord* unirte al discord',
|
|
81
|
+
],
|
|
82
|
+
null,
|
|
83
|
+
null,
|
|
84
|
+
[flowDocs, flowGracias, flowTuto, flowDiscord]
|
|
85
|
+
)
|
|
86
|
+
|
|
87
|
+
const main = async () => {
|
|
88
|
+
const adapterDB = new PostgreSQLAdapter({
|
|
89
|
+
host: POSTGRES_DB_HOST,
|
|
90
|
+
user: POSTGRES_DB_USER,
|
|
91
|
+
database: POSTGRES_DB_NAME,
|
|
92
|
+
password: POSTGRES_DB_PASSWORD,
|
|
93
|
+
port: POSTGRES_DB_PORT,
|
|
94
|
+
})
|
|
95
|
+
const adapterFlow = createFlow([flowPrincipal])
|
|
96
|
+
const adapterProvider = createProvider(BaileysProvider)
|
|
97
|
+
createBot({
|
|
98
|
+
flow: adapterFlow,
|
|
99
|
+
provider: adapterProvider,
|
|
100
|
+
database: adapterDB,
|
|
101
|
+
})
|
|
102
|
+
QRPortalWeb()
|
|
103
|
+
}
|
|
104
|
+
|
|
105
|
+
main()
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
{
|
|
2
|
+
"name": "base-bailey-postgres",
|
|
3
|
+
"version": "1.0.0",
|
|
4
|
+
"description": "",
|
|
5
|
+
"main": "app.js",
|
|
6
|
+
"scripts": {
|
|
7
|
+
"prestart": "npx eslint . --no-ignore",
|
|
8
|
+
"pre-copy": "cd .. && npm run copy.lib base-baileys-postgres",
|
|
9
|
+
"start": "node app.js"
|
|
10
|
+
},
|
|
11
|
+
"keywords": [],
|
|
12
|
+
"dependencies": {
|
|
13
|
+
"@bot-whatsapp/bot": "latest",
|
|
14
|
+
"@bot-whatsapp/cli": "latest",
|
|
15
|
+
"@bot-whatsapp/database": "latest",
|
|
16
|
+
"@bot-whatsapp/provider": "latest",
|
|
17
|
+
"@bot-whatsapp/portal": "latest",
|
|
18
|
+
"@whiskeysockets/baileys": "6.5.0",
|
|
19
|
+
"wa-sticker-formatter": "4.4.4",
|
|
20
|
+
"pg": "^8.11.2",
|
|
21
|
+
"cache-manager": "5.2.4"
|
|
22
|
+
},
|
|
23
|
+
"devDependencies": {
|
|
24
|
+
"eslint-plugin-bot-whatsapp": "latest",
|
|
25
|
+
"eslint": "^8.52.0"
|
|
26
|
+
},
|
|
27
|
+
"author": "",
|
|
28
|
+
"license": "ISC"
|
|
29
|
+
}
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
module.exports = {
|
|
2
|
+
env: {
|
|
3
|
+
browser: true,
|
|
4
|
+
commonjs: true,
|
|
5
|
+
es2021: true,
|
|
6
|
+
},
|
|
7
|
+
overrides: [
|
|
8
|
+
{
|
|
9
|
+
env: {
|
|
10
|
+
node: true,
|
|
11
|
+
},
|
|
12
|
+
files: ['.eslintrc.{js,cjs}'],
|
|
13
|
+
parserOptions: {
|
|
14
|
+
sourceType: 'script',
|
|
15
|
+
},
|
|
16
|
+
},
|
|
17
|
+
],
|
|
18
|
+
parserOptions: {
|
|
19
|
+
ecmaVersion: 'latest',
|
|
20
|
+
},
|
|
21
|
+
plugins: ['bot-whatsapp'],
|
|
22
|
+
extends: ['plugin:bot-whatsapp/recommended'],
|
|
23
|
+
}
|
|
@@ -0,0 +1,40 @@
|
|
|
1
|
+
### CHATBOT Whatsapp (Meta Provider)
|
|
2
|
+
|
|
3
|
+
<p align="center">
|
|
4
|
+
<img width="300" src="https://i.imgur.com/Oauef6t.png">
|
|
5
|
+
</p>
|
|
6
|
+
|
|
7
|
+
|
|
8
|
+
**Con esta librerÃa, puedes construir flujos automatizados de conversación de manera agnóstica al proveedor de WhatsApp,** 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, puedes configurar fácilmente disparadores que te ayudaran a expandir las funcionalidades sin lÃmites. **[Ver más informacion](https://bot-whatsapp.netlify.app/)**
|
|
9
|
+
|
|
10
|
+
```js
|
|
11
|
+
const main = async () => {
|
|
12
|
+
const adapterDB = new MockAdapter()
|
|
13
|
+
const adapterFlow = createFlow([flowPrincipal])
|
|
14
|
+
|
|
15
|
+
const adapterProvider = createProvider(MetaProvider, {
|
|
16
|
+
accountSid: process.env.ACC_SID,
|
|
17
|
+
authToken: process.env.ACC_TOKEN,
|
|
18
|
+
vendorNumber: process.env.ACC_VENDOR,
|
|
19
|
+
})
|
|
20
|
+
|
|
21
|
+
createBot({
|
|
22
|
+
flow: adapterFlow,
|
|
23
|
+
provider: adapterProvider,
|
|
24
|
+
database: adapterDB,
|
|
25
|
+
})
|
|
26
|
+
}
|
|
27
|
+
```
|
|
28
|
+
|
|
29
|
+
```
|
|
30
|
+
npm install
|
|
31
|
+
npm start
|
|
32
|
+
```
|
|
33
|
+
|
|
34
|
+
---
|
|
35
|
+
## Recursos
|
|
36
|
+
- [📄 Documentación](https://bot-whatsapp.netlify.app/)
|
|
37
|
+
- [🚀 Roadmap](https://github.com/orgs/codigoencasa/projects/1)
|
|
38
|
+
- [💻 Discord](https://link.codigoencasa.com/DISCORD)
|
|
39
|
+
- [👌 Twitter](https://twitter.com/leifermendez)
|
|
40
|
+
- [🎥 Youtube](https://www.youtube.com/watch?v=5lEMCeWEJ8o&list=PL_WGMLcL4jzWPhdhcUyhbFU6bC0oJd2BR)
|
|
@@ -0,0 +1,94 @@
|
|
|
1
|
+
const { createBot, createProvider, createFlow, addKeyword } = require('@bot-whatsapp/bot')
|
|
2
|
+
|
|
3
|
+
const MetaProvider = require('@bot-whatsapp/provider/meta')
|
|
4
|
+
const JsonFileAdapter = require('@bot-whatsapp/database/json')
|
|
5
|
+
|
|
6
|
+
/**
|
|
7
|
+
* Aqui declaramos los flujos hijos, los flujos se declaran de atras para adelante, es decir que si tienes un flujo de este tipo:
|
|
8
|
+
*
|
|
9
|
+
* Menu Principal
|
|
10
|
+
* - SubMenu 1
|
|
11
|
+
* - Submenu 1.1
|
|
12
|
+
* - Submenu 2
|
|
13
|
+
* - Submenu 2.1
|
|
14
|
+
*
|
|
15
|
+
* Primero declaras los submenus 1.1 y 2.1, luego el 1 y 2 y al final el principal.
|
|
16
|
+
*/
|
|
17
|
+
|
|
18
|
+
const flowSecundario = addKeyword(['2', 'siguiente']).addAnswer(['📄 Aquà tenemos el flujo secundario'])
|
|
19
|
+
|
|
20
|
+
const flowDocs = addKeyword(['doc', 'documentacion', 'documentación']).addAnswer(
|
|
21
|
+
[
|
|
22
|
+
'📄 Aquà encontras las documentación recuerda que puedes mejorarla',
|
|
23
|
+
'https://bot-whatsapp.netlify.app/',
|
|
24
|
+
'\n*2* Para siguiente paso.',
|
|
25
|
+
],
|
|
26
|
+
null,
|
|
27
|
+
null,
|
|
28
|
+
[flowSecundario]
|
|
29
|
+
)
|
|
30
|
+
|
|
31
|
+
const flowTuto = addKeyword(['tutorial', 'tuto']).addAnswer(
|
|
32
|
+
[
|
|
33
|
+
'🙌 Aquà encontras un ejemplo rapido',
|
|
34
|
+
'https://bot-whatsapp.netlify.app/docs/example/',
|
|
35
|
+
'\n*2* Para siguiente paso.',
|
|
36
|
+
],
|
|
37
|
+
null,
|
|
38
|
+
null,
|
|
39
|
+
[flowSecundario]
|
|
40
|
+
)
|
|
41
|
+
|
|
42
|
+
const flowGracias = addKeyword(['gracias', 'grac']).addAnswer(
|
|
43
|
+
[
|
|
44
|
+
'🚀 Puedes aportar tu granito de arena a este proyecto',
|
|
45
|
+
'[*opencollective*] https://opencollective.com/bot-whatsapp',
|
|
46
|
+
'[*buymeacoffee*] https://www.buymeacoffee.com/leifermendez',
|
|
47
|
+
'[*patreon*] https://www.patreon.com/leifermendez',
|
|
48
|
+
'\n*2* Para siguiente paso.',
|
|
49
|
+
],
|
|
50
|
+
null,
|
|
51
|
+
null,
|
|
52
|
+
[flowSecundario]
|
|
53
|
+
)
|
|
54
|
+
|
|
55
|
+
const flowDiscord = addKeyword(['discord']).addAnswer(
|
|
56
|
+
['🤪 Únete al discord', 'https://link.codigoencasa.com/DISCORD', '\n*2* Para siguiente paso.'],
|
|
57
|
+
null,
|
|
58
|
+
null,
|
|
59
|
+
[flowSecundario]
|
|
60
|
+
)
|
|
61
|
+
|
|
62
|
+
const flowPrincipal = addKeyword(['hola', 'ole', 'alo'])
|
|
63
|
+
.addAnswer('🙌 Hola bienvenido a este *Chatbot*')
|
|
64
|
+
.addAnswer(
|
|
65
|
+
[
|
|
66
|
+
'te comparto los siguientes links de interes sobre el proyecto',
|
|
67
|
+
'👉 *doc* para ver la documentación',
|
|
68
|
+
'👉 *gracias* para ver la lista de videos',
|
|
69
|
+
'👉 *discord* unirte al discord',
|
|
70
|
+
],
|
|
71
|
+
null,
|
|
72
|
+
null,
|
|
73
|
+
[flowDocs, flowGracias, flowTuto, flowDiscord]
|
|
74
|
+
)
|
|
75
|
+
|
|
76
|
+
const main = async () => {
|
|
77
|
+
const adapterDB = new JsonFileAdapter()
|
|
78
|
+
const adapterFlow = createFlow([flowPrincipal])
|
|
79
|
+
|
|
80
|
+
const adapterProvider = createProvider(MetaProvider, {
|
|
81
|
+
jwtToken: 'jwtToken',
|
|
82
|
+
numberId: 'numberId',
|
|
83
|
+
verifyToken: 'verifyToken',
|
|
84
|
+
version: 'v16.0',
|
|
85
|
+
})
|
|
86
|
+
|
|
87
|
+
createBot({
|
|
88
|
+
flow: adapterFlow,
|
|
89
|
+
provider: adapterProvider,
|
|
90
|
+
database: adapterDB,
|
|
91
|
+
})
|
|
92
|
+
}
|
|
93
|
+
|
|
94
|
+
main()
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
{
|
|
2
|
+
"name": "base-meta-json",
|
|
3
|
+
"version": "1.0.0",
|
|
4
|
+
"description": "",
|
|
5
|
+
"main": "app.js",
|
|
6
|
+
"scripts": {
|
|
7
|
+
"prestart": "npx eslint . --no-ignore",
|
|
8
|
+
"pre-copy": "cd .. && npm run copy.lib base-meta-json",
|
|
9
|
+
"start": "node app.js"
|
|
10
|
+
},
|
|
11
|
+
"keywords": [],
|
|
12
|
+
"dependencies": {
|
|
13
|
+
"body-parser": "^1.20.1",
|
|
14
|
+
"polka": "^0.5.2",
|
|
15
|
+
"@bot-whatsapp/bot": "latest",
|
|
16
|
+
"@bot-whatsapp/cli": "latest",
|
|
17
|
+
"@bot-whatsapp/database": "latest",
|
|
18
|
+
"@bot-whatsapp/provider": "latest",
|
|
19
|
+
"axios": "^1.2.1",
|
|
20
|
+
"form-data": "4.0.0",
|
|
21
|
+
"queue-promise": "2.2.1"
|
|
22
|
+
},
|
|
23
|
+
"devDependencies": {
|
|
24
|
+
"eslint-plugin-bot-whatsapp": "latest",
|
|
25
|
+
"eslint": "^8.52.0"
|
|
26
|
+
},
|
|
27
|
+
"author": "",
|
|
28
|
+
"license": "ISC"
|
|
29
|
+
}
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
module.exports = {
|
|
2
|
+
env: {
|
|
3
|
+
browser: true,
|
|
4
|
+
commonjs: true,
|
|
5
|
+
es2021: true,
|
|
6
|
+
},
|
|
7
|
+
overrides: [
|
|
8
|
+
{
|
|
9
|
+
env: {
|
|
10
|
+
node: true,
|
|
11
|
+
},
|
|
12
|
+
files: ['.eslintrc.{js,cjs}'],
|
|
13
|
+
parserOptions: {
|
|
14
|
+
sourceType: 'script',
|
|
15
|
+
},
|
|
16
|
+
},
|
|
17
|
+
],
|
|
18
|
+
parserOptions: {
|
|
19
|
+
ecmaVersion: 'latest',
|
|
20
|
+
},
|
|
21
|
+
plugins: ['bot-whatsapp'],
|
|
22
|
+
extends: ['plugin:bot-whatsapp/recommended'],
|
|
23
|
+
}
|
|
@@ -0,0 +1,40 @@
|
|
|
1
|
+
### CHATBOT Whatsapp (Meta Provider)
|
|
2
|
+
|
|
3
|
+
<p align="center">
|
|
4
|
+
<img width="300" src="https://i.imgur.com/Oauef6t.png">
|
|
5
|
+
</p>
|
|
6
|
+
|
|
7
|
+
|
|
8
|
+
**Con esta librerÃa, puedes construir flujos automatizados de conversación de manera agnóstica al proveedor de WhatsApp,** 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, puedes configurar fácilmente disparadores que te ayudaran a expandir las funcionalidades sin lÃmites. **[Ver más informacion](https://bot-whatsapp.netlify.app/)**
|
|
9
|
+
|
|
10
|
+
```js
|
|
11
|
+
const main = async () => {
|
|
12
|
+
const adapterDB = new MockAdapter()
|
|
13
|
+
const adapterFlow = createFlow([flowPrincipal])
|
|
14
|
+
|
|
15
|
+
const adapterProvider = createProvider(MetaProvider, {
|
|
16
|
+
accountSid: process.env.ACC_SID,
|
|
17
|
+
authToken: process.env.ACC_TOKEN,
|
|
18
|
+
vendorNumber: process.env.ACC_VENDOR,
|
|
19
|
+
})
|
|
20
|
+
|
|
21
|
+
createBot({
|
|
22
|
+
flow: adapterFlow,
|
|
23
|
+
provider: adapterProvider,
|
|
24
|
+
database: adapterDB,
|
|
25
|
+
})
|
|
26
|
+
}
|
|
27
|
+
```
|
|
28
|
+
|
|
29
|
+
```
|
|
30
|
+
npm install
|
|
31
|
+
npm start
|
|
32
|
+
```
|
|
33
|
+
|
|
34
|
+
---
|
|
35
|
+
## Recursos
|
|
36
|
+
- [📄 Documentación](https://bot-whatsapp.netlify.app/)
|
|
37
|
+
- [🚀 Roadmap](https://github.com/orgs/codigoencasa/projects/1)
|
|
38
|
+
- [💻 Discord](https://link.codigoencasa.com/DISCORD)
|
|
39
|
+
- [👌 Twitter](https://twitter.com/leifermendez)
|
|
40
|
+
- [🎥 Youtube](https://www.youtube.com/watch?v=5lEMCeWEJ8o&list=PL_WGMLcL4jzWPhdhcUyhbFU6bC0oJd2BR)
|