@builderbot/cli 1.0.30-alpha.0 → 1.0.31-alpha.0
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/dist/index.cjs +4 -1
- package/dist/interactive/index.d.ts.map +1 -1
- package/dist/starters/apps/base-js-baileys-json/Dockerfile +2 -1
- package/dist/starters/apps/base-js-baileys-json/_gitignore +10 -0
- package/dist/starters/apps/base-js-baileys-json/package.json +1 -1
- package/dist/starters/apps/base-js-baileys-json/src/app.js +111 -111
- package/dist/starters/apps/base-js-baileys-memory/Dockerfile +2 -1
- package/dist/starters/apps/base-js-baileys-memory/_gitignore +10 -0
- package/dist/starters/apps/base-js-baileys-memory/package.json +1 -1
- package/dist/starters/apps/base-js-baileys-memory/src/app.js +111 -111
- package/dist/starters/apps/base-js-baileys-mongo/Dockerfile +2 -1
- package/dist/starters/apps/base-js-baileys-mongo/_gitignore +10 -0
- package/dist/starters/apps/base-js-baileys-mongo/package.json +1 -1
- package/dist/starters/apps/base-js-baileys-mongo/src/app.js +111 -111
- package/dist/starters/apps/base-js-baileys-mysql/Dockerfile +2 -1
- package/dist/starters/apps/base-js-baileys-mysql/_gitignore +10 -0
- package/dist/starters/apps/base-js-baileys-mysql/package.json +1 -1
- package/dist/starters/apps/base-js-baileys-mysql/src/app.js +111 -111
- package/dist/starters/apps/base-js-baileys-postgres/Dockerfile +2 -1
- package/dist/starters/apps/base-js-baileys-postgres/_gitignore +10 -0
- package/dist/starters/apps/base-js-baileys-postgres/package.json +1 -1
- package/dist/starters/apps/base-js-baileys-postgres/src/app.js +111 -111
- package/dist/starters/apps/base-js-meta-json/Dockerfile +2 -1
- package/dist/starters/apps/base-js-meta-json/_gitignore +10 -0
- package/dist/starters/apps/base-js-meta-json/package.json +1 -1
- package/dist/starters/apps/base-js-meta-json/src/app.js +111 -111
- package/dist/starters/apps/base-js-meta-memory/Dockerfile +2 -1
- package/dist/starters/apps/base-js-meta-memory/_gitignore +10 -0
- package/dist/starters/apps/base-js-meta-memory/package.json +1 -1
- package/dist/starters/apps/base-js-meta-memory/src/app.js +111 -111
- package/dist/starters/apps/base-js-meta-mongo/Dockerfile +2 -1
- package/dist/starters/apps/base-js-meta-mongo/_gitignore +10 -0
- package/dist/starters/apps/base-js-meta-mongo/package.json +1 -1
- package/dist/starters/apps/base-js-meta-mongo/src/app.js +111 -111
- package/dist/starters/apps/base-js-meta-mysql/Dockerfile +2 -1
- package/dist/starters/apps/base-js-meta-mysql/_gitignore +10 -0
- package/dist/starters/apps/base-js-meta-mysql/package.json +1 -1
- package/dist/starters/apps/base-js-meta-mysql/src/app.js +111 -111
- package/dist/starters/apps/base-js-meta-postgres/Dockerfile +2 -1
- package/dist/starters/apps/base-js-meta-postgres/_gitignore +10 -0
- package/dist/starters/apps/base-js-meta-postgres/package.json +1 -1
- package/dist/starters/apps/base-js-meta-postgres/src/app.js +111 -111
- package/dist/starters/apps/base-js-twilio-json/Dockerfile +2 -1
- package/dist/starters/apps/base-js-twilio-json/_gitignore +10 -0
- package/dist/starters/apps/base-js-twilio-json/package.json +1 -1
- package/dist/starters/apps/base-js-twilio-json/src/app.js +111 -111
- package/dist/starters/apps/base-js-twilio-memory/Dockerfile +2 -1
- package/dist/starters/apps/base-js-twilio-memory/_gitignore +10 -0
- package/dist/starters/apps/base-js-twilio-memory/package.json +1 -1
- package/dist/starters/apps/base-js-twilio-memory/src/app.js +111 -111
- package/dist/starters/apps/base-js-twilio-mongo/Dockerfile +2 -1
- package/dist/starters/apps/base-js-twilio-mongo/_gitignore +10 -0
- package/dist/starters/apps/base-js-twilio-mongo/package.json +1 -1
- package/dist/starters/apps/base-js-twilio-mongo/src/app.js +111 -111
- package/dist/starters/apps/base-js-twilio-mysql/Dockerfile +2 -1
- package/dist/starters/apps/base-js-twilio-mysql/_gitignore +10 -0
- package/dist/starters/apps/base-js-twilio-mysql/package.json +1 -1
- package/dist/starters/apps/base-js-twilio-mysql/src/app.js +111 -111
- package/dist/starters/apps/base-js-twilio-postgres/Dockerfile +2 -1
- package/dist/starters/apps/base-js-twilio-postgres/_gitignore +10 -0
- package/dist/starters/apps/base-js-twilio-postgres/package.json +1 -1
- package/dist/starters/apps/base-js-twilio-postgres/src/app.js +111 -111
- package/dist/starters/apps/base-js-venom-json/Dockerfile +2 -1
- package/dist/starters/apps/base-js-venom-json/_gitignore +10 -0
- package/dist/starters/apps/base-js-venom-json/package.json +1 -1
- package/dist/starters/apps/base-js-venom-json/src/app.js +111 -111
- package/dist/starters/apps/base-js-venom-memory/Dockerfile +2 -1
- package/dist/starters/apps/base-js-venom-memory/_gitignore +10 -0
- package/dist/starters/apps/base-js-venom-memory/package.json +1 -1
- package/dist/starters/apps/base-js-venom-memory/src/app.js +111 -111
- package/dist/starters/apps/base-js-venom-mongo/Dockerfile +2 -1
- package/dist/starters/apps/base-js-venom-mongo/_gitignore +10 -0
- package/dist/starters/apps/base-js-venom-mongo/package.json +1 -1
- package/dist/starters/apps/base-js-venom-mongo/src/app.js +111 -111
- package/dist/starters/apps/base-js-venom-mysql/Dockerfile +2 -1
- package/dist/starters/apps/base-js-venom-mysql/_gitignore +10 -0
- package/dist/starters/apps/base-js-venom-mysql/package.json +1 -1
- package/dist/starters/apps/base-js-venom-mysql/src/app.js +111 -111
- package/dist/starters/apps/base-js-venom-postgres/Dockerfile +2 -1
- package/dist/starters/apps/base-js-venom-postgres/_gitignore +10 -0
- package/dist/starters/apps/base-js-venom-postgres/package.json +1 -1
- package/dist/starters/apps/base-js-venom-postgres/src/app.js +111 -111
- package/dist/starters/apps/base-js-wppconnect-json/Dockerfile +2 -1
- package/dist/starters/apps/base-js-wppconnect-json/_gitignore +10 -0
- package/dist/starters/apps/base-js-wppconnect-json/package.json +1 -1
- package/dist/starters/apps/base-js-wppconnect-json/src/app.js +111 -111
- package/dist/starters/apps/base-js-wppconnect-memory/Dockerfile +2 -1
- package/dist/starters/apps/base-js-wppconnect-memory/_gitignore +10 -0
- package/dist/starters/apps/base-js-wppconnect-memory/package.json +1 -1
- package/dist/starters/apps/base-js-wppconnect-memory/src/app.js +111 -111
- package/dist/starters/apps/base-js-wppconnect-mongo/Dockerfile +2 -1
- package/dist/starters/apps/base-js-wppconnect-mongo/_gitignore +10 -0
- package/dist/starters/apps/base-js-wppconnect-mongo/package.json +1 -1
- package/dist/starters/apps/base-js-wppconnect-mongo/src/app.js +111 -111
- package/dist/starters/apps/base-js-wppconnect-mysql/Dockerfile +2 -1
- package/dist/starters/apps/base-js-wppconnect-mysql/_gitignore +10 -0
- package/dist/starters/apps/base-js-wppconnect-mysql/package.json +1 -1
- package/dist/starters/apps/base-js-wppconnect-mysql/src/app.js +111 -111
- package/dist/starters/apps/base-js-wppconnect-postgres/Dockerfile +2 -1
- package/dist/starters/apps/base-js-wppconnect-postgres/_gitignore +10 -0
- package/dist/starters/apps/base-js-wppconnect-postgres/package.json +1 -1
- package/dist/starters/apps/base-js-wppconnect-postgres/src/app.js +111 -111
- package/dist/starters/apps/base-ts-baileys-json/Dockerfile +2 -1
- package/dist/starters/apps/base-ts-baileys-json/_gitignore +10 -0
- package/dist/starters/apps/base-ts-baileys-json/package.json +5 -3
- package/dist/starters/apps/base-ts-baileys-memory/Dockerfile +2 -1
- package/dist/starters/apps/base-ts-baileys-memory/_gitignore +10 -0
- package/dist/starters/apps/base-ts-baileys-memory/package.json +5 -3
- package/dist/starters/apps/base-ts-baileys-mongo/Dockerfile +2 -1
- package/dist/starters/apps/base-ts-baileys-mongo/_gitignore +10 -0
- package/dist/starters/apps/base-ts-baileys-mongo/package.json +5 -3
- package/dist/starters/apps/base-ts-baileys-mysql/Dockerfile +2 -1
- package/dist/starters/apps/base-ts-baileys-mysql/_gitignore +10 -0
- package/dist/starters/apps/base-ts-baileys-mysql/package.json +5 -3
- package/dist/starters/apps/base-ts-baileys-postgres/Dockerfile +2 -1
- package/dist/starters/apps/base-ts-baileys-postgres/_gitignore +10 -0
- package/dist/starters/apps/base-ts-baileys-postgres/package.json +5 -3
- package/dist/starters/apps/base-ts-meta-json/Dockerfile +2 -1
- package/dist/starters/apps/base-ts-meta-json/_gitignore +10 -0
- package/dist/starters/apps/base-ts-meta-json/package.json +5 -3
- package/dist/starters/apps/base-ts-meta-memory/Dockerfile +2 -1
- package/dist/starters/apps/base-ts-meta-memory/_gitignore +10 -0
- package/dist/starters/apps/base-ts-meta-memory/package.json +5 -3
- package/dist/starters/apps/base-ts-meta-mongo/Dockerfile +2 -1
- package/dist/starters/apps/base-ts-meta-mongo/_gitignore +10 -0
- package/dist/starters/apps/base-ts-meta-mongo/package.json +5 -3
- package/dist/starters/apps/base-ts-meta-mysql/Dockerfile +2 -1
- package/dist/starters/apps/base-ts-meta-mysql/_gitignore +10 -0
- package/dist/starters/apps/base-ts-meta-mysql/package.json +5 -3
- package/dist/starters/apps/base-ts-meta-postgres/Dockerfile +2 -1
- package/dist/starters/apps/base-ts-meta-postgres/_gitignore +10 -0
- package/dist/starters/apps/base-ts-meta-postgres/package.json +5 -3
- package/dist/starters/apps/base-ts-twilio-json/Dockerfile +2 -1
- package/dist/starters/apps/base-ts-twilio-json/_gitignore +10 -0
- package/dist/starters/apps/base-ts-twilio-json/package.json +5 -3
- package/dist/starters/apps/base-ts-twilio-memory/Dockerfile +2 -1
- package/dist/starters/apps/base-ts-twilio-memory/_gitignore +10 -0
- package/dist/starters/apps/base-ts-twilio-memory/package.json +5 -3
- package/dist/starters/apps/base-ts-twilio-mongo/Dockerfile +2 -1
- package/dist/starters/apps/base-ts-twilio-mongo/_gitignore +10 -0
- package/dist/starters/apps/base-ts-twilio-mongo/package.json +5 -3
- package/dist/starters/apps/base-ts-twilio-mysql/Dockerfile +2 -1
- package/dist/starters/apps/base-ts-twilio-mysql/_gitignore +10 -0
- package/dist/starters/apps/base-ts-twilio-mysql/package.json +5 -3
- package/dist/starters/apps/base-ts-twilio-postgres/Dockerfile +2 -1
- package/dist/starters/apps/base-ts-twilio-postgres/_gitignore +10 -0
- package/dist/starters/apps/base-ts-twilio-postgres/package.json +5 -3
- package/dist/starters/apps/base-ts-venom-json/Dockerfile +2 -1
- package/dist/starters/apps/base-ts-venom-json/_gitignore +10 -0
- package/dist/starters/apps/base-ts-venom-json/package.json +5 -3
- package/dist/starters/apps/base-ts-venom-memory/Dockerfile +2 -1
- package/dist/starters/apps/base-ts-venom-memory/_gitignore +10 -0
- package/dist/starters/apps/base-ts-venom-memory/package.json +5 -3
- package/dist/starters/apps/base-ts-venom-mongo/Dockerfile +2 -1
- package/dist/starters/apps/base-ts-venom-mongo/_gitignore +10 -0
- package/dist/starters/apps/base-ts-venom-mongo/package.json +5 -3
- package/dist/starters/apps/base-ts-venom-mysql/Dockerfile +2 -1
- package/dist/starters/apps/base-ts-venom-mysql/_gitignore +10 -0
- package/dist/starters/apps/base-ts-venom-mysql/package.json +5 -3
- package/dist/starters/apps/base-ts-venom-postgres/Dockerfile +2 -1
- package/dist/starters/apps/base-ts-venom-postgres/_gitignore +10 -0
- package/dist/starters/apps/base-ts-venom-postgres/package.json +5 -3
- package/dist/starters/apps/base-ts-wppconnect-json/Dockerfile +2 -1
- package/dist/starters/apps/base-ts-wppconnect-json/_gitignore +10 -0
- package/dist/starters/apps/base-ts-wppconnect-json/package.json +5 -3
- package/dist/starters/apps/base-ts-wppconnect-memory/Dockerfile +2 -1
- package/dist/starters/apps/base-ts-wppconnect-memory/_gitignore +10 -0
- package/dist/starters/apps/base-ts-wppconnect-memory/package.json +5 -3
- package/dist/starters/apps/base-ts-wppconnect-mongo/Dockerfile +2 -1
- package/dist/starters/apps/base-ts-wppconnect-mongo/_gitignore +10 -0
- package/dist/starters/apps/base-ts-wppconnect-mongo/package.json +5 -3
- package/dist/starters/apps/base-ts-wppconnect-mysql/Dockerfile +2 -1
- package/dist/starters/apps/base-ts-wppconnect-mysql/_gitignore +10 -0
- package/dist/starters/apps/base-ts-wppconnect-mysql/package.json +5 -3
- package/dist/starters/apps/base-ts-wppconnect-postgres/Dockerfile +2 -1
- package/dist/starters/apps/base-ts-wppconnect-postgres/_gitignore +10 -0
- package/dist/starters/apps/base-ts-wppconnect-postgres/package.json +5 -3
- package/package.json +2 -3
package/dist/index.cjs
CHANGED
|
@@ -5,6 +5,7 @@ var f = require('node:readline');
|
|
|
5
5
|
var node_tty = require('node:tty');
|
|
6
6
|
var require$$0 = require('tty');
|
|
7
7
|
var require$$0$3 = require('fs');
|
|
8
|
+
var promises = require('fs/promises');
|
|
8
9
|
var require$$1 = require('path');
|
|
9
10
|
var node_child_process = require('node:child_process');
|
|
10
11
|
var node_os = require('node:os');
|
|
@@ -9074,7 +9075,9 @@ const createApp = async (templateName) => {
|
|
|
9074
9075
|
const indexOfPath = possiblesPath.find((a) => require$$0$3.existsSync(a));
|
|
9075
9076
|
if (!indexOfPath)
|
|
9076
9077
|
throw new Error('TEMPLATE_PATH_NOT_FOUND: ' + templateName);
|
|
9077
|
-
|
|
9078
|
+
const pathTemplate = require$$1.join(process.cwd(), templateName);
|
|
9079
|
+
await copyBaseApp(indexOfPath, pathTemplate);
|
|
9080
|
+
await promises.rename(require$$1.join(pathTemplate, '_gitignore'), require$$1.join(pathTemplate, '.gitignore'));
|
|
9078
9081
|
};
|
|
9079
9082
|
const startInteractive = async () => {
|
|
9080
9083
|
try {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/interactive/index.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/interactive/index.ts"],"names":[],"mappings":"AAwEA,QAAA,MAAM,gBAAgB,QAAa,QAAQ,IAAI,CAoE9C,CAAA;AAED,OAAO,EAAE,gBAAgB,EAAE,CAAA"}
|
|
@@ -31,7 +31,8 @@ COPY --from=builder /app .
|
|
|
31
31
|
RUN corepack enable && corepack prepare pnpm@latest --activate
|
|
32
32
|
ENV PNPM_HOME=/usr/local/bin
|
|
33
33
|
|
|
34
|
-
RUN npm cache clean --force && pnpm install --
|
|
34
|
+
RUN npm cache clean --force && pnpm install --production --ignore-scripts \
|
|
35
|
+
&& addgroup -g 1001 -S nodejs && adduser -S -u 1001 nodejs \
|
|
35
36
|
&& rm -rf $PNPM_HOME/.npm $PNPM_HOME/.node-gyp
|
|
36
37
|
|
|
37
38
|
CMD ["npm", "start"]
|
|
@@ -6,7 +6,7 @@
|
|
|
6
6
|
"type": "module",
|
|
7
7
|
"scripts": {
|
|
8
8
|
"lint": "eslint . --no-ignore",
|
|
9
|
-
"dev": "node --no-warnings --watch-path=./src ./src/app.js",
|
|
9
|
+
"dev": "npm run lint && node --no-warnings --watch-path=./src ./src/app.js",
|
|
10
10
|
"start": "node ./src/app.js"
|
|
11
11
|
},
|
|
12
12
|
"keywords": [],
|
|
@@ -1,116 +1,116 @@
|
|
|
1
|
-
import { join } from 'path'
|
|
2
|
-
import { createBot, createProvider, createFlow, addKeyword, utils } from '@builderbot/bot'
|
|
1
|
+
import { join } from 'path'
|
|
2
|
+
import { createBot, createProvider, createFlow, addKeyword, utils } from '@builderbot/bot'
|
|
3
3
|
import { JsonFileDB as Database } from '@builderbot/database-json'
|
|
4
4
|
import { BaileysProvider as Provider } from '@builderbot/provider-baileys'
|
|
5
|
-
|
|
6
|
-
const PORT = process.env.PORT ?? 3008
|
|
7
|
-
|
|
8
|
-
const discordFlow = addKeyword('doc').addAnswer(
|
|
9
|
-
['You can see the documentation here', '📄 https://builderbot.app/docs \n', 'Do you want to continue? *yes*'].join(
|
|
10
|
-
'\n'
|
|
11
|
-
),
|
|
12
|
-
{ capture: true },
|
|
13
|
-
async (ctx, { gotoFlow, flowDynamic }) => {
|
|
14
|
-
if (ctx.body.toLocaleLowerCase().includes('yes')) {
|
|
15
|
-
return gotoFlow(registerFlow)
|
|
16
|
-
}
|
|
17
|
-
await flowDynamic('Thanks!')
|
|
18
|
-
return
|
|
19
|
-
}
|
|
20
|
-
)
|
|
21
|
-
|
|
22
|
-
const welcomeFlow = addKeyword(['hi', 'hello', 'hola'])
|
|
23
|
-
.addAnswer(`🙌 Hello welcome to this *Chatbot*`)
|
|
24
|
-
.addAnswer(
|
|
25
|
-
[
|
|
26
|
-
'I share with you the following links of interest about the project',
|
|
27
|
-
'👉 *doc* to view the documentation',
|
|
28
|
-
].join('\n'),
|
|
29
|
-
{ delay: 800, capture: true },
|
|
30
|
-
async (ctx, { fallBack }) => {
|
|
31
|
-
if (!ctx.body.toLocaleLowerCase().includes('doc')) {
|
|
32
|
-
return fallBack('You should type *doc*')
|
|
33
|
-
}
|
|
34
|
-
return
|
|
35
|
-
},
|
|
36
|
-
[discordFlow]
|
|
37
|
-
)
|
|
38
|
-
|
|
39
|
-
const registerFlow = addKeyword(utils.setEvent('REGISTER_FLOW'))
|
|
40
|
-
.addAnswer(`What is your name?`, { capture: true }, async (ctx, { state }) => {
|
|
41
|
-
await state.update({ name: ctx.body })
|
|
42
|
-
})
|
|
43
|
-
.addAnswer('What is your age?', { capture: true }, async (ctx, { state }) => {
|
|
44
|
-
await state.update({ age: ctx.body })
|
|
45
|
-
})
|
|
46
|
-
.addAction(async (_, { flowDynamic, state }) => {
|
|
47
|
-
await flowDynamic(`${state.get('name')}, thanks for your information!: Your age: ${state.get('age')}`)
|
|
48
|
-
})
|
|
49
|
-
|
|
50
|
-
const fullSamplesFlow = addKeyword(['samples', utils.setEvent('SAMPLES')])
|
|
51
|
-
.addAnswer(`💪 I'll send you a lot files...`)
|
|
52
|
-
.addAnswer(`Send image from Local`, { media: join(process.cwd(), 'assets', 'sample.png') })
|
|
53
|
-
.addAnswer(`Send video from URL`, {
|
|
54
|
-
media: 'https://media.giphy.com/media/v1.Y2lkPTc5MGI3NjExYTJ0ZGdjd2syeXAwMjQ4aWdkcW04OWlqcXI3Ynh1ODkwZ25zZWZ1dCZlcD12MV9pbnRlcm5hbF9naWZfYnlfaWQmY3Q9Zw/LCohAb657pSdHv0Q5h/giphy.mp4',
|
|
55
|
-
})
|
|
56
|
-
.addAnswer(`Send audio from URL`, { media: 'https://cdn.freesound.org/previews/728/728142_11861866-lq.mp3' })
|
|
57
|
-
.addAnswer(`Send file from URL`, {
|
|
58
|
-
media: 'https://www.w3.org/WAI/ER/tests/xhtml/testfiles/resources/pdf/dummy.pdf',
|
|
59
|
-
})
|
|
60
|
-
|
|
61
|
-
const main = async () => {
|
|
62
|
-
const adapterFlow = createFlow([welcomeFlow, registerFlow, fullSamplesFlow])
|
|
5
|
+
|
|
6
|
+
const PORT = process.env.PORT ?? 3008
|
|
7
|
+
|
|
8
|
+
const discordFlow = addKeyword('doc').addAnswer(
|
|
9
|
+
['You can see the documentation here', '📄 https://builderbot.app/docs \n', 'Do you want to continue? *yes*'].join(
|
|
10
|
+
'\n'
|
|
11
|
+
),
|
|
12
|
+
{ capture: true },
|
|
13
|
+
async (ctx, { gotoFlow, flowDynamic }) => {
|
|
14
|
+
if (ctx.body.toLocaleLowerCase().includes('yes')) {
|
|
15
|
+
return gotoFlow(registerFlow)
|
|
16
|
+
}
|
|
17
|
+
await flowDynamic('Thanks!')
|
|
18
|
+
return
|
|
19
|
+
}
|
|
20
|
+
)
|
|
21
|
+
|
|
22
|
+
const welcomeFlow = addKeyword(['hi', 'hello', 'hola'])
|
|
23
|
+
.addAnswer(`🙌 Hello welcome to this *Chatbot*`)
|
|
24
|
+
.addAnswer(
|
|
25
|
+
[
|
|
26
|
+
'I share with you the following links of interest about the project',
|
|
27
|
+
'👉 *doc* to view the documentation',
|
|
28
|
+
].join('\n'),
|
|
29
|
+
{ delay: 800, capture: true },
|
|
30
|
+
async (ctx, { fallBack }) => {
|
|
31
|
+
if (!ctx.body.toLocaleLowerCase().includes('doc')) {
|
|
32
|
+
return fallBack('You should type *doc*')
|
|
33
|
+
}
|
|
34
|
+
return
|
|
35
|
+
},
|
|
36
|
+
[discordFlow]
|
|
37
|
+
)
|
|
38
|
+
|
|
39
|
+
const registerFlow = addKeyword(utils.setEvent('REGISTER_FLOW'))
|
|
40
|
+
.addAnswer(`What is your name?`, { capture: true }, async (ctx, { state }) => {
|
|
41
|
+
await state.update({ name: ctx.body })
|
|
42
|
+
})
|
|
43
|
+
.addAnswer('What is your age?', { capture: true }, async (ctx, { state }) => {
|
|
44
|
+
await state.update({ age: ctx.body })
|
|
45
|
+
})
|
|
46
|
+
.addAction(async (_, { flowDynamic, state }) => {
|
|
47
|
+
await flowDynamic(`${state.get('name')}, thanks for your information!: Your age: ${state.get('age')}`)
|
|
48
|
+
})
|
|
49
|
+
|
|
50
|
+
const fullSamplesFlow = addKeyword(['samples', utils.setEvent('SAMPLES')])
|
|
51
|
+
.addAnswer(`💪 I'll send you a lot files...`)
|
|
52
|
+
.addAnswer(`Send image from Local`, { media: join(process.cwd(), 'assets', 'sample.png') })
|
|
53
|
+
.addAnswer(`Send video from URL`, {
|
|
54
|
+
media: 'https://media.giphy.com/media/v1.Y2lkPTc5MGI3NjExYTJ0ZGdjd2syeXAwMjQ4aWdkcW04OWlqcXI3Ynh1ODkwZ25zZWZ1dCZlcD12MV9pbnRlcm5hbF9naWZfYnlfaWQmY3Q9Zw/LCohAb657pSdHv0Q5h/giphy.mp4',
|
|
55
|
+
})
|
|
56
|
+
.addAnswer(`Send audio from URL`, { media: 'https://cdn.freesound.org/previews/728/728142_11861866-lq.mp3' })
|
|
57
|
+
.addAnswer(`Send file from URL`, {
|
|
58
|
+
media: 'https://www.w3.org/WAI/ER/tests/xhtml/testfiles/resources/pdf/dummy.pdf',
|
|
59
|
+
})
|
|
60
|
+
|
|
61
|
+
const main = async () => {
|
|
62
|
+
const adapterFlow = createFlow([welcomeFlow, registerFlow, fullSamplesFlow])
|
|
63
63
|
|
|
64
|
-
const adapterProvider = createProvider(Provider)
|
|
64
|
+
const adapterProvider = createProvider(Provider)
|
|
65
65
|
|
|
66
66
|
const adapterDB = new Database({ filename: 'db.json' })
|
|
67
|
-
|
|
68
|
-
const { handleCtx, httpServer } = await createBot({
|
|
69
|
-
flow: adapterFlow,
|
|
70
|
-
provider: adapterProvider,
|
|
71
|
-
database: adapterDB,
|
|
72
|
-
})
|
|
73
|
-
|
|
74
|
-
adapterProvider.server.post(
|
|
75
|
-
'/v1/messages',
|
|
76
|
-
handleCtx(async (bot, req, res) => {
|
|
77
|
-
const { number, message, urlMedia } = req.body
|
|
78
|
-
await bot.sendMessage(number, message, { media: urlMedia ?? null })
|
|
79
|
-
return res.end('sended')
|
|
80
|
-
})
|
|
81
|
-
)
|
|
82
|
-
|
|
83
|
-
adapterProvider.server.post(
|
|
84
|
-
'/v1/register',
|
|
85
|
-
handleCtx(async (bot, req, res) => {
|
|
86
|
-
const { number, name } = req.body
|
|
87
|
-
await bot.dispatch('REGISTER_FLOW', { from: number, name })
|
|
88
|
-
return res.end('trigger')
|
|
89
|
-
})
|
|
90
|
-
)
|
|
91
|
-
|
|
92
|
-
adapterProvider.server.post(
|
|
93
|
-
'/v1/samples',
|
|
94
|
-
handleCtx(async (bot, req, res) => {
|
|
95
|
-
const { number, name } = req.body
|
|
96
|
-
await bot.dispatch('SAMPLES', { from: number, name })
|
|
97
|
-
return res.end('trigger')
|
|
98
|
-
})
|
|
99
|
-
)
|
|
100
|
-
|
|
101
|
-
adapterProvider.server.post(
|
|
102
|
-
'/v1/blacklist',
|
|
103
|
-
handleCtx(async (bot, req, res) => {
|
|
104
|
-
const { number, intent } = req.body
|
|
105
|
-
if (intent === 'remove') bot.blacklist.remove(number)
|
|
106
|
-
if (intent === 'add') bot.blacklist.add(number)
|
|
107
|
-
|
|
108
|
-
res.writeHead(200, { 'Content-Type': 'application/json' })
|
|
109
|
-
return res.end(JSON.stringify({ status: 'ok', number, intent }))
|
|
110
|
-
})
|
|
111
|
-
)
|
|
112
|
-
|
|
113
|
-
httpServer(+PORT)
|
|
114
|
-
}
|
|
115
|
-
|
|
116
|
-
main()
|
|
67
|
+
|
|
68
|
+
const { handleCtx, httpServer } = await createBot({
|
|
69
|
+
flow: adapterFlow,
|
|
70
|
+
provider: adapterProvider,
|
|
71
|
+
database: adapterDB,
|
|
72
|
+
})
|
|
73
|
+
|
|
74
|
+
adapterProvider.server.post(
|
|
75
|
+
'/v1/messages',
|
|
76
|
+
handleCtx(async (bot, req, res) => {
|
|
77
|
+
const { number, message, urlMedia } = req.body
|
|
78
|
+
await bot.sendMessage(number, message, { media: urlMedia ?? null })
|
|
79
|
+
return res.end('sended')
|
|
80
|
+
})
|
|
81
|
+
)
|
|
82
|
+
|
|
83
|
+
adapterProvider.server.post(
|
|
84
|
+
'/v1/register',
|
|
85
|
+
handleCtx(async (bot, req, res) => {
|
|
86
|
+
const { number, name } = req.body
|
|
87
|
+
await bot.dispatch('REGISTER_FLOW', { from: number, name })
|
|
88
|
+
return res.end('trigger')
|
|
89
|
+
})
|
|
90
|
+
)
|
|
91
|
+
|
|
92
|
+
adapterProvider.server.post(
|
|
93
|
+
'/v1/samples',
|
|
94
|
+
handleCtx(async (bot, req, res) => {
|
|
95
|
+
const { number, name } = req.body
|
|
96
|
+
await bot.dispatch('SAMPLES', { from: number, name })
|
|
97
|
+
return res.end('trigger')
|
|
98
|
+
})
|
|
99
|
+
)
|
|
100
|
+
|
|
101
|
+
adapterProvider.server.post(
|
|
102
|
+
'/v1/blacklist',
|
|
103
|
+
handleCtx(async (bot, req, res) => {
|
|
104
|
+
const { number, intent } = req.body
|
|
105
|
+
if (intent === 'remove') bot.blacklist.remove(number)
|
|
106
|
+
if (intent === 'add') bot.blacklist.add(number)
|
|
107
|
+
|
|
108
|
+
res.writeHead(200, { 'Content-Type': 'application/json' })
|
|
109
|
+
return res.end(JSON.stringify({ status: 'ok', number, intent }))
|
|
110
|
+
})
|
|
111
|
+
)
|
|
112
|
+
|
|
113
|
+
httpServer(+PORT)
|
|
114
|
+
}
|
|
115
|
+
|
|
116
|
+
main()
|
|
@@ -31,7 +31,8 @@ COPY --from=builder /app .
|
|
|
31
31
|
RUN corepack enable && corepack prepare pnpm@latest --activate
|
|
32
32
|
ENV PNPM_HOME=/usr/local/bin
|
|
33
33
|
|
|
34
|
-
RUN npm cache clean --force && pnpm install --
|
|
34
|
+
RUN npm cache clean --force && pnpm install --production --ignore-scripts \
|
|
35
|
+
&& addgroup -g 1001 -S nodejs && adduser -S -u 1001 nodejs \
|
|
35
36
|
&& rm -rf $PNPM_HOME/.npm $PNPM_HOME/.node-gyp
|
|
36
37
|
|
|
37
38
|
CMD ["npm", "start"]
|
|
@@ -6,7 +6,7 @@
|
|
|
6
6
|
"type": "module",
|
|
7
7
|
"scripts": {
|
|
8
8
|
"lint": "eslint . --no-ignore",
|
|
9
|
-
"dev": "node --no-warnings --watch-path=./src ./src/app.js",
|
|
9
|
+
"dev": "npm run lint && node --no-warnings --watch-path=./src ./src/app.js",
|
|
10
10
|
"start": "node ./src/app.js"
|
|
11
11
|
},
|
|
12
12
|
"keywords": [],
|
|
@@ -1,115 +1,115 @@
|
|
|
1
|
-
import { join } from 'path'
|
|
2
|
-
import { createBot, createProvider, createFlow, addKeyword, utils } from '@builderbot/bot'
|
|
1
|
+
import { join } from 'path'
|
|
2
|
+
import { createBot, createProvider, createFlow, addKeyword, utils } from '@builderbot/bot'
|
|
3
3
|
import { MemoryDB as Database } from '@builderbot/bot'
|
|
4
4
|
import { BaileysProvider as Provider } from '@builderbot/provider-baileys'
|
|
5
|
-
|
|
6
|
-
const PORT = process.env.PORT ?? 3008
|
|
7
|
-
|
|
8
|
-
const discordFlow = addKeyword('doc').addAnswer(
|
|
9
|
-
['You can see the documentation here', '📄 https://builderbot.app/docs \n', 'Do you want to continue? *yes*'].join(
|
|
10
|
-
'\n'
|
|
11
|
-
),
|
|
12
|
-
{ capture: true },
|
|
13
|
-
async (ctx, { gotoFlow, flowDynamic }) => {
|
|
14
|
-
if (ctx.body.toLocaleLowerCase().includes('yes')) {
|
|
15
|
-
return gotoFlow(registerFlow)
|
|
16
|
-
}
|
|
17
|
-
await flowDynamic('Thanks!')
|
|
18
|
-
return
|
|
19
|
-
}
|
|
20
|
-
)
|
|
21
|
-
|
|
22
|
-
const welcomeFlow = addKeyword(['hi', 'hello', 'hola'])
|
|
23
|
-
.addAnswer(`🙌 Hello welcome to this *Chatbot*`)
|
|
24
|
-
.addAnswer(
|
|
25
|
-
[
|
|
26
|
-
'I share with you the following links of interest about the project',
|
|
27
|
-
'👉 *doc* to view the documentation',
|
|
28
|
-
].join('\n'),
|
|
29
|
-
{ delay: 800, capture: true },
|
|
30
|
-
async (ctx, { fallBack }) => {
|
|
31
|
-
if (!ctx.body.toLocaleLowerCase().includes('doc')) {
|
|
32
|
-
return fallBack('You should type *doc*')
|
|
33
|
-
}
|
|
34
|
-
return
|
|
35
|
-
},
|
|
36
|
-
[discordFlow]
|
|
37
|
-
)
|
|
38
|
-
|
|
39
|
-
const registerFlow = addKeyword(utils.setEvent('REGISTER_FLOW'))
|
|
40
|
-
.addAnswer(`What is your name?`, { capture: true }, async (ctx, { state }) => {
|
|
41
|
-
await state.update({ name: ctx.body })
|
|
42
|
-
})
|
|
43
|
-
.addAnswer('What is your age?', { capture: true }, async (ctx, { state }) => {
|
|
44
|
-
await state.update({ age: ctx.body })
|
|
45
|
-
})
|
|
46
|
-
.addAction(async (_, { flowDynamic, state }) => {
|
|
47
|
-
await flowDynamic(`${state.get('name')}, thanks for your information!: Your age: ${state.get('age')}`)
|
|
48
|
-
})
|
|
49
|
-
|
|
50
|
-
const fullSamplesFlow = addKeyword(['samples', utils.setEvent('SAMPLES')])
|
|
51
|
-
.addAnswer(`💪 I'll send you a lot files...`)
|
|
52
|
-
.addAnswer(`Send image from Local`, { media: join(process.cwd(), 'assets', 'sample.png') })
|
|
53
|
-
.addAnswer(`Send video from URL`, {
|
|
54
|
-
media: 'https://media.giphy.com/media/v1.Y2lkPTc5MGI3NjExYTJ0ZGdjd2syeXAwMjQ4aWdkcW04OWlqcXI3Ynh1ODkwZ25zZWZ1dCZlcD12MV9pbnRlcm5hbF9naWZfYnlfaWQmY3Q9Zw/LCohAb657pSdHv0Q5h/giphy.mp4',
|
|
55
|
-
})
|
|
56
|
-
.addAnswer(`Send audio from URL`, { media: 'https://cdn.freesound.org/previews/728/728142_11861866-lq.mp3' })
|
|
57
|
-
.addAnswer(`Send file from URL`, {
|
|
58
|
-
media: 'https://www.w3.org/WAI/ER/tests/xhtml/testfiles/resources/pdf/dummy.pdf',
|
|
59
|
-
})
|
|
60
|
-
|
|
61
|
-
const main = async () => {
|
|
62
|
-
const adapterFlow = createFlow([welcomeFlow, registerFlow, fullSamplesFlow])
|
|
5
|
+
|
|
6
|
+
const PORT = process.env.PORT ?? 3008
|
|
7
|
+
|
|
8
|
+
const discordFlow = addKeyword('doc').addAnswer(
|
|
9
|
+
['You can see the documentation here', '📄 https://builderbot.app/docs \n', 'Do you want to continue? *yes*'].join(
|
|
10
|
+
'\n'
|
|
11
|
+
),
|
|
12
|
+
{ capture: true },
|
|
13
|
+
async (ctx, { gotoFlow, flowDynamic }) => {
|
|
14
|
+
if (ctx.body.toLocaleLowerCase().includes('yes')) {
|
|
15
|
+
return gotoFlow(registerFlow)
|
|
16
|
+
}
|
|
17
|
+
await flowDynamic('Thanks!')
|
|
18
|
+
return
|
|
19
|
+
}
|
|
20
|
+
)
|
|
21
|
+
|
|
22
|
+
const welcomeFlow = addKeyword(['hi', 'hello', 'hola'])
|
|
23
|
+
.addAnswer(`🙌 Hello welcome to this *Chatbot*`)
|
|
24
|
+
.addAnswer(
|
|
25
|
+
[
|
|
26
|
+
'I share with you the following links of interest about the project',
|
|
27
|
+
'👉 *doc* to view the documentation',
|
|
28
|
+
].join('\n'),
|
|
29
|
+
{ delay: 800, capture: true },
|
|
30
|
+
async (ctx, { fallBack }) => {
|
|
31
|
+
if (!ctx.body.toLocaleLowerCase().includes('doc')) {
|
|
32
|
+
return fallBack('You should type *doc*')
|
|
33
|
+
}
|
|
34
|
+
return
|
|
35
|
+
},
|
|
36
|
+
[discordFlow]
|
|
37
|
+
)
|
|
38
|
+
|
|
39
|
+
const registerFlow = addKeyword(utils.setEvent('REGISTER_FLOW'))
|
|
40
|
+
.addAnswer(`What is your name?`, { capture: true }, async (ctx, { state }) => {
|
|
41
|
+
await state.update({ name: ctx.body })
|
|
42
|
+
})
|
|
43
|
+
.addAnswer('What is your age?', { capture: true }, async (ctx, { state }) => {
|
|
44
|
+
await state.update({ age: ctx.body })
|
|
45
|
+
})
|
|
46
|
+
.addAction(async (_, { flowDynamic, state }) => {
|
|
47
|
+
await flowDynamic(`${state.get('name')}, thanks for your information!: Your age: ${state.get('age')}`)
|
|
48
|
+
})
|
|
49
|
+
|
|
50
|
+
const fullSamplesFlow = addKeyword(['samples', utils.setEvent('SAMPLES')])
|
|
51
|
+
.addAnswer(`💪 I'll send you a lot files...`)
|
|
52
|
+
.addAnswer(`Send image from Local`, { media: join(process.cwd(), 'assets', 'sample.png') })
|
|
53
|
+
.addAnswer(`Send video from URL`, {
|
|
54
|
+
media: 'https://media.giphy.com/media/v1.Y2lkPTc5MGI3NjExYTJ0ZGdjd2syeXAwMjQ4aWdkcW04OWlqcXI3Ynh1ODkwZ25zZWZ1dCZlcD12MV9pbnRlcm5hbF9naWZfYnlfaWQmY3Q9Zw/LCohAb657pSdHv0Q5h/giphy.mp4',
|
|
55
|
+
})
|
|
56
|
+
.addAnswer(`Send audio from URL`, { media: 'https://cdn.freesound.org/previews/728/728142_11861866-lq.mp3' })
|
|
57
|
+
.addAnswer(`Send file from URL`, {
|
|
58
|
+
media: 'https://www.w3.org/WAI/ER/tests/xhtml/testfiles/resources/pdf/dummy.pdf',
|
|
59
|
+
})
|
|
60
|
+
|
|
61
|
+
const main = async () => {
|
|
62
|
+
const adapterFlow = createFlow([welcomeFlow, registerFlow, fullSamplesFlow])
|
|
63
63
|
|
|
64
|
-
const adapterProvider = createProvider(Provider)
|
|
64
|
+
const adapterProvider = createProvider(Provider)
|
|
65
65
|
const adapterDB = new Database()
|
|
66
|
-
|
|
67
|
-
const { handleCtx, httpServer } = await createBot({
|
|
68
|
-
flow: adapterFlow,
|
|
69
|
-
provider: adapterProvider,
|
|
70
|
-
database: adapterDB,
|
|
71
|
-
})
|
|
72
|
-
|
|
73
|
-
adapterProvider.server.post(
|
|
74
|
-
'/v1/messages',
|
|
75
|
-
handleCtx(async (bot, req, res) => {
|
|
76
|
-
const { number, message, urlMedia } = req.body
|
|
77
|
-
await bot.sendMessage(number, message, { media: urlMedia ?? null })
|
|
78
|
-
return res.end('sended')
|
|
79
|
-
})
|
|
80
|
-
)
|
|
81
|
-
|
|
82
|
-
adapterProvider.server.post(
|
|
83
|
-
'/v1/register',
|
|
84
|
-
handleCtx(async (bot, req, res) => {
|
|
85
|
-
const { number, name } = req.body
|
|
86
|
-
await bot.dispatch('REGISTER_FLOW', { from: number, name })
|
|
87
|
-
return res.end('trigger')
|
|
88
|
-
})
|
|
89
|
-
)
|
|
90
|
-
|
|
91
|
-
adapterProvider.server.post(
|
|
92
|
-
'/v1/samples',
|
|
93
|
-
handleCtx(async (bot, req, res) => {
|
|
94
|
-
const { number, name } = req.body
|
|
95
|
-
await bot.dispatch('SAMPLES', { from: number, name })
|
|
96
|
-
return res.end('trigger')
|
|
97
|
-
})
|
|
98
|
-
)
|
|
99
|
-
|
|
100
|
-
adapterProvider.server.post(
|
|
101
|
-
'/v1/blacklist',
|
|
102
|
-
handleCtx(async (bot, req, res) => {
|
|
103
|
-
const { number, intent } = req.body
|
|
104
|
-
if (intent === 'remove') bot.blacklist.remove(number)
|
|
105
|
-
if (intent === 'add') bot.blacklist.add(number)
|
|
106
|
-
|
|
107
|
-
res.writeHead(200, { 'Content-Type': 'application/json' })
|
|
108
|
-
return res.end(JSON.stringify({ status: 'ok', number, intent }))
|
|
109
|
-
})
|
|
110
|
-
)
|
|
111
|
-
|
|
112
|
-
httpServer(+PORT)
|
|
113
|
-
}
|
|
114
|
-
|
|
115
|
-
main()
|
|
66
|
+
|
|
67
|
+
const { handleCtx, httpServer } = await createBot({
|
|
68
|
+
flow: adapterFlow,
|
|
69
|
+
provider: adapterProvider,
|
|
70
|
+
database: adapterDB,
|
|
71
|
+
})
|
|
72
|
+
|
|
73
|
+
adapterProvider.server.post(
|
|
74
|
+
'/v1/messages',
|
|
75
|
+
handleCtx(async (bot, req, res) => {
|
|
76
|
+
const { number, message, urlMedia } = req.body
|
|
77
|
+
await bot.sendMessage(number, message, { media: urlMedia ?? null })
|
|
78
|
+
return res.end('sended')
|
|
79
|
+
})
|
|
80
|
+
)
|
|
81
|
+
|
|
82
|
+
adapterProvider.server.post(
|
|
83
|
+
'/v1/register',
|
|
84
|
+
handleCtx(async (bot, req, res) => {
|
|
85
|
+
const { number, name } = req.body
|
|
86
|
+
await bot.dispatch('REGISTER_FLOW', { from: number, name })
|
|
87
|
+
return res.end('trigger')
|
|
88
|
+
})
|
|
89
|
+
)
|
|
90
|
+
|
|
91
|
+
adapterProvider.server.post(
|
|
92
|
+
'/v1/samples',
|
|
93
|
+
handleCtx(async (bot, req, res) => {
|
|
94
|
+
const { number, name } = req.body
|
|
95
|
+
await bot.dispatch('SAMPLES', { from: number, name })
|
|
96
|
+
return res.end('trigger')
|
|
97
|
+
})
|
|
98
|
+
)
|
|
99
|
+
|
|
100
|
+
adapterProvider.server.post(
|
|
101
|
+
'/v1/blacklist',
|
|
102
|
+
handleCtx(async (bot, req, res) => {
|
|
103
|
+
const { number, intent } = req.body
|
|
104
|
+
if (intent === 'remove') bot.blacklist.remove(number)
|
|
105
|
+
if (intent === 'add') bot.blacklist.add(number)
|
|
106
|
+
|
|
107
|
+
res.writeHead(200, { 'Content-Type': 'application/json' })
|
|
108
|
+
return res.end(JSON.stringify({ status: 'ok', number, intent }))
|
|
109
|
+
})
|
|
110
|
+
)
|
|
111
|
+
|
|
112
|
+
httpServer(+PORT)
|
|
113
|
+
}
|
|
114
|
+
|
|
115
|
+
main()
|
|
@@ -31,7 +31,8 @@ COPY --from=builder /app .
|
|
|
31
31
|
RUN corepack enable && corepack prepare pnpm@latest --activate
|
|
32
32
|
ENV PNPM_HOME=/usr/local/bin
|
|
33
33
|
|
|
34
|
-
RUN npm cache clean --force && pnpm install --
|
|
34
|
+
RUN npm cache clean --force && pnpm install --production --ignore-scripts \
|
|
35
|
+
&& addgroup -g 1001 -S nodejs && adduser -S -u 1001 nodejs \
|
|
35
36
|
&& rm -rf $PNPM_HOME/.npm $PNPM_HOME/.node-gyp
|
|
36
37
|
|
|
37
38
|
CMD ["npm", "start"]
|
|
@@ -6,7 +6,7 @@
|
|
|
6
6
|
"type": "module",
|
|
7
7
|
"scripts": {
|
|
8
8
|
"lint": "eslint . --no-ignore",
|
|
9
|
-
"dev": "node --no-warnings --watch-path=./src ./src/app.js",
|
|
9
|
+
"dev": "npm run lint && node --no-warnings --watch-path=./src ./src/app.js",
|
|
10
10
|
"start": "node ./src/app.js"
|
|
11
11
|
},
|
|
12
12
|
"keywords": [],
|