-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathtelegramBot.js
More file actions
82 lines (60 loc) · 2.36 KB
/
telegramBot.js
File metadata and controls
82 lines (60 loc) · 2.36 KB
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
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
"use strict"
require('dotenv').config();
const Telegraf = require('telegraf');
const bot = new Telegraf(`${process.env.BOT_TOKEN}`);
const session = require("telegraf/session");
const Stage = require("telegraf/stage");
const Extra = require('telegraf/extra');
const Markup = require('telegraf/markup');
const Scene = require('telegraf/scenes/base');
const { leave } = Stage;
const { getWeekUsers , getTodayUsers } = require('./scripts/timeQ');
const messageOne = require('./telegram-bot-scenes/sceneForOne');
const messageForToday = require('./telegram-bot-scenes/messageForToday');
const mongoose = require('mongoose');
mongoose.connect(`${process.env.MONGO_DB}`, {useNewUrlParser: true, useUnifiedTopology: true})
.then(() => console.log('Now bot connected to MongoDB!'))
.catch(err => console.error('Something went wrong', err));
bot.start((ctx) => ctx.reply('Welcome!'));
// Create scene manager
const stage = new Stage();
stage.hears('Отменить', (ctx) => {
leave();
ctx.reply('Операция отменена');
});
// Scene registration
bot.command('send', (ctx) => ctx.reply('<i>Выбери опцию</i>', Extra.HTML().markup((m) =>
m.inlineKeyboard([
m.callbackButton('Массовая рассылка', 'all'),
m.callbackButton('Ввести email', 'one')
])))
);
stage.register(messageOne);
stage.register(messageForToday);
bot.use(session());
bot.use(stage.middleware());
bot.action('all', (ctx) => {
ctx.replyWithHTML('<i>Данный тип рассылки еще не реализован</i>');
});
bot.action('today_send', (ctx) => {
ctx.replyWithHTML('Вы можете оменить любую операцию нажав <i>Отменить</i>' ,Extra.markup((m)=>{
return m.resize().keyboard(['Отменить'])}));
ctx.scene.enter('messageForToday');
}
);
bot.action('today', (ctx) => {
leave();
getTodayUsers(mongoose, ctx);
} );
bot.action('last_week', (ctx) => {
leave();
getWeekUsers(mongoose, ctx);
} );
bot.action('one', (ctx) => {
ctx.replyWithHTML('Вы можете оменить любую операцию нажав <i>Отменить</i>' ,Extra.markup((m)=>{
return m.resize().keyboard(['Отменить'])}));
ctx.scene.enter('messageOne');
});
bot.launch();
console.log('Start bot');
module.exports = bot;