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()