# app/bot/routers/private.py from telegram.ext import CommandHandler, MessageHandler, ChatMemberHandler, filters from app.bot.handlers.start import start, help_cmd, groups_cmd from app.bot.handlers.add_group import add_group_cmd, add_group_capture from app.bot.handlers.drafts import new_cmd, on_text, on_text_gate from app.bot.handlers.media import on_media from app.bot.handlers.chat_id_cmd import chat_id_cmd from app.bot.handlers.security import ( security_cmd, spam_import_cmd, spam_import_capture, spam_import_text_capture, dicts_cmd ) from app.bot.handlers.cancel import cancel_cmd from app.bot.handlers.debug import dbg_state_cmd def register_private_handlers(app): # Команды в ЛС app.add_handler(CommandHandler("start", start, filters.ChatType.PRIVATE)) app.add_handler(CommandHandler("help", help_cmd, filters.ChatType.PRIVATE)) app.add_handler(CommandHandler("groups", groups_cmd, filters.ChatType.PRIVATE)) app.add_handler(CommandHandler("add_group", add_group_cmd, filters.ChatType.PRIVATE)) app.add_handler(CommandHandler("new", new_cmd, filters.ChatType.PRIVATE)) app.add_handler(CommandHandler("id", chat_id_cmd, filters.ChatType.PRIVATE)) app.add_handler(CommandHandler("security", security_cmd, filters.ChatType.PRIVATE)) app.add_handler(CommandHandler("dicts", dicts_cmd, filters.ChatType.PRIVATE)) app.add_handler(CommandHandler("spam_import", spam_import_cmd, filters.ChatType.PRIVATE)) app.add_handler(CommandHandler("cancel", cancel_cmd, filters.ChatType.PRIVATE)) app.add_handler(CommandHandler("dbg_state", dbg_state_cmd, filters.ChatType.PRIVATE)) # Импорт словаря — файл app.add_handler(MessageHandler(filters.ChatType.PRIVATE & filters.Document.ALL, spam_import_capture)) # Импорт словаря — текст (не блокирует цепочку) app.add_handler(MessageHandler(filters.ChatType.PRIVATE & filters.TEXT & ~filters.COMMAND, spam_import_text_capture, block=False)) # Привязка чата пересланным сообщением app.add_handler(MessageHandler(filters.ChatType.PRIVATE & filters.FORWARDED, add_group_capture)) # Медиа для черновика app.add_handler(MessageHandler(filters.ChatType.PRIVATE & (filters.PHOTO | filters.VIDEO | filters.ANIMATION), on_media)) # Приватный текст: шлюз (высший приоритет) → редактор app.add_handler(MessageHandler(filters.ChatType.PRIVATE & filters.TEXT & ~filters.COMMAND, on_text_gate, block=True)) app.add_handler(MessageHandler(filters.ChatType.PRIVATE & filters.TEXT & ~filters.COMMAND, on_text))