-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathbot.py
97 lines (83 loc) · 2.82 KB
/
bot.py
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
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
from datetime import time
from pytz import timezone
from telegram.ext import (
Application,
CommandHandler,
CallbackQueryHandler,
ConversationHandler,
PicklePersistence,
Defaults
)
from log.logging_config import load_log_config
from settings import API_TOKEN
from utilites import echo
from handlers import (
start,
notify_assignees_evening,
notify_assignees_morning,
report_of_balances,
report_of_warehouse,
configure_report_of_balances,
generate_list_of_names,
end_configure_report_of_balances,
help_command,
good_day,
nice_rest,
report_of_time_work,
write_choice,
set_my_name,
set_start_work,
set_end_work,
reset_time_work,
)
def bot():
bot_logger = load_log_config()
bot_logger.info('Инициализация бота')
defaults = Defaults(
tzinfo=timezone('Europe/Moscow')
)
persistence = PicklePersistence(filepath="db/conversationbot")
application = (
Application.builder()
.token(API_TOKEN)
.persistence(persistence)
.defaults(defaults)
.build()
)
del defaults
dp = application
jq = dp.job_queue
dp.add_handler(CommandHandler('start', start))
dp.add_handler(CommandHandler('echo', echo))
dp.add_handler(CommandHandler('help', help_command))
dp.add_handler(CommandHandler('report_of_balances',
report_of_balances))
dp.add_handler(CommandHandler('report_of_warehouse',
report_of_warehouse))
configure_report_of_balances_handler = ConversationHandler(
entry_points=[CommandHandler('config_rep_of_bal',
configure_report_of_balances)],
states={
1: [
CallbackQueryHandler(end_configure_report_of_balances,
pattern='^Закрыть$'),
CallbackQueryHandler(generate_list_of_names),
],
},
fallbacks=[CommandHandler('help', help_command)],
)
dp.add_handler(configure_report_of_balances_handler)
dp.add_handler(CommandHandler('rotw', report_of_time_work))
dp.add_handler(CommandHandler('set_my_name', set_my_name))
dp.add_handler(CommandHandler('set_start_work', set_start_work))
dp.add_handler(CommandHandler('set_end_work', set_end_work))
dp.add_handler(CommandHandler('reset_time_work', reset_time_work))
dp.add_handler(CallbackQueryHandler(write_choice,
pattern='^Приход$|^Уход$'))
jq.run_daily(notify_assignees_morning, time(9, 00))
jq.run_daily(notify_assignees_evening, time(18, 00))
jq.run_daily(good_day, time(9, 00), days=[1])
jq.run_daily(nice_rest, time(18, 00), days=[5])
dp.run_polling()
if __name__ == '__main__':
bot()