"""Build and run the Telegram bot.""" from telegram.ext import ( ApplicationBuilder, CommandHandler, MessageHandler, filters ) import config from bot.handlers import ( cmd_start, cmd_mode, cmd_instant, cmd_thinking, cmd_autonomous, handle_message ) def build_app(): app = ApplicationBuilder().token(config.TELEGRAM_TOKEN).build() app.add_handler(CommandHandler("start", cmd_start)) app.add_handler(CommandHandler("mode", cmd_mode)) app.add_handler(CommandHandler("instant", cmd_instant)) app.add_handler(CommandHandler("thinking", cmd_thinking)) app.add_handler(CommandHandler("autonomous", cmd_autonomous)) app.add_handler( MessageHandler(filters.TEXT & ~filters.COMMAND, handle_message) ) return app async def start_bot(): """Start polling. Blocks until stopped.""" app = build_app() await app.initialize() await app.start() await app.updater.start_polling(drop_pending_updates=True) # Keep running import asyncio await asyncio.Event().wait()