Files
lagomareGateKeeperBot/bot.py

30 lines
1.6 KiB
Python

from telegram.ext import Application, CommandHandler, MessageHandler, CallbackQueryHandler
from functools import partial
from config import BotConfig
from src.services import GatesService, AVConnectService, UsersService
from src.repository import GatesRepository, UsersRepository
from src.handlers import *
bot_config = BotConfig("lagomareGateKeeperBot")
users_repository = UsersRepository()
users_service = UsersService(users_repository)
avconnect_service = AVConnectService()
gates_repository = GatesRepository()
gates_service = GatesService(gates_repository, avconnect_service, users_service)
def main():
app = Application.builder().token(bot_config.token).post_init(partial(post_init, bot_config=bot_config)).build()
# app.add_handler(MessageHandler(None, partial(handle_message, users=users_service)), group=1)
app.add_handler(CommandHandler("start", partial(start, users=users_service)))
app.add_handler(CommandHandler("setcredentials", partial(setcredentials, users=users_service)))
app.add_handler(CommandHandler("opengate", partial(opengate, users=users_service, gates=gates_service)))
app.add_handler(CommandHandler("requestaccess", partial(requestaccess, users=users_service)))
app.add_handler(CommandHandler("grantaccess", partial(grantaccess, users=users_service)))
app.add_handler(CallbackQueryHandler(partial(handle_main_menu_callback, users=users_service, gates=gates_service), pattern="^(open_gate_menu|request_access)$"))
app.add_handler(CallbackQueryHandler(partial(handle_gate_open_callback, users=users_service, gates=gates_service), pattern="^opengate_"))
app.run_polling()
if __name__ == "__main__":
main()