Триггеры
Триггеры — это гибкая система автоматической модерации, позволяющая настраивать правила реагирования на определённый контент в сообщениях пользователей. Каждый триггер состоит из трёх компонентов: источника, условия и действия.
Структура триггера
Триггер работает по схеме:
[Источник] → [Условие] → [Действие]
Пример: "Текст сообщения" → "Содержит 'спам'" → "Удалить сообщение"
Источники данных
Триггер может анализировать различные источники информации:
Текст сообщения
Анализирует текст сообщения или подпись к медиафайлу.
Дополнительная опция:
- Срабатывать при редактировании — триггер будет проверять сообщения при их редактировании пользователем
Применение: Фильтрация нежелательного контента, спама, рекламы в сообщениях
Имя пользователя
Анализирует имя и фамилию пользователя (first_name + last_name).
Применение: Блокировка пользователей с рекламными или нежелательными именами
БИО пользователя
Анализирует описание профиля пользователя (био).
Применение: Блокировка пользователей с рекламой в биографии
Название связанного канала
Анализирует название личного канала пользователя, если он связан с профилем.
Применение: Блокировка пользователей с рекламными каналами
Типы условий
Условие определяет, как именно будет проверяться содержимое источника.
Регулярное выражение
Использует регулярные выражения для поиска паттернов в тексте. Поиск выполняется без учёта регистра (флаг i).
Формат: Регулярное выражение (например: (спам|реклама|продам))
Примеры:
https?://.*— любая ссылка@\w+— упоминание пользователя или канала\d{10,}— последовательность из 10+ цифр (номера телефонов)
Применение: Сложные паттерны, гибкая фильтрация
Точное совпадение
Проверяет полное совпадение текста (без учёта регистра и пробелов по краям).
Формат: Точная строка (например: привет)
Пример: Условие привет сработает на сообщение "Привет" или " привет ", но НЕ на "Привет всем"
Применение: Точная фильтрация конкретных фраз
Содержит
Проверяет, содержится ли указанная подстрока в тексте (без учёта регистра).
Формат: Подстрока (например: реклама)
Пример: Условие реклама сработает на "Это реклама", "РЕКЛАМА здесь", "Не нужна мне ваша реклама"
Применение: Простая фильтрация по ключевым словам
Команда
Проверяет, является ли сообщение одной из указанных команд.
Формат: Список команд через интерфейс (например: /start, /help, /spam)
Пример: Можно создать триггер, который реагирует на кастомные команды /репутация, /карма
Применение: Создание пользовательских команд, блокировка определённых команд
Нецензурная лексика — RU
Проверяет наличие русскоязычной нецензурной лексики с использованием встроенной базы данных.
Формат: Не требует параметров
Применение: Автоматическая фильтрация мата на русском языке
Содержит язык
Проверяет, содержит ли текст символы определённого языка/алфавита.
Формат: Выбор языка из списка:
- Арабский — арабские символы
- Китайский — китайские иероглифы (ханьцзы)
- Японский — японские символы (хирагана, катакана, кандзи)
- Корейский — корейские символы (хангыль)
Примеры:
- Блокировка сообщений на арабском языке для защиты от спама
- Ограничение использования китайских символов в чате
Применение: Фильтрация сообщений по языку, защита от иероглифного спама
Типы действий
Действие определяет, что произойдёт при срабатывании триггера.
Уведомление
Отправляет уведомление в канал триггеров с информацией о срабатывании.
Параметры: Не требуются
Формат уведомления:
Триггер: [название триггера]
Текст: [текст, вызвавший срабатывание]
Чат: [ссылка на сообщение]
Особенности:
- Не применяется к модераторам
- Требует настроенный канал триггеров
- Сообщение НЕ удаляется
Применение: Мониторинг подозрительной активности без наказания пользователей
Удаление
Удаляет сообщение, вызвавшее срабатывание триггера.
Параметры: Не требуются
Особенности:
- Не применяется к модераторам
- Пользователь НЕ получает уведомление
Применение: Тихое удаление нежелательного контента
Предупреждение
Выдаёт предупреждение пользователю и удаляет сообщение.
Параметры: Не требуются
Особенности:
- Не применяется к модераторам
- Удаляет сообщение
- Отправляет уведомление (если включены уведомления о триггерах)
- Увеличивает счётчик предупреждений пользователя
Формат: Автомодерация: Триггер [название триггера]
Применение: Наказание с возможностью отслеживания количества нарушений
Мут
Блокирует возможность отправки сообщений на указанное время и удаляет сообщение.
Параметры: Длительность (интервал)
Примеры длительности:
- 10m — 10 минут
- 1h — 1 час
- 1d — 1 день
- permanent — навсегда
Особенности:
- Не применяется к модераторам
- Удаляет сообщение
- Отправляет уведомление (если включены уведомления о триггерах)
Применение: Временное наказание за нарушения
Бан
Исключает пользователя из чата на указанное время и удаляет сообщение.
Параметры: Длительность (интервал)
Примеры длительности:
- 7d — 7 дней
- 30d — 30 дней
- permanent — навсегда
Особенности:
- Не применяется к модераторам
- Удаляет сообщение
- Отправляет уведомление (если включены уведомления о триггерах)
Применение: Жёсткое наказание за серьёзные нарушения
Сообщение
Отправляет кастомное сообщение в чат в ответ на триггер.
Параметры: Текст сообщения
Поддерживаемые переменные:
{mention}— упоминание отправителя (с username или ссылкой){replied_mention}— упоминание пользователя из replied сообщения (или отправителя, если нет reply){random_mention}— случайный участник чата{title}— название чата
Примеры:
Привет, {mention}! Добро пожаловать в {title}!{replied_mention}, спасибо за вопрос!Случайный участник: {random_mention}
Особенности:
- Сообщение отправляется в ответ на сообщение триггера
- Если настроено автоудаление сообщений бота, сообщение будет удалено через указанное время
Применение: Автоответчики, приветствия, пользовательские команды
Репутация
Изменяет репутацию пользователя на указанное значение.
Параметры:
- Получатель: sender (отправитель) или replier (пользователь из replied сообщения)
- Значение: целое число (-2147483646 до 2147483646)
Примеры значений:
1— увеличить репутацию на 1-5— уменьшить репутацию на 510— увеличить репутацию на 10
Особенности:
- Если выбран replier, но нет replied сообщения — триггер не сработает
- Нельзя изменить репутацию самому себе (для replier)
- Отправляет уведомление об изменении репутации
Применение: Системы кармы, пользовательские команды /спасибо, /+rep
Примеры использования
Пример 1: Блокировка спама в сообщениях
- Источник: message_text (Текст сообщения)
- Условие: contains →
купить подписчиков - Действие: ban →
permanent
При такой настройке любое сообщение, содержащее фразу "купить подписчиков", приведёт к немедленному бану пользователя.
Пример 2: Предупреждение за мат
- Источник: message_text (Текст сообщения)
- Условие: badwords (Нецензурная лексика - RU)
- Действие: warn
Пользователь получит предупреждение за каждое сообщение с нецензурной лексикой.
Пример 3: Автоответчик для команды
- Источник: message_text (Текст сообщения)
- Условие: command →
/правила,/rules - Действие: message →
{mention}, ознакомьтесь с правилами чата: [ссылка]
При отправке команды /правила или /rules бот ответит сообщением с упоминанием пользователя.
Пример 4: Система репутации
- Источник: message_text (Текст сообщения)
- Условие: command →
/спасибо,/thanks - Действие: reputation → replier, +1
Пользователь может поблагодарить другого участника, ответив на его сообщение командой /спасибо, и увеличить его репутацию.
Пример 5: Блокировка рекламных имён
- Источник: name_text (Имя пользователя)
- Условие: regex →
(реклама|продам|куплю|@\w+) - Действие: ban →
7d
Пользователи с рекламой в имени будут автоматически забанены на 7 дней.
Пример 6: Мониторинг ссылок
- Источник: message_text (Текст сообщения)
- Срабатывать при редактировании: Да
- Условие: regex →
https?://.* - Действие: notify
Администраторы будут получать уведомления о всех сообщениях со ссылками, включая отредактированные.
Пример 7: Приветствие новых участников
- Источник: message_text (Текст сообщения)
- Условие: match →
привет - Действие: message →
Привет, {mention}! Добро пожаловать в {title}! 👋
При сообщении "привет" бот отправит приветственное сообщение.
Пример 8: Блокировка пользователей с рекламными каналами
- Источник: linked_channel_text (Название связанного канала)
- Условие: contains →
реклама - Действие: ban →
permanent
Пользователи со словом "реклама" в названии личного канала будут забанены.
Управление триггерами
Создание триггера
- Перейдите в раздел "Триггеры" в настройках автомодерации
- Нажмите "Добавить"
- Введите название триггера (для вашего удобства)
- Выберите источник данных
- Для message_text выберите, срабатывать ли при редактировании
- Выберите тип условия
- Введите значение условия (для regex, match, contains) или добавьте команды (для command)
- Выберите тип действия
- Для reputation выберите получателя (sender/replier)
- Введите параметры действия (текст сообщения, длительность, значение репутации)
Просмотр триггеров
Все триггеры отображаются в формате:
ID) Название → Действие
Например:
- 1) Блокировка спама → ban
- 2) Фильтр мата → warn
- 3) Команда правила → message
Редактирование триггера
- Выберите триггер из списка
- Выберите, что хотите изменить:
- Редактировать источник — изменить источник данных и настройки срабатывания при редактировании
- Редактировать условие — изменить тип и значение условия
- Редактировать действие — изменить тип и параметры действия
Удаление триггера
- Выберите триггер из списка
- Нажмите "Удалить"
Важные замечания
- Модераторы освобождены от всех триггеров (кроме уведомлений, сообщений и репутации)
- Триггеры обрабатываются в порядке создания
- При срабатывании триггера с действиями delete/warn/mute/ban дальнейшая обработка сообщения прекращается
- Триггер с действием уведомления не блокирует дальнейшую обработку
- Для нецензурной лексики используется встроенная база только для русского языка
- При редактировании сообщения триггер сработает только если контент изменился (проверяется хеш текста и тип сообщения)
- Переменные
{mention},{replied_mention},{random_mention},{title}работают только в действии message - Значение репутации ограничено диапазоном -2,147,483,646 до 2,147,483,646
Практические советы
- Используйте уведомление для тестирования новых триггеров перед применением наказаний
- Называйте триггеры понятно (например: "Блокировка ссылок", "Фильтр мата")
- Начинайте с мягких наказаний (предупреждение) перед переходом к блокировке
- Тестируйте regex на специальных сайтах (например, regex101.com) перед добавлением
- Используйте "содержит" для простых случаев вместо сложных регулярных выражений
Ограничения
- Максимальная длина команды: 24 символа
- Количество команд в одном триггере: не ограничено
- Количество триггеров на чат: не ограничено
- Длина текста сообщения в уведомлении: до 3500 символов
- Regex выполняется с флагом i (без учёта регистра)