Защита Telegram-чатов от спама и подозрительных сообщений
В Telegram-чатах и группах проблема спама и подозрительных сообщений стоит особенно остро. Боты-рассыльщики, мошенники и пользователи, пытающиеся обойти модерацию, используют различные уловки: скрытые ссылки, текст с заменёнными символами (например, "пр4ивет"), флуд повторяющимися символами и другие методы.
SuspiciousMessagesMiddleware — это middleware для Telegram-бота, который автоматически анализирует сообщения в группах и супергруппах, выявляет подозрительный контент и принимает меры: удаляет спам, уведомляет участников чата и сохраняет контекст переписки.
В этой статье разберём:
- Как работает этот промежуточный слой?
- Какие сообщения считаются подозрительными?
- Как можно кастомизировать фильтры под свои задачи?
🛠 Как это работает?
1. Проверка входящих сообщений
Middleware анализирует только:
- Обычные и отредактированные сообщения (message или edited_message).
- Сообщения в группах и супергруппах (ChatType.GROUP, ChatType.SUPERGROUP).
- Игнорирует служебные уведомления (вход/выход участников, закреплённые сообщения и т. д.).
2. Детекция подозрительного контента
Метод _is_suspicious проверяет текст на:
- Цифры внутри слов ("пр4ивет", "Tele5ram")
- Повторяющиеся символы ("привеееет!!!" — более 3 одинаковых подряд)
- Разделённые пробелами буквы ("п р и в е т")
- Отсутствие пробелов (слишком длинные слитные слова)
- Спецсимволы внутри слов ("пр@ивет", "tele#gram")
3. Действия при обнаружении спама
- Сообщение удаляется.
- Участники чата получают уведомление вида:"⚠ [User] отправил подозрительное сообщение (возможен спам): [текст]"
- Сохраняется reply_to_message, чтобы не терялся контекст обсуждения.
💡 Практическое применение
Такой middleware полезен для:
- Борьбы со спам-ботами (автоудаление рекламных сообщений).
- Предотвращения обхода цензуры (фильтрация слов с заменёнными символами).
- Защиты от флуда (повторяющиеся символы, CAPS).
- Поддержания порядка в чатах без постоянного вмешательства админов.
🔗 Готовое решение: Полный исходный код доступен в моем GitHub-репозитории
⚙ Настройка и расширение функционала
Вы можете доработать детектор, добавив свои правила:
Также можно:
- ✅ Добавить анализ медиафайлов (проверка подписей к изображениям).
- ✅ Внедрить whitelist — список пользователей, которых не проверять.
- ✅ Интегрировать с внешними антиспам-API (например, для проверки ссылок).
🚀 Готовые решения от ELSE
Нужен мощный бот-модератор для Telegram с индивидуальной настройкой?
Команда ELSE разрабатывает:
- ✔ Умные антиспам-системы для чатов любого размера.
- ✔ Кастомные правила модерации под ваши требования.
- ✔ Интеграцию с внешними сервисами (проверка ссылок, анализ изображений).
🔗 Оставьте заявку на else.com.ru и получите бота с защитой от спама!