mirror of
https://github.com/cheveguerra/bot-whatsapp.git
synced 2026-04-17 19:26:23 +00:00
109 lines
3.1 KiB
JavaScript
109 lines
3.1 KiB
JavaScript
const { createBot, createProvider, createFlow, addKeyword } = require('@bot-whatsapp/bot')
|
|
|
|
const MetaProvider = require('@bot-whatsapp/provider/meta')
|
|
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'
|
|
const MYSQL_DB_PORT = '3306'
|
|
|
|
/**
|
|
* 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 flowSecundario = addKeyword(['2', 'siguiente']).addAnswer(['📄 Aquí tenemos el flujo secundario'])
|
|
|
|
const flowDocs = addKeyword(['doc', 'documentacion', 'documentación']).addAnswer(
|
|
[
|
|
'📄 Aquí encontras las documentación recuerda que puedes mejorarla',
|
|
'https://bot-whatsapp.netlify.app/',
|
|
'\n*2* Para siguiente paso.',
|
|
],
|
|
null,
|
|
null,
|
|
[flowSecundario]
|
|
)
|
|
|
|
const flowTuto = addKeyword(['tutorial', 'tuto']).addAnswer(
|
|
[
|
|
'🙌 Aquí encontras un ejemplo rapido',
|
|
'https://bot-whatsapp.netlify.app/docs/example/',
|
|
'\n*2* Para siguiente paso.',
|
|
],
|
|
null,
|
|
null,
|
|
[flowSecundario]
|
|
)
|
|
|
|
const flowGracias = addKeyword(['gracias', 'grac']).addAnswer(
|
|
[
|
|
'🚀 Puedes aportar tu granito de arena a este proyecto',
|
|
'[*opencollective*] https://opencollective.com/bot-whatsapp',
|
|
'[*buymeacoffee*] https://www.buymeacoffee.com/leifermendez',
|
|
'[*patreon*] https://www.patreon.com/leifermendez',
|
|
'\n*2* Para siguiente paso.',
|
|
],
|
|
null,
|
|
null,
|
|
[flowSecundario]
|
|
)
|
|
|
|
const flowDiscord = addKeyword(['discord']).addAnswer(
|
|
['🤪 Únete al discord', 'https://link.codigoencasa.com/DISCORD', '\n*2* Para siguiente paso.'],
|
|
null,
|
|
null,
|
|
[flowSecundario]
|
|
)
|
|
|
|
const flowPrincipal = addKeyword(['hola', 'ole', 'alo'])
|
|
.addAnswer('🙌 Hola bienvenido a este *Chatbot*')
|
|
.addAnswer(
|
|
[
|
|
'te comparto los siguientes links de interes sobre el proyecto',
|
|
'👉 *doc* para ver la documentación',
|
|
'👉 *gracias* para ver la lista de videos',
|
|
'👉 *discord* unirte al discord',
|
|
],
|
|
null,
|
|
null,
|
|
[flowDocs, flowGracias, flowTuto, flowDiscord]
|
|
)
|
|
|
|
const main = async () => {
|
|
const adapterDB = new MySQLAdapter({
|
|
host: MYSQL_DB_HOST,
|
|
user: MYSQL_DB_USER,
|
|
database: MYSQL_DB_NAME,
|
|
password: MYSQL_DB_PASSWORD,
|
|
port: MYSQL_DB_PORT,
|
|
})
|
|
const adapterFlow = createFlow([flowPrincipal])
|
|
|
|
const adapterProvider = createProvider(MetaProvider, {
|
|
jwtToken: 'jwtToken',
|
|
numberId: 'numberId',
|
|
verifyToken: 'verifyToken',
|
|
})
|
|
|
|
createBot({
|
|
flow: adapterFlow,
|
|
provider: adapterProvider,
|
|
database: adapterDB,
|
|
})
|
|
}
|
|
|
|
main()
|