-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathmain.py
114 lines (93 loc) · 3 KB
/
main.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
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
from telegram.ext import (
CommandHandler,
ApplicationBuilder,
MessageHandler,
filters,
CallbackQueryHandler,
)
from telegram_bot.karma.modify_karma import kup, kdown, klist, kshow
from telegram_bot.db.db_handler import DbHandler
from telegram_bot.start import start
from telegram_bot.status import ping
from telegram_bot.newmembers import new_members
from telegram_bot.events.events_handler import events
from telegram_bot.help import help
from telegram_bot.pina import pinacolada
from telegram_bot.fiestas import festivos
from telegram_bot.dinner import (
start_dinner,
round_order,
change_price,
end_dinner,
beer_taker,
change_menu,
dinner_order,
remove_item_order,
show_dinner_keyboard,
dinner_keyboard_handler,
dinner_taker,
)
from telegram_bot.utils.logger import logger
import tracemalloc
from dotenv import load_dotenv
import os
import structlog
import logging
tracemalloc.start()
def get_bot_token():
token = os.environ["BOT_TOKEN"]
logger.info("Bot token retrieved successfully")
return token
def main():
logger.info("Starting the bot application")
# Load environment variables
load_dotenv()
#Initialize the connection pool
DbHandler.initialize_pool(pool_size=10)
logger.info("Database connection pool initialized")
# Create an updater object with your bot's token
application = ApplicationBuilder().token(get_bot_token()).read_timeout(60).write_timeout(60).build()
logger.info("Application built", token=get_bot_token())
commands = {
"beer": beer_taker,
"dinner": dinner_taker,
"events": events,
"enddinner": end_dinner,
"festivos": festivos,
"help": help,
"kup": kup,
"kdown": kdown,
"klist": klist,
"kshow": kshow,
"menuchange": change_menu,
"order": dinner_order,
"orderchange": remove_item_order,
"pineapple": pinacolada,
"pricechange": change_price,
"roundOrder": round_order,
"start": start,
"startdinner": start_dinner,
"ping": ping,
}
for comm_string, funct in commands.items():
application.add_handler(CommandHandler(comm_string, funct))
logger.info("Command registered", command=comm_string, handler=funct.__name__)
application.add_handler(CommandHandler("teclado", show_dinner_keyboard))
logger.info(
"Command registered", command="teclado", handler=show_dinner_keyboard.__name__
)
application.add_handler(
CallbackQueryHandler(
dinner_keyboard_handler,
)
)
logger.info("CallbackQueryHandler registered for dinner_keyboard_handler")
application.add_handler(
MessageHandler(filters.StatusUpdate.NEW_CHAT_MEMBERS, new_members)
)
logger.info("MessageHandler registered for new chat members")
logger.info("Starting bot polling")
application.run_polling()
logger.info("Bot polling started successfully")
if __name__ == "__main__":
main()