-
Notifications
You must be signed in to change notification settings - Fork 1
/
Scenes.js
42 lines (38 loc) · 1.55 KB
/
Scenes.js
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
const Scene = require('telegraf/scenes/base')
class SceneGenerator {
GenAgeScene () {
const age = new Scene('age')
age.enter(async (ctx) => {
await ctx.reply('Привет! Ты вошел в сцену возраста. Укажи его')
})
age.on('text', async (ctx) => {
const currAge = Number(ctx.message.text)
if (currAge && currAge > 0) {
await ctx.reply('Спасибо за возраст!!')
ctx.scene.enter('name')
} else {
await ctx.reply('Меня не проведешь! Напиши пожалуйста возраст цифрами и больше нуля')
ctx.scene.reenter()
}
})
age.on('message', (ctx) => ctx.reply('Давай лучше возраст'))
return age
}
GenNameScene () {
const name = new Scene('name')
name.enter((ctx) => ctx.reply('Теперь ты в сцене имени. Представься'))
name.on('text', async (ctx) => {
const name = ctx.message.text
if (name) {
await ctx.reply(`Привет, ${name}`)
await ctx.scene.leave()
} else {
await ctx.reply('Я так и не понял, как тебя зовут')
await ctx.scene.reenter()
}
})
name.on('message', (ctx) => ctx.reply('Это явно не твое имя'))
return name
}
}
module.exports = SceneGenerator