mirror of
https://github.com/cheveguerra/bot-whatsapp.git
synced 2026-04-20 20:49:15 +00:00
Compare commits
38 Commits
feat/relea
...
leifermend
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
028f6186b4 | ||
|
|
aad129ea94 | ||
|
|
c64560bfc3 | ||
|
|
255ba86506 | ||
|
|
cd2dad9d26 | ||
|
|
c7ff6b4794 | ||
|
|
628d55df37 | ||
|
|
0059a1e7fb | ||
|
|
73ea7c0063 | ||
|
|
cb9f4befa0 | ||
|
|
decccb672a | ||
|
|
51466bf1c7 | ||
|
|
397798790e | ||
|
|
d3b8310180 | ||
|
|
7797c2b461 | ||
|
|
929e74c84b | ||
| 08e2552907 | |||
| 6617107ab8 | |||
|
|
8921959ea0 | ||
|
|
ec46cfdd65 | ||
|
|
bfb69d9a95 | ||
|
|
15f6972257 | ||
|
|
2319db3009 | ||
|
|
9cb98b5e73 | ||
|
|
2999e0e753 | ||
|
|
af716b7537 | ||
|
|
c6999c8493 | ||
|
|
d4b49a9bd7 | ||
|
|
eebc3c9806 | ||
|
|
257f1cc12d | ||
|
|
1b8ed93367 | ||
|
|
e5a9db7e12 | ||
|
|
f05ff4cf88 | ||
|
|
5735b49e25 | ||
|
|
cb33c0df68 | ||
|
|
8c6023e93b | ||
|
|
5d7c297f2f | ||
|
|
bb3f21b056 |
9
.github/FUNDING.yml
vendored
Normal file
9
.github/FUNDING.yml
vendored
Normal file
@@ -0,0 +1,9 @@
|
|||||||
|
# These are supported funding model platforms
|
||||||
|
|
||||||
|
github: # Replace with up to 4 GitHub Sponsors-enabled usernames e.g., [user1, user2]
|
||||||
|
patreon: # Replace with a single Patreon username
|
||||||
|
open_collective: #
|
||||||
|
ko_fi: # Replace with a single Ko-fi username
|
||||||
|
tidelift: # Replace with a single Tidelift platform-name/package-name e.g., npm/babel
|
||||||
|
community_bridge: # Replace with a single Community Bridge project-name e.g., cloud-foundry
|
||||||
|
custom: "https://www.buymeacoffee.com/leifermendez"
|
||||||
12
.github/workflows/ci.yml
vendored
12
.github/workflows/ci.yml
vendored
@@ -47,6 +47,8 @@ jobs:
|
|||||||
steps:
|
steps:
|
||||||
- name: Checkout
|
- name: Checkout
|
||||||
uses: actions/checkout@v3
|
uses: actions/checkout@v3
|
||||||
|
with:
|
||||||
|
ref: ${{ github.head_ref }}
|
||||||
|
|
||||||
- name: Setup Node
|
- name: Setup Node
|
||||||
uses: actions/setup-node@v3
|
uses: actions/setup-node@v3
|
||||||
@@ -72,15 +74,19 @@ jobs:
|
|||||||
- name: Release @bot-whatsapp/create-bot-whatsapp
|
- name: Release @bot-whatsapp/create-bot-whatsapp
|
||||||
run: yarn node ./scripts/release.js --name=create-bot-whatsapp --version= --token="${{ secrets.NPM_TOKEN }}"
|
run: yarn node ./scripts/release.js --name=create-bot-whatsapp --version= --token="${{ secrets.NPM_TOKEN }}"
|
||||||
|
|
||||||
- name: Release @bot-whatsapp/create-bot-whatsapp
|
|
||||||
run: yarn node ./scripts/release.js --name=create-bot-whatsapp --version= --token="${{ secrets.NPM_TOKEN }}"
|
|
||||||
|
|
||||||
- name: Release @bot-whatsapp/database
|
- name: Release @bot-whatsapp/database
|
||||||
run: yarn node ./scripts/release.js --name=database --version= --token="${{ secrets.NPM_TOKEN }}"
|
run: yarn node ./scripts/release.js --name=database --version= --token="${{ secrets.NPM_TOKEN }}"
|
||||||
|
|
||||||
- name: Release @bot-whatsapp/provider
|
- name: Release @bot-whatsapp/provider
|
||||||
run: yarn node ./scripts/release.js --name=provider --version= --token="${{ secrets.NPM_TOKEN }}"
|
run: yarn node ./scripts/release.js --name=provider --version= --token="${{ secrets.NPM_TOKEN }}"
|
||||||
|
|
||||||
|
- name: Commit Versioning
|
||||||
|
run: |
|
||||||
|
git config --global user.name 'Leifer Mendez (githubaction)'
|
||||||
|
git config --global user.email 'leifermendez@users.noreply.github.com'
|
||||||
|
git commit -am "ci(version): :zap: updated versions every packages"
|
||||||
|
git push
|
||||||
|
|
||||||
############ UNIT TEST ############
|
############ UNIT TEST ############
|
||||||
test-unit:
|
test-unit:
|
||||||
name: Unit Tests
|
name: Unit Tests
|
||||||
|
|||||||
3
.gitignore
vendored
3
.gitignore
vendored
@@ -1,4 +1,5 @@
|
|||||||
/node_modules
|
/node_modules
|
||||||
|
/packages/*/starters
|
||||||
/packages/*/node_modules
|
/packages/*/node_modules
|
||||||
/packages/*/dist
|
/packages/*/dist
|
||||||
/packages/*/docs/dist
|
/packages/*/docs/dist
|
||||||
@@ -28,6 +29,8 @@ tmp/
|
|||||||
!.yarn/plugins/@yarnpkg/plugin-postinstall.cjs
|
!.yarn/plugins/@yarnpkg/plugin-postinstall.cjs
|
||||||
.fleet/
|
.fleet/
|
||||||
example-app*/
|
example-app*/
|
||||||
|
base-*/
|
||||||
|
!starters/apps/base-*/
|
||||||
qr.svg
|
qr.svg
|
||||||
package-lock.json
|
package-lock.json
|
||||||
yarn-error.log
|
yarn-error.log
|
||||||
|
|||||||
@@ -4,10 +4,10 @@
|
|||||||
|
|
||||||
__Requerimientos:__
|
__Requerimientos:__
|
||||||
- Node v16 o superior __[descargar node](https://nodejs.org/es/download/)__
|
- Node v16 o superior __[descargar node](https://nodejs.org/es/download/)__
|
||||||
- __[Yarn](https://classic.yarnpkg.com/lang/en/docs/install/#windows-stable)__ como gestor de paquetes. En el link conseguiras las intrucciones para instalar yarn.
|
- __[Yarn](https://classic.yarnpkg.com/lang/en/docs/install/#windows-stable)__ como gestor de paquetes. En el link conseguirás las intrucciones para instalar yarn.
|
||||||
- __[VSCode](https://code.visualstudio.com/download)__ (recomendado): Editor de codigo con plugins
|
- __[VSCode](https://code.visualstudio.com/download)__ (recomendado): Editor de código con plugins.
|
||||||
- __[Conventional Commits](https://marketplace.visualstudio.com/items?itemName=vivaxy.vscode-conventional-commits&ssr=false#overview)__ (plugin-vscode) este plugin te ayudara a crear commit semantico.
|
- __[Conventional Commits](https://marketplace.visualstudio.com/items?itemName=vivaxy.vscode-conventional-commits&ssr=false#overview)__ (plugin-vscode) este plugin te ayudará a crear commit semántico.
|
||||||
- Se usara la rama __dev__ *(https://github.com/leifermendez/bot-whatsapp/tree/dev)* como rama principal hasta que se haga oficialmente el lanzamiento de la V2
|
- Se usará la rama __dev__ *(https://github.com/leifermendez/bot-whatsapp/tree/dev)* como rama principal hasta que se haga oficialmente el lanzamiento de la V2.
|
||||||
|
|
||||||
### 🚀 Iniciando
|
### 🚀 Iniciando
|
||||||
|
|
||||||
@@ -22,14 +22,14 @@ yarn install
|
|||||||
```
|
```
|
||||||
|
|
||||||
__Compilar (build)__
|
__Compilar (build)__
|
||||||
Para compilar la aplicación es necesario ejecutar, eso te genera dentro de packages del monorepo un directorio `lib`
|
Para compilar la aplicación es necesario ejecutar este comando, el cual genera un directorio `lib` dentro de los paquetes del monorepo.
|
||||||
|
|
||||||
```
|
```
|
||||||
yarn build
|
yarn build
|
||||||
```
|
```
|
||||||
|
|
||||||
__Example-app__
|
__Example-app__
|
||||||
Se ejecuta el CLI (Command Line Interface) para ayudarte a crear un app-bot de ejemplo
|
Se ejecuta el CLI (Command Line Interface) para ayudarte a crear un app-bot de ejemplo.
|
||||||
```
|
```
|
||||||
yarn run cli
|
yarn run cli
|
||||||
```
|
```
|
||||||
@@ -42,15 +42,16 @@ npm run pre-copy
|
|||||||
npm start
|
npm start
|
||||||
```
|
```
|
||||||
|
|
||||||
__Commit y Push__
|
### __Commit y Push__
|
||||||
El proyecto tiene implementado __[husky](https://typicode.github.io/husky/#/)__ es una herramienta que dispara unas acciones al momento de hacer commit y hacer push
|
|
||||||
|
|
||||||
__commit:__ Los commit son semanticos esto quiere decir que deben cumplir un standar al momento de escribirlos ejemplo ` feat(adapter): new adapter myqsl ` puede ver más info sobre esto __[aquí](https://github.com/conventional-changelog/commitlint/#what-is-commitlint)__
|
El proyecto tiene implementado __[husky](https://typicode.github.io/husky/#/)__, es una herramienta que dispara unas acciones al momento de hacer commit y hacer push.
|
||||||
|
|
||||||
__push:__ Cada push ejecutar `yarn run test` el cual ejecuta los test internos que tienen que cumplir con __95% de cobertura__.
|
__commit:__ Los commit son semánticos, esto quiere decir que deben cumplir un standar al momento de escribirlos ejemplo: ` feat(adapter): new adapter myqsl ` puede ver más info sobre esto __[aquí](https://github.com/conventional-changelog/commitlint/#what-is-commitlint)__
|
||||||
|
|
||||||
|
__push:__ Cada push ejecutar `yarn run test` el cual realiza los test internos que tienen que cumplir con __95% de cobertura__.
|
||||||
|
|
||||||
|
|
||||||
> Documento en constaten actualización....
|
> Documento en constante actualización....
|
||||||
|
|
||||||
------
|
------
|
||||||
- [Discord](https://link.codigoencasa.com/DISCORD)
|
- [Discord](https://link.codigoencasa.com/DISCORD)
|
||||||
|
|||||||
@@ -34,16 +34,16 @@ class CoreClass {
|
|||||||
listenerBusEvents = () => [
|
listenerBusEvents = () => [
|
||||||
{
|
{
|
||||||
event: 'preinit',
|
event: 'preinit',
|
||||||
func: () => printer('Iniciando provider espere...'),
|
func: () => printer('Iniciando proveedor, espere...'),
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
event: 'require_action',
|
event: 'require_action',
|
||||||
func: ({ instructions, title = '⚡⚡ ACCION REQUERIDA ⚡⚡' }) =>
|
func: ({ instructions, title = '⚡⚡ ACCIÓN REQUERIDA ⚡⚡' }) =>
|
||||||
printer(instructions, title),
|
printer(instructions, title),
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
event: 'ready',
|
event: 'ready',
|
||||||
func: () => printer('Provider conectado y listo'),
|
func: () => printer('Proveedor conectado y listo'),
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
event: 'auth_failure',
|
event: 'auth_failure',
|
||||||
|
|||||||
@@ -1,6 +1,6 @@
|
|||||||
{
|
{
|
||||||
"name": "@bot-whatsapp/bot",
|
"name": "@bot-whatsapp/bot",
|
||||||
"version": "0.0.4-alpha.0",
|
"version": "0.0.12-alpha.0",
|
||||||
"description": "",
|
"description": "",
|
||||||
"main": "./lib/bundle.bot.cjs",
|
"main": "./lib/bundle.bot.cjs",
|
||||||
"scripts": {
|
"scripts": {
|
||||||
|
|||||||
@@ -12,20 +12,20 @@ const checkNodeVersion = () => {
|
|||||||
)
|
)
|
||||||
process.exit(1)
|
process.exit(1)
|
||||||
}
|
}
|
||||||
console.log(green(`Node.js combatible ${version}`))
|
console.log(green(`Node.js compatible ${version}`))
|
||||||
console.log(``)
|
console.log(``)
|
||||||
}
|
}
|
||||||
|
|
||||||
const checkOs = () => {
|
const checkOs = () => {
|
||||||
console.log(bgCyan('🙂 Revisando tu Sistema Operativo'))
|
console.log(bgCyan('🙂 Revisando tu sistema operativo'))
|
||||||
const os = process.platform
|
const os = process.platform
|
||||||
if (!os.includes('win32')) {
|
if (!os.includes('win32')) {
|
||||||
const messages = [
|
const messages = [
|
||||||
`El sistema operativo actual (${os}) posiblemente requiera`,
|
`El sistema operativo actual (${os}) posiblemente requiera`,
|
||||||
`una confiuración adicional referente al puppeter`,
|
`una configuración adicional referente al puppeteer`,
|
||||||
``,
|
``,
|
||||||
`Recuerda pasar por el WIKI`,
|
`Recuerda pasar por el WIKI`,
|
||||||
`🔗 https://github.com/leifermendez/bot-whatsapp/wiki/Instalaci%C3%B3n`,
|
`🔗 https://github.com/leifermendez/bot-whatsapp/wiki/Instalación`,
|
||||||
``,
|
``,
|
||||||
]
|
]
|
||||||
|
|
||||||
|
|||||||
@@ -12,9 +12,13 @@ const copyFiles = async (from, to) => {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
const copyBaseApp = async () => {
|
/**
|
||||||
const BASEP_APP_PATH_FROM = `${process.cwd()}/starters/apps/base`
|
* Copiar directorio con archivos
|
||||||
const BASEP_APP_PATH_TO = `${process.cwd()}/example-app-base`
|
* @param {*} templateName
|
||||||
|
*/
|
||||||
|
const copyBaseApp = async (fromDir = process.cwd(), toDir = process.cwd()) => {
|
||||||
|
const BASEP_APP_PATH_FROM = `${fromDir}`
|
||||||
|
const BASEP_APP_PATH_TO = `${toDir}`
|
||||||
await copyFiles(BASEP_APP_PATH_FROM, BASEP_APP_PATH_TO)
|
await copyFiles(BASEP_APP_PATH_FROM, BASEP_APP_PATH_TO)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -14,7 +14,7 @@ const getPkgManage = async () => {
|
|||||||
}
|
}
|
||||||
|
|
||||||
const installDeps = (pkgManager, packageList) => {
|
const installDeps = (pkgManager, packageList) => {
|
||||||
const errorMessage = `Ocurrio un error instalando ${packageList}`
|
const errorMessage = `Ocurrió un error instalando ${packageList}`
|
||||||
let childProcess = []
|
let childProcess = []
|
||||||
|
|
||||||
const installSingle = (pkgInstall) => () => {
|
const installSingle = (pkgInstall) => () => {
|
||||||
|
|||||||
@@ -1,54 +1,58 @@
|
|||||||
const prompts = require('prompts')
|
const prompts = require('prompts')
|
||||||
const { yellow, red } = require('kleur')
|
const { yellow, red, cyan } = require('kleur')
|
||||||
const { installAll } = require('../install')
|
|
||||||
const { cleanSession } = require('../clean')
|
|
||||||
const { copyBaseApp } = require('../create-app')
|
const { copyBaseApp } = require('../create-app')
|
||||||
|
const { join } = require('path')
|
||||||
|
const { existsSync } = require('fs')
|
||||||
const { checkNodeVersion, checkOs } = require('../check')
|
const { checkNodeVersion, checkOs } = require('../check')
|
||||||
const { jsonConfig } = require('../configuration')
|
|
||||||
|
const bannerDone = () => {
|
||||||
|
console.log(``)
|
||||||
|
console.log(
|
||||||
|
cyan(
|
||||||
|
[
|
||||||
|
`[Agradecimientos]: Este es un proyecto OpenSource, si tienes intenciones de colaborar puedes hacerlo:`,
|
||||||
|
`[😉] Comprando un cafe https://www.buymeacoffee.com/leifermendez`,
|
||||||
|
`[⭐] Dar estrella https://github.com/leifermendez/bot-whatsapp`,
|
||||||
|
`[🚀] Realizando mejoras en el codigo`,
|
||||||
|
].join('\n')
|
||||||
|
)
|
||||||
|
)
|
||||||
|
console.log(``)
|
||||||
|
}
|
||||||
|
|
||||||
const startInteractive = async () => {
|
const startInteractive = async () => {
|
||||||
const questions = [
|
const questions = [
|
||||||
{
|
{
|
||||||
type: 'text',
|
type: 'text',
|
||||||
name: 'exampeOpt',
|
name: 'outDir',
|
||||||
message:
|
message: 'Quieres crear un bot? (Y/n)',
|
||||||
'Quieres crear una app de ejemplo "example-app-example"? (Y/n)',
|
|
||||||
},
|
|
||||||
// {
|
|
||||||
// type: 'text',
|
|
||||||
// name: 'dependencies',
|
|
||||||
// message:
|
|
||||||
// 'Quieres actualizar las librerias "whatsapp-web.js"? (Y/n)',
|
|
||||||
// },
|
|
||||||
{
|
|
||||||
type: 'text',
|
|
||||||
name: 'cleanTmp',
|
|
||||||
message: 'Quieres limpiar la session del bot? (Y/n)',
|
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
type: 'multiselect',
|
type: 'multiselect',
|
||||||
name: 'providerWs',
|
name: 'providerWs',
|
||||||
message: 'Proveedor de Whatsapp',
|
message: '¿Cuál proveedor de whatsapp quieres utilizar?',
|
||||||
choices: [
|
choices: [
|
||||||
{ title: 'whatsapp-web.js', value: 'whatsapp-web.js' },
|
{ title: 'whatsapp-web.js (gratis)', value: 'wweb' },
|
||||||
|
{ title: 'Twilio', value: 'twilio' },
|
||||||
|
{ title: 'Baileys (gratis)', value: 'bailey', disabled: true },
|
||||||
{ title: 'API Oficial (Meta)', value: 'meta', disabled: true },
|
{ title: 'API Oficial (Meta)', value: 'meta', disabled: true },
|
||||||
{ title: 'Twilio', value: 'twilio', disabled: true },
|
|
||||||
],
|
],
|
||||||
max: 1,
|
max: 1,
|
||||||
hint: 'Espacio para selecionar',
|
hint: 'Espacio para seleccionar',
|
||||||
instructions: '↑/↓',
|
instructions: '↑/↓',
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
type: 'multiselect',
|
type: 'multiselect',
|
||||||
name: 'providerDb',
|
name: 'providerDb',
|
||||||
message: 'Cual base de datos quieres usar',
|
message: '¿Cuál base de datos quieres utilizar?',
|
||||||
choices: [
|
choices: [
|
||||||
{ title: 'JSONFile', value: 'json' },
|
{ title: 'Memory', value: 'memory' },
|
||||||
{ title: 'MySQL', value: 'mysql', disabled: true },
|
{ title: 'Mongo', value: 'mongo' },
|
||||||
{ title: 'Mongo', value: 'mongo', disabled: true },
|
{ title: 'MySQL', value: 'mysql' },
|
||||||
|
{ title: 'Json', value: 'json', disabled: true },
|
||||||
],
|
],
|
||||||
max: 1,
|
max: 1,
|
||||||
hint: 'Espacio para selecionar',
|
hint: 'Espacio para seleccionar',
|
||||||
instructions: '↑/↓',
|
instructions: '↑/↓',
|
||||||
},
|
},
|
||||||
]
|
]
|
||||||
@@ -57,90 +61,77 @@ const startInteractive = async () => {
|
|||||||
checkNodeVersion()
|
checkNodeVersion()
|
||||||
checkOs()
|
checkOs()
|
||||||
const onCancel = () => {
|
const onCancel = () => {
|
||||||
console.log('Proceso cancelado!')
|
console.log('¡Proceso cancelado!')
|
||||||
return true
|
return true
|
||||||
}
|
}
|
||||||
const response = await prompts(questions, { onCancel })
|
const response = await prompts(questions, { onCancel })
|
||||||
const {
|
const { outDir = '', providerDb = [], providerWs = [] } = response
|
||||||
dependencies = '',
|
|
||||||
cleanTmp = '',
|
const createApp = async (templateName = null) => {
|
||||||
exampeOpt = '',
|
if (!templateName)
|
||||||
providerDb = [],
|
throw new Error('TEMPLATE_NAME_INVALID: ', templateName)
|
||||||
providerWs = [],
|
|
||||||
} = response
|
const possiblesPath = [
|
||||||
/**
|
join(__dirname, 'starters', 'apps', templateName),
|
||||||
* Question
|
join(__dirname, '..', 'starters', 'apps', templateName),
|
||||||
* @returns
|
join(__dirname, '..', '..', 'starters', 'apps', templateName),
|
||||||
*/
|
]
|
||||||
const installOrUdpateDep = async () => {
|
|
||||||
const answer = dependencies.toLowerCase() || 'n'
|
const answer = outDir.toLowerCase() || 'n'
|
||||||
if (answer.includes('n')) return true
|
if (answer.includes('n')) return true
|
||||||
|
|
||||||
if (answer.includes('y')) {
|
if (answer.includes('y')) {
|
||||||
await installAll()
|
const indexOfPath = possiblesPath.find((a) => existsSync(a))
|
||||||
return true
|
await copyBaseApp(indexOfPath, join(process.cwd(), templateName))
|
||||||
|
console.log(``)
|
||||||
|
console.log(yellow(`cd ${templateName}`))
|
||||||
|
console.log(yellow(`npm install`))
|
||||||
|
console.log(yellow(`npm start`))
|
||||||
|
console.log(``)
|
||||||
|
|
||||||
|
return outDir
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Question
|
* Selccionar Provider (meta, twilio, etc...)
|
||||||
* @returns
|
* @returns
|
||||||
*/
|
*/
|
||||||
const cleanAllSession = async () => {
|
|
||||||
const answer = cleanTmp.toLowerCase() || 'n'
|
|
||||||
if (answer.includes('n')) return true
|
|
||||||
|
|
||||||
if (answer.includes('y')) {
|
|
||||||
await cleanSession()
|
|
||||||
return true
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
const createApp = async () => {
|
|
||||||
const answer = exampeOpt.toLowerCase() || 'n'
|
|
||||||
if (answer.includes('n')) return true
|
|
||||||
|
|
||||||
if (answer.includes('y')) {
|
|
||||||
await copyBaseApp()
|
|
||||||
return true
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
const vendorProvider = async () => {
|
const vendorProvider = async () => {
|
||||||
|
const [answer] = providerWs
|
||||||
if (!providerWs.length) {
|
if (!providerWs.length) {
|
||||||
console.log(
|
console.log(
|
||||||
red(
|
red(
|
||||||
`Debes de seleccionar una WS Provider. Tecla [Space] para seleccionar`
|
`Debes seleccionar un proveedor de whatsapp. Tecla [Space] para seleccionar`
|
||||||
)
|
)
|
||||||
)
|
)
|
||||||
process.exit(1)
|
process.exit(1)
|
||||||
}
|
}
|
||||||
console.log(yellow(`'Deberia crer una carpeta en root/provider'`))
|
return answer
|
||||||
return true
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Selecionar adaptador de base de datos
|
||||||
|
* @returns
|
||||||
|
*/
|
||||||
const dbProvider = async () => {
|
const dbProvider = async () => {
|
||||||
const answer = providerDb
|
const [answer] = providerDb
|
||||||
if (!providerDb.length) {
|
if (!providerDb.length) {
|
||||||
console.log(
|
console.log(
|
||||||
red(
|
red(
|
||||||
`Debes de seleccionar una DB Provider. Tecla [Space] para seleccionar`
|
`Debes seleccionar un proveedor de base de datos. Tecla [Space] para seleccionar`
|
||||||
)
|
)
|
||||||
)
|
)
|
||||||
process.exit(1)
|
process.exit(1)
|
||||||
}
|
}
|
||||||
if (answer === 'json') {
|
return answer
|
||||||
console.log('Deberia crer una carpeta en root/data')
|
|
||||||
return 1
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
await createApp()
|
const providerAdapter = await vendorProvider()
|
||||||
await installOrUdpateDep()
|
const dbAdapter = await dbProvider()
|
||||||
await cleanAllSession()
|
const NAME_DIR = ['base', providerAdapter, dbAdapter].join('-')
|
||||||
await vendorProvider()
|
await createApp(NAME_DIR)
|
||||||
await dbProvider()
|
bannerDone()
|
||||||
await jsonConfig()
|
|
||||||
}
|
}
|
||||||
|
|
||||||
module.exports = { startInteractive }
|
module.exports = { startInteractive }
|
||||||
|
|||||||
@@ -1,6 +1,6 @@
|
|||||||
{
|
{
|
||||||
"name": "@bot-whatsapp/cli",
|
"name": "@bot-whatsapp/cli",
|
||||||
"version": "0.0.2-alpha.0",
|
"version": "0.0.19-alpha.0",
|
||||||
"description": "",
|
"description": "",
|
||||||
"main": "index.js",
|
"main": "index.js",
|
||||||
"devDependencies": {
|
"devDependencies": {
|
||||||
@@ -10,6 +10,7 @@
|
|||||||
"kleur": "^4.1.5"
|
"kleur": "^4.1.5"
|
||||||
},
|
},
|
||||||
"files": [
|
"files": [
|
||||||
|
"./starters/",
|
||||||
"./lib/cli/bundle.cli.cjs"
|
"./lib/cli/bundle.cli.cjs"
|
||||||
],
|
],
|
||||||
"bin": {
|
"bin": {
|
||||||
|
|||||||
@@ -1,5 +1,6 @@
|
|||||||
const banner = require('../../config/banner.rollup.json')
|
const banner = require('../../config/banner.rollup.json')
|
||||||
const commonjs = require('@rollup/plugin-commonjs')
|
const commonjs = require('@rollup/plugin-commonjs')
|
||||||
|
const copy = require('rollup-plugin-copy')
|
||||||
const { nodeResolve } = require('@rollup/plugin-node-resolve')
|
const { nodeResolve } = require('@rollup/plugin-node-resolve')
|
||||||
const { join } = require('path')
|
const { join } = require('path')
|
||||||
|
|
||||||
@@ -12,5 +13,11 @@ module.exports = {
|
|||||||
file: PATH,
|
file: PATH,
|
||||||
format: 'cjs',
|
format: 'cjs',
|
||||||
},
|
},
|
||||||
plugins: [commonjs(), nodeResolve()],
|
plugins: [
|
||||||
|
copy({
|
||||||
|
targets: [{ src: 'starters/*', dest: join(__dirname, 'starters') }],
|
||||||
|
}),
|
||||||
|
commonjs(),
|
||||||
|
nodeResolve(),
|
||||||
|
],
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,3 +1,3 @@
|
|||||||
#!/usr/bin/env node
|
#!/usr/bin/env node
|
||||||
const main = require('../lib/bin/bundle.create.cjs')
|
const main = require('../lib/bundle.create-bot-whatsapp.cjs')
|
||||||
main()
|
main()
|
||||||
|
|||||||
@@ -1,12 +1,10 @@
|
|||||||
|
const { startInteractive } = require('../cli')
|
||||||
/**
|
/**
|
||||||
* Main function
|
* Voy a llamar directo a CLI
|
||||||
|
* Temporalmente luego mejoro esta
|
||||||
|
* parte
|
||||||
|
* @returns
|
||||||
*/
|
*/
|
||||||
const main = () => {
|
const main = () => startInteractive()
|
||||||
console.clear()
|
|
||||||
console.log(``)
|
|
||||||
console.log(`[PostInstall]: Este es el main function.`)
|
|
||||||
console.log(`[PostInstall]: 👌 Aqui podrias instalar cosas`)
|
|
||||||
console.log(``)
|
|
||||||
}
|
|
||||||
|
|
||||||
module.exports = main
|
module.exports = main
|
||||||
|
|||||||
@@ -1,12 +1,15 @@
|
|||||||
{
|
{
|
||||||
"name": "create-bot-whatsapp",
|
"name": "create-bot-whatsapp",
|
||||||
"version": "0.0.9-alpha.0",
|
"version": "0.0.25-alpha.0",
|
||||||
"description": "",
|
"description": "",
|
||||||
"main": "./lib/bin/bundle.create.cjs",
|
"main": "./lib/bundle.create-bot-whatsapp.cjs",
|
||||||
|
"files": [
|
||||||
|
"./starters/",
|
||||||
|
"./bin/create.js",
|
||||||
|
"./lib/bundle.create-bot-whatsapp.cjs"
|
||||||
|
],
|
||||||
|
"bin": "./bin/create.js",
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
"@bot-whatsapp/cli": "*"
|
"@bot-whatsapp/cli": "*"
|
||||||
},
|
|
||||||
"bin": {
|
|
||||||
"bot": "./lib/bin/bundle.create.cjs"
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,9 +1,10 @@
|
|||||||
const banner = require('../../config/banner.rollup.json')
|
const banner = require('../../config/banner.rollup.json')
|
||||||
const commonjs = require('@rollup/plugin-commonjs')
|
const commonjs = require('@rollup/plugin-commonjs')
|
||||||
|
|
||||||
const { nodeResolve } = require('@rollup/plugin-node-resolve')
|
const { nodeResolve } = require('@rollup/plugin-node-resolve')
|
||||||
const { join } = require('path')
|
const { join } = require('path')
|
||||||
|
|
||||||
const PATH = join(__dirname, 'lib', 'bin', 'bundle.create.cjs')
|
const PATH = join(__dirname, 'lib', 'bundle.create-bot-whatsapp.cjs')
|
||||||
|
|
||||||
module.exports = {
|
module.exports = {
|
||||||
input: join(__dirname, 'index.js'),
|
input: join(__dirname, 'index.js'),
|
||||||
|
|||||||
@@ -1,11 +1,14 @@
|
|||||||
{
|
{
|
||||||
"name": "@bot-whatsapp/database",
|
"name": "@bot-whatsapp/database",
|
||||||
"version": "0.0.2-alpha.0",
|
"version": "0.0.11-alpha.0",
|
||||||
"description": "Esto es el conector a mysql, pg, mongo",
|
"description": "Esto es el conector a mysql, pg, mongo",
|
||||||
"main": "./lib/mock/index.cjs",
|
"main": "./lib/mock/index.cjs",
|
||||||
"keywords": [],
|
"keywords": [],
|
||||||
"author": "",
|
"author": "",
|
||||||
"license": "ISC",
|
"license": "ISC",
|
||||||
|
"files": [
|
||||||
|
"./lib/"
|
||||||
|
],
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
"dotenv": "^16.0.3",
|
"dotenv": "^16.0.3",
|
||||||
"mongodb": "^4.11.0",
|
"mongodb": "^4.11.0",
|
||||||
|
|||||||
@@ -1,11 +1,14 @@
|
|||||||
{
|
{
|
||||||
"name": "@bot-whatsapp/provider",
|
"name": "@bot-whatsapp/provider",
|
||||||
"version": "0.0.7-alpha.0",
|
"version": "0.0.17-alpha.0",
|
||||||
"description": "Esto es el conector a Twilio, Meta, etc...",
|
"description": "Esto es el conector a Twilio, Meta, etc...",
|
||||||
"main": "./lib/mock/index.cjs",
|
"main": "./lib/mock/index.cjs",
|
||||||
"keywords": [],
|
"keywords": [],
|
||||||
"author": "",
|
"author": "",
|
||||||
"license": "ISC",
|
"license": "ISC",
|
||||||
|
"files": [
|
||||||
|
"./lib/"
|
||||||
|
],
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
"@bot-whatsapp/bot": "*",
|
"@bot-whatsapp/bot": "*",
|
||||||
"qr-image": "^3.2.0"
|
"qr-image": "^3.2.0"
|
||||||
|
|||||||
@@ -15,4 +15,4 @@ Promise.all([
|
|||||||
copyLibPkg('bot', appDir),
|
copyLibPkg('bot', appDir),
|
||||||
copyLibPkg('database', appDir),
|
copyLibPkg('database', appDir),
|
||||||
copyLibPkg('provider', appDir),
|
copyLibPkg('provider', appDir),
|
||||||
]).then(() => console.log('Todas las lib copiadas'))
|
]).then(() => console.log('Todas las librerías copiadas'))
|
||||||
|
|||||||
@@ -1,10 +1,10 @@
|
|||||||
{
|
{
|
||||||
"name": "bot-whatsapp-basic",
|
"name": "bot-whatsapp-base",
|
||||||
"version": "1.0.0",
|
"version": "1.0.0",
|
||||||
"description": "",
|
"description": "",
|
||||||
"main": "app.js",
|
"main": "app.js",
|
||||||
"scripts": {
|
"scripts": {
|
||||||
"pre-copy": "cd .. && yarn run copy.lib example-app-basic",
|
"pre-copy": "cd .. && yarn run copy.lib base-twilio-memory",
|
||||||
"start": "node app.js"
|
"start": "node app.js"
|
||||||
},
|
},
|
||||||
"keywords": [],
|
"keywords": [],
|
||||||
@@ -1,9 +1,9 @@
|
|||||||
### BASIC APP
|
### BASE APP
|
||||||
|
|
||||||
Este bot contiene un flujo basico en el cual una persona (cliente) escribe **"hola"** y el bot responde.
|
Este bot contiene un flujo basico en el cual una persona (cliente) escribe **"hola"** y el bot responde.
|
||||||
|
- Bienvenido a mi tienda
|
||||||
|
- Como puedo ayudarte?
|
||||||

|
- Tengo: Zapatos Bolsos etc..
|
||||||
|
|
||||||
------
|
------
|
||||||
- [Discord](https://link.codigoencasa.com/DISCORD)
|
- [Discord](https://link.codigoencasa.com/DISCORD)
|
||||||
28
starters/apps/base-twilio-mongo/app.js
Normal file
28
starters/apps/base-twilio-mongo/app.js
Normal file
@@ -0,0 +1,28 @@
|
|||||||
|
const {
|
||||||
|
createBot,
|
||||||
|
createProvider,
|
||||||
|
createFlow,
|
||||||
|
addKeyword,
|
||||||
|
} = require('@bot-whatsapp/bot')
|
||||||
|
|
||||||
|
const WebWhatsappProvider = require('@bot-whatsapp/provider/web-whatsapp')
|
||||||
|
const MockAdapter = require('@bot-whatsapp/database/mock')
|
||||||
|
|
||||||
|
const flowPrincipal = addKeyword(['hola', 'ole', 'HOLA'])
|
||||||
|
.addAnswer('Bienvenido a mi tienda')
|
||||||
|
.addAnswer('Como puedo ayudarte?')
|
||||||
|
.addAnswer(['Tengo:', 'Zapatos', 'Bolsos', 'etc..'])
|
||||||
|
|
||||||
|
const main = async () => {
|
||||||
|
const adapterDB = new MockAdapter()
|
||||||
|
const adapterFlow = createFlow([flowPrincipal])
|
||||||
|
const adapterProvider = createProvider(WebWhatsappProvider)
|
||||||
|
|
||||||
|
createBot({
|
||||||
|
flow: adapterFlow,
|
||||||
|
provider: adapterProvider,
|
||||||
|
database: adapterDB,
|
||||||
|
})
|
||||||
|
}
|
||||||
|
|
||||||
|
main()
|
||||||
16
starters/apps/base-twilio-mongo/package.json
Normal file
16
starters/apps/base-twilio-mongo/package.json
Normal file
@@ -0,0 +1,16 @@
|
|||||||
|
{
|
||||||
|
"name": "bot-whatsapp-base",
|
||||||
|
"version": "1.0.0",
|
||||||
|
"description": "",
|
||||||
|
"main": "app.js",
|
||||||
|
"scripts": {
|
||||||
|
"pre-copy": "cd .. && yarn run copy.lib base-twilio-mongo",
|
||||||
|
"start": "node app.js"
|
||||||
|
},
|
||||||
|
"keywords": [],
|
||||||
|
"dependencies": {
|
||||||
|
"whatsapp-web.js": "^1.18.3"
|
||||||
|
},
|
||||||
|
"author": "",
|
||||||
|
"license": "ISC"
|
||||||
|
}
|
||||||
12
starters/apps/base-twilio-mysql/README.md
Normal file
12
starters/apps/base-twilio-mysql/README.md
Normal file
@@ -0,0 +1,12 @@
|
|||||||
|
### BASE APP
|
||||||
|
|
||||||
|
Este bot contiene un flujo basico en el cual una persona (cliente) escribe **"hola"** y el bot responde.
|
||||||
|
- Bienvenido a mi tienda
|
||||||
|
- Como puedo ayudarte?
|
||||||
|
- Tengo: Zapatos Bolsos etc..
|
||||||
|
|
||||||
|
------
|
||||||
|
- [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)
|
||||||
28
starters/apps/base-twilio-mysql/app.js
Normal file
28
starters/apps/base-twilio-mysql/app.js
Normal file
@@ -0,0 +1,28 @@
|
|||||||
|
const {
|
||||||
|
createBot,
|
||||||
|
createProvider,
|
||||||
|
createFlow,
|
||||||
|
addKeyword,
|
||||||
|
} = require('@bot-whatsapp/bot')
|
||||||
|
|
||||||
|
const WebWhatsappProvider = require('@bot-whatsapp/provider/web-whatsapp')
|
||||||
|
const MockAdapter = require('@bot-whatsapp/database/mock')
|
||||||
|
|
||||||
|
const flowPrincipal = addKeyword(['hola', 'ole', 'HOLA'])
|
||||||
|
.addAnswer('Bienvenido a mi tienda')
|
||||||
|
.addAnswer('Como puedo ayudarte?')
|
||||||
|
.addAnswer(['Tengo:', 'Zapatos', 'Bolsos', 'etc..'])
|
||||||
|
|
||||||
|
const main = async () => {
|
||||||
|
const adapterDB = new MockAdapter()
|
||||||
|
const adapterFlow = createFlow([flowPrincipal])
|
||||||
|
const adapterProvider = createProvider(WebWhatsappProvider)
|
||||||
|
|
||||||
|
createBot({
|
||||||
|
flow: adapterFlow,
|
||||||
|
provider: adapterProvider,
|
||||||
|
database: adapterDB,
|
||||||
|
})
|
||||||
|
}
|
||||||
|
|
||||||
|
main()
|
||||||
16
starters/apps/base-twilio-mysql/package.json
Normal file
16
starters/apps/base-twilio-mysql/package.json
Normal file
@@ -0,0 +1,16 @@
|
|||||||
|
{
|
||||||
|
"name": "bot-whatsapp-base",
|
||||||
|
"version": "1.0.0",
|
||||||
|
"description": "",
|
||||||
|
"main": "app.js",
|
||||||
|
"scripts": {
|
||||||
|
"pre-copy": "cd .. && yarn run copy.lib base-twilio-mysql",
|
||||||
|
"start": "node app.js"
|
||||||
|
},
|
||||||
|
"keywords": [],
|
||||||
|
"dependencies": {
|
||||||
|
"whatsapp-web.js": "^1.18.3"
|
||||||
|
},
|
||||||
|
"author": "",
|
||||||
|
"license": "ISC"
|
||||||
|
}
|
||||||
12
starters/apps/base-wweb-memory/README.md
Normal file
12
starters/apps/base-wweb-memory/README.md
Normal file
@@ -0,0 +1,12 @@
|
|||||||
|
### BASE APP
|
||||||
|
|
||||||
|
Este bot contiene un flujo basico en el cual una persona (cliente) escribe **"hola"** y el bot responde.
|
||||||
|
- Bienvenido a mi tienda
|
||||||
|
- Como puedo ayudarte?
|
||||||
|
- Tengo: Zapatos Bolsos etc..
|
||||||
|
|
||||||
|
------
|
||||||
|
- [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)
|
||||||
28
starters/apps/base-wweb-memory/app.js
Normal file
28
starters/apps/base-wweb-memory/app.js
Normal file
@@ -0,0 +1,28 @@
|
|||||||
|
const {
|
||||||
|
createBot,
|
||||||
|
createProvider,
|
||||||
|
createFlow,
|
||||||
|
addKeyword,
|
||||||
|
} = require('@bot-whatsapp/bot')
|
||||||
|
|
||||||
|
const WebWhatsappProvider = require('@bot-whatsapp/provider/web-whatsapp')
|
||||||
|
const MockAdapter = require('@bot-whatsapp/database/mock')
|
||||||
|
|
||||||
|
const flowPrincipal = addKeyword(['hola', 'ole', 'HOLA'])
|
||||||
|
.addAnswer('Bienvenido a mi tienda')
|
||||||
|
.addAnswer('Como puedo ayudarte?')
|
||||||
|
.addAnswer(['Tengo:', 'Zapatos', 'Bolsos', 'etc..'])
|
||||||
|
|
||||||
|
const main = async () => {
|
||||||
|
const adapterDB = new MockAdapter()
|
||||||
|
const adapterFlow = createFlow([flowPrincipal])
|
||||||
|
const adapterProvider = createProvider(WebWhatsappProvider)
|
||||||
|
|
||||||
|
createBot({
|
||||||
|
flow: adapterFlow,
|
||||||
|
provider: adapterProvider,
|
||||||
|
database: adapterDB,
|
||||||
|
})
|
||||||
|
}
|
||||||
|
|
||||||
|
main()
|
||||||
@@ -4,7 +4,7 @@
|
|||||||
"description": "",
|
"description": "",
|
||||||
"main": "app.js",
|
"main": "app.js",
|
||||||
"scripts": {
|
"scripts": {
|
||||||
"pre-copy": "cd .. && yarn run copy.lib example-app-base",
|
"pre-copy": "cd .. && yarn run copy.lib base-wweb-memory",
|
||||||
"start": "node app.js"
|
"start": "node app.js"
|
||||||
},
|
},
|
||||||
"keywords": [],
|
"keywords": [],
|
||||||
12
starters/apps/base-wweb-mongo/README.md
Normal file
12
starters/apps/base-wweb-mongo/README.md
Normal file
@@ -0,0 +1,12 @@
|
|||||||
|
### BASE APP
|
||||||
|
|
||||||
|
Este bot contiene un flujo basico en el cual una persona (cliente) escribe **"hola"** y el bot responde.
|
||||||
|
- Bienvenido a mi tienda
|
||||||
|
- Como puedo ayudarte?
|
||||||
|
- Tengo: Zapatos Bolsos etc..
|
||||||
|
|
||||||
|
------
|
||||||
|
- [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)
|
||||||
28
starters/apps/base-wweb-mongo/app.js
Normal file
28
starters/apps/base-wweb-mongo/app.js
Normal file
@@ -0,0 +1,28 @@
|
|||||||
|
const {
|
||||||
|
createBot,
|
||||||
|
createProvider,
|
||||||
|
createFlow,
|
||||||
|
addKeyword,
|
||||||
|
} = require('@bot-whatsapp/bot')
|
||||||
|
|
||||||
|
const WebWhatsappProvider = require('@bot-whatsapp/provider/web-whatsapp')
|
||||||
|
const MockAdapter = require('@bot-whatsapp/database/mock')
|
||||||
|
|
||||||
|
const flowPrincipal = addKeyword(['hola', 'ole', 'HOLA'])
|
||||||
|
.addAnswer('Bienvenido a mi tienda')
|
||||||
|
.addAnswer('Como puedo ayudarte?')
|
||||||
|
.addAnswer(['Tengo:', 'Zapatos', 'Bolsos', 'etc..'])
|
||||||
|
|
||||||
|
const main = async () => {
|
||||||
|
const adapterDB = new MockAdapter()
|
||||||
|
const adapterFlow = createFlow([flowPrincipal])
|
||||||
|
const adapterProvider = createProvider(WebWhatsappProvider)
|
||||||
|
|
||||||
|
createBot({
|
||||||
|
flow: adapterFlow,
|
||||||
|
provider: adapterProvider,
|
||||||
|
database: adapterDB,
|
||||||
|
})
|
||||||
|
}
|
||||||
|
|
||||||
|
main()
|
||||||
16
starters/apps/base-wweb-mongo/package.json
Normal file
16
starters/apps/base-wweb-mongo/package.json
Normal file
@@ -0,0 +1,16 @@
|
|||||||
|
{
|
||||||
|
"name": "bot-whatsapp-base",
|
||||||
|
"version": "1.0.0",
|
||||||
|
"description": "",
|
||||||
|
"main": "app.js",
|
||||||
|
"scripts": {
|
||||||
|
"pre-copy": "cd .. && yarn run copy.lib base-wweb-mongo",
|
||||||
|
"start": "node app.js"
|
||||||
|
},
|
||||||
|
"keywords": [],
|
||||||
|
"dependencies": {
|
||||||
|
"whatsapp-web.js": "^1.18.3"
|
||||||
|
},
|
||||||
|
"author": "",
|
||||||
|
"license": "ISC"
|
||||||
|
}
|
||||||
12
starters/apps/base-wweb-mysql/README.md
Normal file
12
starters/apps/base-wweb-mysql/README.md
Normal file
@@ -0,0 +1,12 @@
|
|||||||
|
### BASE APP
|
||||||
|
|
||||||
|
Este bot contiene un flujo basico en el cual una persona (cliente) escribe **"hola"** y el bot responde.
|
||||||
|
- Bienvenido a mi tienda
|
||||||
|
- Como puedo ayudarte?
|
||||||
|
- Tengo: Zapatos Bolsos etc..
|
||||||
|
|
||||||
|
------
|
||||||
|
- [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)
|
||||||
28
starters/apps/base-wweb-mysql/app.js
Normal file
28
starters/apps/base-wweb-mysql/app.js
Normal file
@@ -0,0 +1,28 @@
|
|||||||
|
const {
|
||||||
|
createBot,
|
||||||
|
createProvider,
|
||||||
|
createFlow,
|
||||||
|
addKeyword,
|
||||||
|
} = require('@bot-whatsapp/bot')
|
||||||
|
|
||||||
|
const WebWhatsappProvider = require('@bot-whatsapp/provider/web-whatsapp')
|
||||||
|
const MockAdapter = require('@bot-whatsapp/database/mock')
|
||||||
|
|
||||||
|
const flowPrincipal = addKeyword(['hola', 'ole', 'HOLA'])
|
||||||
|
.addAnswer('Bienvenido a mi tienda')
|
||||||
|
.addAnswer('Como puedo ayudarte?')
|
||||||
|
.addAnswer(['Tengo:', 'Zapatos', 'Bolsos', 'etc..'])
|
||||||
|
|
||||||
|
const main = async () => {
|
||||||
|
const adapterDB = new MockAdapter()
|
||||||
|
const adapterFlow = createFlow([flowPrincipal])
|
||||||
|
const adapterProvider = createProvider(WebWhatsappProvider)
|
||||||
|
|
||||||
|
createBot({
|
||||||
|
flow: adapterFlow,
|
||||||
|
provider: adapterProvider,
|
||||||
|
database: adapterDB,
|
||||||
|
})
|
||||||
|
}
|
||||||
|
|
||||||
|
main()
|
||||||
16
starters/apps/base-wweb-mysql/package.json
Normal file
16
starters/apps/base-wweb-mysql/package.json
Normal file
@@ -0,0 +1,16 @@
|
|||||||
|
{
|
||||||
|
"name": "bot-whatsapp-base",
|
||||||
|
"version": "1.0.0",
|
||||||
|
"description": "",
|
||||||
|
"main": "app.js",
|
||||||
|
"scripts": {
|
||||||
|
"pre-copy": "cd .. && yarn run copy.lib base-wweb-mysql",
|
||||||
|
"start": "node app.js"
|
||||||
|
},
|
||||||
|
"keywords": [],
|
||||||
|
"dependencies": {
|
||||||
|
"whatsapp-web.js": "^1.18.3"
|
||||||
|
},
|
||||||
|
"author": "",
|
||||||
|
"license": "ISC"
|
||||||
|
}
|
||||||
@@ -1,55 +0,0 @@
|
|||||||
const {
|
|
||||||
createBot,
|
|
||||||
createProvider,
|
|
||||||
createFlow,
|
|
||||||
addKeyword,
|
|
||||||
addChild,
|
|
||||||
} = require('@bot-whatsapp/bot')
|
|
||||||
|
|
||||||
const WebWhatsappProvider = require('@bot-whatsapp/provider/web-whatsapp')
|
|
||||||
const MockAdapter = require('@bot-whatsapp/database/mock')
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Declarando flujo hijo
|
|
||||||
*/
|
|
||||||
|
|
||||||
const flowZapatos = addKeyword(['zapatos', 'ZAPATOS'])
|
|
||||||
.addAnswer('🤯 Veo que elegiste zapatos')
|
|
||||||
.addAnswer('Tengo muchos zapatos...bla bla')
|
|
||||||
|
|
||||||
const flowBolsos = addKeyword(['bolsos', 'BOLSOS'])
|
|
||||||
.addAnswer('🙌 Veo que elegiste bolsos')
|
|
||||||
.addAnswer('Tengo muchos bolsos...bla bla')
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Declarando flujo principal
|
|
||||||
*/
|
|
||||||
const flowPrincipal = addKeyword(['hola', 'ole', 'HOLA'])
|
|
||||||
.addAnswer('Bienvenido a mi tienda')
|
|
||||||
.addAnswer('Como puedo ayudarte?')
|
|
||||||
.addAnswer(['Tengo:', 'Zapatos', 'Bolsos', 'etc..'])
|
|
||||||
.addAnswer('Escribe zapatos o bolsos')
|
|
||||||
.addAnswer(
|
|
||||||
'esperando respuesta...',
|
|
||||||
{ 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 MockAdapter()
|
|
||||||
const adapterFlow = createFlow([flowPrincipal])
|
|
||||||
const adapterProvider = createProvider(WebWhatsappProvider)
|
|
||||||
|
|
||||||
createBot({
|
|
||||||
flow: adapterFlow,
|
|
||||||
provider: adapterProvider,
|
|
||||||
database: adapterDB,
|
|
||||||
})
|
|
||||||
}
|
|
||||||
|
|
||||||
main()
|
|
||||||
Reference in New Issue
Block a user