soome changes
This commit is contained in:
0
app/bot/routers/__init__.py
Normal file
0
app/bot/routers/__init__.py
Normal file
18
app/bot/routers/channel.py
Normal file
18
app/bot/routers/channel.py
Normal 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
28
app/bot/routers/group.py
Normal 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))
|
||||
40
app/bot/routers/private.py
Normal file
40
app/bot/routers/private.py
Normal 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))
|
||||
Reference in New Issue
Block a user