File size: 1,084 Bytes
a6e3889
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
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
"""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()