feat: add FSM handlers and admin interface
- Add all user FSM states (INTRO through CONFIRM_SAVE) - Add replica re-recording by number (ASK_REPLICA_NUMBER, REPEAT_REPLICA) - Add admin interface with stats and scenario upload - Add voice message handling and storage
This commit is contained in:
70
main.py
70
main.py
@@ -1,7 +1,32 @@
|
||||
from telegram.ext import ApplicationBuilder
|
||||
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_voice_message,
|
||||
start_command,
|
||||
)
|
||||
from src.logger import logger
|
||||
|
||||
|
||||
@@ -13,7 +38,48 @@ def main() -> None:
|
||||
|
||||
app = ApplicationBuilder().token(BOT_TOKEN).build()
|
||||
|
||||
# TODO: добавить обработчики
|
||||
# Команды
|
||||
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.TEXT & ~filters.COMMAND, handle_replica_number_input)
|
||||
)
|
||||
app.add_handler(MessageHandler(filters.Document.ALL, handle_admin_document))
|
||||
|
||||
logger.info("Бот запущен")
|
||||
app.run_polling()
|
||||
|
||||
Reference in New Issue
Block a user