soome changes

This commit is contained in:
2025-08-28 04:28:37 +09:00
parent 8b554f5968
commit 00b00f5bf3
9 changed files with 378 additions and 216 deletions

View File

View File

@@ -0,0 +1,18 @@
# app/bot/routers/channel.py
from telegram.ext import CommandHandler, filters
async def channel_redirect(update, ctx):
try:
await update.effective_message.reply_text(
"⚠️ В канале команды не поддерживаются. "
"Откройте ЛС со мной и выполните:\n"
"• /bind @username (или -100…)\n"
"• или /add_group и перешлите сюда пост из канала.",
disable_web_page_preview=True
)
except Exception:
pass
def register_channel_handlers(app):
# В канале любые «команды настроек» переводим в ЛС
app.add_handler(CommandHandler(["start","settings","security","dicts","spam_import"], channel_redirect, filters.ChatType.CHANNEL))

28
app/bot/routers/group.py Normal file
View File

@@ -0,0 +1,28 @@
# app/bot/routers/group.py
from telegram.ext import CommandHandler, MessageHandler, ChatMemberHandler, filters
from app.bot.handlers.join_info import on_my_chat_member
from app.bot.handlers.moderation import moderate_message
from app.bot.handlers.security import security_cmd, dicts_cmd
from app.bot.handlers.mod_status import mod_status_cmd
from app.bot.handlers.chat_id_cmd import chat_id_cmd
async def spam_import_redirect(update, ctx):
await update.effective_message.reply_text(
"Импорт словаря выполняется в ЛС. Откройте чат со мной и пришлите /spam_import.",
disable_web_page_preview=True
)
def register_group_handlers(app):
# Команды в группах/супергруппах
app.add_handler(CommandHandler("security", security_cmd, filters.ChatType.GROUPS))
app.add_handler(CommandHandler("dicts", dicts_cmd, filters.ChatType.GROUPS))
app.add_handler(CommandHandler("mod_status", mod_status_cmd, filters.ChatType.GROUPS))
app.add_handler(CommandHandler("id", chat_id_cmd, filters.ChatType.GROUPS))
# /spam_import — редирект в ЛС
app.add_handler(CommandHandler("spam_import", spam_import_redirect, filters.ChatType.GROUPS))
# Модерация всех сообщений (privacy mode должен быть Disabled)
app.add_handler(MessageHandler(filters.ChatType.GROUPS & ~filters.COMMAND, moderate_message))
# my_chat_member для уведомлений о добавлении бота
app.add_handler(ChatMemberHandler(on_my_chat_member, chat_member_types=ChatMemberHandler.MY_CHAT_MEMBER))

View File

@@ -0,0 +1,40 @@
# 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))