Files
dataset-tg-bot/main.py
Arity-T 52dce1b2b8 feat: add polish and fallback handlers
- Add fallback handler for unexpected text messages
- Remove unused require_states alias
- Update TASK.md - all stages complete
2026-02-02 21:31:51 +03:00

90 lines
2.7 KiB
Python

from telegram.ext import (
ApplicationBuilder,
CallbackQueryHandler,
CommandHandler,
MessageHandler,
filters,
)
from src.config import BOT_TOKEN
from src.database import init_db
from src.handlers import (
admin_command,
handle_accept_intro,
handle_admin_document,
handle_ask_replica_number,
handle_cancel_ask_number,
handle_cancel_restart,
handle_cancel_upload,
handle_confirm_restart,
handle_confirm_upload,
handle_exit_admin,
handle_replica_number_input,
handle_rerecord_last,
handle_rerecord_previous,
handle_restart_track,
handle_save_track,
handle_unexpected_text,
handle_voice_message,
start_command,
)
from src.logger import logger
def main() -> None:
"""Точка входа приложения."""
logger.info("Запуск бота...")
init_db()
app = ApplicationBuilder().token(BOT_TOKEN).build()
# Команды
app.add_handler(CommandHandler("start", start_command))
app.add_handler(CommandHandler("admin", admin_command))
# Callback query handlers
app.add_handler(CallbackQueryHandler(handle_accept_intro, pattern="^accept_intro$"))
app.add_handler(
CallbackQueryHandler(handle_rerecord_previous, pattern="^rerecord_previous$")
)
app.add_handler(
CallbackQueryHandler(handle_restart_track, pattern="^restart_track$")
)
app.add_handler(
CallbackQueryHandler(handle_confirm_restart, pattern="^confirm_restart$")
)
app.add_handler(
CallbackQueryHandler(handle_cancel_restart, pattern="^cancel_restart$")
)
app.add_handler(CallbackQueryHandler(handle_save_track, pattern="^save_track$"))
app.add_handler(
CallbackQueryHandler(handle_rerecord_last, pattern="^rerecord_last$")
)
app.add_handler(
CallbackQueryHandler(handle_ask_replica_number, pattern="^ask_replica_number$")
)
app.add_handler(
CallbackQueryHandler(handle_cancel_ask_number, pattern="^cancel_ask_number$")
)
app.add_handler(CallbackQueryHandler(handle_exit_admin, pattern="^exit_admin$"))
app.add_handler(
CallbackQueryHandler(handle_confirm_upload, pattern="^confirm_upload$")
)
app.add_handler(
CallbackQueryHandler(handle_cancel_upload, pattern="^cancel_upload$")
)
# Message handlers
app.add_handler(MessageHandler(filters.VOICE, handle_voice_message))
app.add_handler(MessageHandler(filters.Document.ALL, handle_admin_document))
app.add_handler(MessageHandler(filters.TEXT & ~filters.COMMAND, handle_replica_number_input))
app.add_handler(MessageHandler(filters.TEXT & ~filters.COMMAND, handle_unexpected_text))
logger.info("Бот запущен")
app.run_polling()
if __name__ == "__main__":
main()