mirror of
https://github.com/cheveguerra/bot-whatsapp.git
synced 2026-04-18 03:29:15 +00:00
Se agrego informacion al ejemplo en app.js en el armado de los flujos secundarios
103 lines
3.0 KiB
JavaScript
103 lines
3.0 KiB
JavaScript
const {
|
|
createBot,
|
|
createProvider,
|
|
createFlow,
|
|
addKeyword,
|
|
addChild,
|
|
} = require('@bot-whatsapp/bot')
|
|
|
|
const BaileysProvider = require('@bot-whatsapp/provider/baileys')
|
|
const MySQLAdapter = require('@bot-whatsapp/database/mysql')
|
|
|
|
/**
|
|
* Declaramos las conexiones de MySQL
|
|
*/
|
|
const MYSQL_DB_HOST = 'localhost'
|
|
const MYSQL_DB_USER = 'usr'
|
|
const MYSQL_DB_PASSWORD = 'pass'
|
|
const MYSQL_DB_NAME = 'bot'
|
|
|
|
/**
|
|
* 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)
|
|
},
|
|
[...addChild(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)
|
|
},
|
|
[...addChild(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)
|
|
},
|
|
[...addChild(flowBolsos), ...addChild(flowZapatos)]
|
|
)
|
|
|
|
const main = async () => {
|
|
const adapterDB = new MySQLAdapter({
|
|
host: MYSQL_DB_HOST,
|
|
user: MYSQL_DB_USER,
|
|
database: MYSQL_DB_NAME,
|
|
password: MYSQL_DB_PASSWORD,
|
|
})
|
|
const adapterFlow = createFlow([flowPrincipal])
|
|
const adapterProvider = createProvider(BaileysProvider)
|
|
createBot({
|
|
flow: adapterFlow,
|
|
provider: adapterProvider,
|
|
database: adapterDB,
|
|
})
|
|
}
|
|
|
|
main()
|