Files
jigaido/apps/telegram-bot/bot.py
shokollm 67d801d9de refactor(telegram-bot): add /edit command and make bot.py minimal entrypoint
- Add cmd_edit as alias for cmd_update
- Update bot.py to import commands directly instead of via module
- Register /edit command in bot and post_init commands list
- Clean up unused imports in bot.py

Fixes #14
2026-04-03 14:27:01 +00:00

78 lines
1.9 KiB
Python

"""JIGAIDO Telegram bot entrypoint."""
import logging
import os
import sys
from telegram.ext import Application, CommandHandler, MessageHandler, filters
from commands import (
cmd_add,
cmd_bounty,
cmd_delete,
cmd_edit,
cmd_help,
cmd_my,
cmd_start,
cmd_track,
cmd_untrack,
cmd_update,
)
logging.basicConfig(
format="%(asctime)s %(levelname)s %(name)s: %(message)s",
level=logging.INFO,
)
log = logging.getLogger(__name__)
BOT_TOKEN = os.environ.get("JIGAIDO_BOT_TOKEN", "")
def build_app() -> Application:
app = Application.builder().token(BOT_TOKEN).build()
app.add_handler(CommandHandler("start", cmd_start))
app.add_handler(CommandHandler("help", cmd_help))
app.add_handler(CommandHandler("bounty", cmd_bounty))
app.add_handler(CommandHandler("my", cmd_my))
app.add_handler(CommandHandler("add", cmd_add))
app.add_handler(CommandHandler("edit", cmd_edit))
app.add_handler(CommandHandler("update", cmd_update))
app.add_handler(CommandHandler("delete", cmd_delete))
app.add_handler(CommandHandler("track", cmd_track))
app.add_handler(CommandHandler("untrack", cmd_untrack))
app.add_handler(MessageHandler(filters.COMMAND, cmd_help))
return app
async def post_init(app: Application) -> None:
await app.bot.set_my_commands(
[
("bounty", "List bounties"),
("my", "Your tracked bounties"),
("add", "Add a bounty"),
("edit", "Edit a bounty"),
("track", "Track a bounty"),
("untrack", "Stop tracking"),
("help", "Show help"),
]
)
def main() -> None:
if not BOT_TOKEN:
log.error("JIGAIDO_BOT_TOKEN environment variable not set.")
sys.exit(1)
app = build_app()
app.post_init = post_init
log.info("JIGAIDO starting...")
app.run_polling(drop_pending_updates=True)
if __name__ == "__main__":
main()