Files
lagomareGateKeeperBot/bot.py
2025-08-22 01:34:25 +02:00

29 lines
1.5 KiB
Python

from telegram.ext import Application, CommandHandler, MessageHandler, CallbackQueryHandler
from functools import partial
from config import BotConfig
from models import Users
from services import GatesService, AVConnectService
from repository import GatesRepository
from handlers import *
bot_config = BotConfig("lagomareGateKeeperBot")
gates_repository = GatesRepository()
avconnect_service = AVConnectService()
gates_service = GatesService(gates_repository, avconnect_service)
users = Users()
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(updateuser, users=users)), group=1)
app.add_handler(CommandHandler("start", partial(start, users=users)))
app.add_handler(CommandHandler("setcredentials", partial(setcredentials, users=users)))
app.add_handler(CommandHandler("opengate", partial(opengate, users=users, gates=gates_service)))
app.add_handler(CommandHandler("requestaccess", partial(requestaccess, users=users)))
app.add_handler(CommandHandler("grantaccess", partial(grantaccess, users=users)))
app.add_handler(CallbackQueryHandler(partial(handle_main_menu_callback, users=users, gates=gates_service), pattern="^(open_gate_menu|request_access)$"))
app.add_handler(CallbackQueryHandler(partial(handle_gate_open_callback, users=users, gates=gates_service), pattern="^opengate_"))
app.run_polling()
if __name__ == "__main__":
main()