Skip to content

Commit

Permalink
feat(bot): ⚡ rev-03 everything work fine
Browse files Browse the repository at this point in the history
  • Loading branch information
leifermendez committed Jan 3, 2023
1 parent eabef7a commit 3012e02
Show file tree
Hide file tree
Showing 14 changed files with 582 additions and 1 deletion.
3 changes: 2 additions & 1 deletion packages/provider/package.json
Original file line number Diff line number Diff line change
Expand Up @@ -12,7 +12,8 @@
"dependencies": {
"@bot-whatsapp/bot": "*",
"combine-image": "^1.0.3",
"qr-image": "^3.2.0"
"qr-image": "^3.2.0",
"rimraf": "^3.0.2"
},
"exports": {
"./mock": "./lib/mock/index.cjs",
Expand Down
34 changes: 34 additions & 0 deletions starters/apps/base-baileys-json/README.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,34 @@
### CHATBOT Whatsapp

Este bot es una aplicación que puedes vincular con tu whatsapp y crear flujos para automatizar tareas en tu negocio o procesos repetitivos.

Este bot contiene un flujo básico en el cual una persona (cliente) escribe **"hola"** y el bot responde:
- Bienvenido a mi tienda
- ¿Como puedo ayudarte?
- Tengo: Zapatos, Bolsos etc..

__Iniciar__

Los flujos se declaran de atrás para adelante, es decir que si tienes un flujo de este tipo:

Menu Principal
- SubMenu 1
- Submenu 1.1
- Submenu 2
- Submenu 2.1

Primero se declaran los submenus 1.1 y 2.1, luego el 1 y 2 y al final el principal.

```
npm install
npm start
```

__¿Tienes problemas?:__ [Abrir Issue](https://github.com/codigoencasa/bot-whatsapp/issues/new/choose)

------
> ¿Quieres se parte de este proyecto?
> - [Discord](https://link.codigoencasa.com/DISCORD)
> - [Twitter](https://twitter.com/leifermendez)
> - [Youtube](https://www.youtube.com/watch?v=5lEMCeWEJ8o&list=PL_WGMLcL4jzWPhdhcUyhbFU6bC0oJd2BR)
> - [Telegram](https://t.me/leifermendez)
88 changes: 88 additions & 0 deletions starters/apps/base-baileys-json/app.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,88 @@
const {
createBot,
createProvider,
createFlow,
addKeyword,
} = require('@bot-whatsapp/bot')

const BaileysProvider = require('@bot-whatsapp/provider/baileys')
const JsonFileAdapter = require('@bot-whatsapp/database/json')

/**
* Aqui declaramos los flujos hijos, los flujos se declaran de atras para adelante, es decir que si tienes un flujo de este tipo:
*
* Menu Principal
* - SubMenu 1
* - Submenu 1.1
* - Submenu 2
* - Submenu 2.1
*
* Primero declaras los submenus 1.1 y 2.1, luego el 1 y 2 y al final el principal.
*/

const flowBolsos2 = addKeyword(['bolsos2', '2'])
.addAnswer('🤯 *MUCHOS* bolsos ...')
.addAnswer('y mas bolsos... bla bla')

const flowZapatos2 = addKeyword(['zapatos2', '2'])
.addAnswer('🤯 repito que tengo *MUCHOS* zapatos.')
.addAnswer('y algunas otras cosas.')

const flowZapatos = addKeyword(['1', 'zapatos', 'ZAPATOS'])
.addAnswer('🤯 Veo que elegiste zapatos')
.addAnswer('Tengo muchos zapatos...bla bla')
.addAnswer(
['Manda:', '*(2) Zapatos2*', 'para mas información'],
{ capture: true },
(ctx) => {
console.log('Aqui puedes ver más info del usuario...')
console.log('Puedes enviar un mail, hook, etc..')
console.log(ctx)
},
[flowZapatos2]
)

const flowBolsos = addKeyword(['2', 'bolsos', 'BOLSOS'])
.addAnswer('🙌 Veo que elegiste bolsos')
.addAnswer('Tengo muchos bolsos...bla bla')
.addAnswer(
['Manda:', '*(2) Bolsos2*', 'para mas información.'],
{ capture: true },
(ctx) => {
console.log('Aqui puedes ver más info del usuario...')
console.log('Puedes enviar un mail, hook, etc..')
console.log(ctx)
},
[flowBolsos2]
)

/**
* Declarando flujo principal
*/

const flowPrincipal = addKeyword(['hola', 'ole', 'alo'])
.addAnswer(['Hola, bienvenido a mi tienda', '¿Como puedo ayudarte?'])
.addAnswer(['Tengo:', 'Zapatos', 'Bolsos', 'etc ...'])
.addAnswer(
['Para continuar escribe:', '*(1) Zapatos*', '*(2) Bolsos*'],
{ capture: true },
(ctx) => {
console.log('Aqui puedes ver más info del usuario...')
console.log('Puedes enviar un mail, hook, etc..')
console.log(ctx)
},
[flowBolsos, flowZapatos]
)

const main = async () => {
const adapterDB = new JsonFileAdapter()
const adapterFlow = createFlow([flowPrincipal])
const adapterProvider = createProvider(BaileysProvider)
createBot({
flow: adapterFlow,
provider: adapterProvider,
database: adapterDB,
})
}

main()
22 changes: 22 additions & 0 deletions starters/apps/base-baileys-json/package.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,22 @@
{
"name": "bot-whatsapp-base-bailey-json",
"version": "1.0.0",
"description": "",
"main": "app.js",
"scripts": {
"pre-copy": "cd .. && yarn run copy.lib base-baileys-json",
"start": "node app.js"
},
"keywords": [],
"dependencies": {
"@bot-whatsapp/bot": "latest",
"@bot-whatsapp/cli": "latest",
"@bot-whatsapp/database": "latest",
"@bot-whatsapp/provider": "latest",
"@adiwajshing/baileys": "4.4.0",
"mime-types": "2.1.35",
"wa-sticker-formatter": "4.3.2"
},
"author": "",
"license": "ISC"
}
34 changes: 34 additions & 0 deletions starters/apps/base-twilio-json/README.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,34 @@
### CHATBOT Whatsapp

Este bot es una aplicación que puedes vincular con tu whatsapp y crear flujos para automatizar tareas en tu negocio o procesos repetitivos.

Este bot contiene un flujo básico en el cual una persona (cliente) escribe **"hola"** y el bot responde:
- Bienvenido a mi tienda
- ¿Como puedo ayudarte?
- Tengo: Zapatos, Bolsos etc..

__Iniciar__

Los flujos se declaran de atrás para adelante, es decir que si tienes un flujo de este tipo:

Menu Principal
- SubMenu 1
- Submenu 1.1
- Submenu 2
- Submenu 2.1

Primero se declaran los submenus 1.1 y 2.1, luego el 1 y 2 y al final el principal.

```
npm install
npm start
```

__¿Tienes problemas?:__ [Abrir Issue](https://github.com/codigoencasa/bot-whatsapp/issues/new/choose)

------
> ¿Quieres se parte de este proyecto?
> - [Discord](https://link.codigoencasa.com/DISCORD)
> - [Twitter](https://twitter.com/leifermendez)
> - [Youtube](https://www.youtube.com/watch?v=5lEMCeWEJ8o&list=PL_WGMLcL4jzWPhdhcUyhbFU6bC0oJd2BR)
> - [Telegram](https://t.me/leifermendez)
94 changes: 94 additions & 0 deletions starters/apps/base-twilio-json/app.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,94 @@
const {
createBot,
createProvider,
createFlow,
addKeyword,
} = require('@bot-whatsapp/bot')

const TwilioProvider = require('@bot-whatsapp/provider/twilio')
const JsonFileAdapter = require('@bot-whatsapp/database/json')

/**
* Aqui declaramos los flujos hijos, los flujos se declaran de atras para adelante, es decir que si tienes un flujo de este tipo:
*
* Menu Principal
* - SubMenu 1
* - Submenu 1.1
* - Submenu 2
* - Submenu 2.1
*
* Primero declaras los submenus 1.1 y 2.1, luego el 1 y 2 y al final el principal.
*/

const flowBolsos2 = addKeyword(['bolsos2', '2'])
.addAnswer('� *MUCHOS* bolsos ...')
.addAnswer('y mas bolsos... bla bla')

const flowZapatos2 = addKeyword(['zapatos2', '2'])
.addAnswer('� repito que tengo *MUCHOS* zapatos.')
.addAnswer('y algunas otras cosas.')

const flowZapatos = addKeyword(['1', 'zapatos', 'ZAPATOS'])
.addAnswer('� Veo que elegiste zapatos')
.addAnswer('Tengo muchos zapatos...bla bla')
.addAnswer(
['Manda:', '*(2) Zapatos2*', 'para mas información'],
{ capture: true },
(ctx) => {
console.log('Aqui puedes ver más info del usuario...')
console.log('Puedes enviar un mail, hook, etc..')
console.log(ctx)
},
[flowZapatos2]
)

const flowBolsos = addKeyword(['2', 'bolsos', 'BOLSOS'])
.addAnswer('� Veo que elegiste bolsos')
.addAnswer('Tengo muchos bolsos...bla bla')
.addAnswer(
['Manda:', '*(2) Bolsos2*', 'para mas información.'],
{ capture: true },
(ctx) => {
console.log('Aqui puedes ver más info del usuario...')
console.log('Puedes enviar un mail, hook, etc..')
console.log(ctx)
},
[flowBolsos2]
)

/**
* Declarando flujo principal
*/

const flowPrincipal = addKeyword(['hola', 'ole', 'alo'])
.addAnswer(['Hola, bienvenido a mi tienda', '¿Como puedo ayudarte?'])
.addAnswer(['Tengo:', 'Zapatos', 'Bolsos', 'etc ...'])
.addAnswer(
['Para continuar escribe:', '*(1) Zapatos*', '*(2) Bolsos*'],
{ capture: true },
(ctx) => {
console.log('Aqui puedes ver más info del usuario...')
console.log('Puedes enviar un mail, hook, etc..')
console.log(ctx)
},
[flowBolsos, flowZapatos]
)

const main = async () => {
const adapterDB = new JsonFileAdapter()
const adapterFlow = createFlow([flowPrincipal])

const adapterProvider = createProvider(TwilioProvider, {
accountSid: 'YOUR_ACCOUNT_SID',
authToken: 'YOUR_ACCOUNT_TOKEN',
vendorNumber: '+14155238886',
})

createBot({
flow: adapterFlow,
provider: adapterProvider,
database: adapterDB,
})
}

main()
22 changes: 22 additions & 0 deletions starters/apps/base-twilio-json/package.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,22 @@
{
"name": "bot-whatsapp-base-twilio-json",
"version": "1.0.0",
"description": "",
"main": "app.js",
"scripts": {
"pre-copy": "cd .. && yarn run copy.lib base-twilio-json",
"start": "node app.js"
},
"keywords": [],
"dependencies": {
"body-parser": "^1.20.1",
"polka": "^0.5.2",
"twilio": "3.84.0",
"@bot-whatsapp/bot": "latest",
"@bot-whatsapp/cli": "latest",
"@bot-whatsapp/database": "latest",
"@bot-whatsapp/provider": "latest"
},
"author": "",
"license": "ISC"
}
34 changes: 34 additions & 0 deletions starters/apps/base-venom-json/README.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,34 @@
### CHATBOT Whatsapp

Este bot es una aplicación que puedes vincular con tu whatsapp y crear flujos para automatizar tareas en tu negocio o procesos repetitivos.

Este bot contiene un flujo básico en el cual una persona (cliente) escribe **"hola"** y el bot responde:
- Bienvenido a mi tienda
- ¿Como puedo ayudarte?
- Tengo: Zapatos, Bolsos etc..

__Iniciar__

Los flujos se declaran de atrás para adelante, es decir que si tienes un flujo de este tipo:

Menu Principal
- SubMenu 1
- Submenu 1.1
- Submenu 2
- Submenu 2.1

Primero se declaran los submenus 1.1 y 2.1, luego el 1 y 2 y al final el principal.

```
npm install
npm start
```

__¿Tienes problemas?:__ [Abrir Issue](https://github.com/codigoencasa/bot-whatsapp/issues/new/choose)

------
> ¿Quieres se parte de este proyecto?
> - [Discord](https://link.codigoencasa.com/DISCORD)
> - [Twitter](https://twitter.com/leifermendez)
> - [Youtube](https://www.youtube.com/watch?v=5lEMCeWEJ8o&list=PL_WGMLcL4jzWPhdhcUyhbFU6bC0oJd2BR)
> - [Telegram](https://t.me/leifermendez)
Loading

0 comments on commit 3012e02

Please sign in to comment.