Перейти к содержанию

Триггеры

Триггеры — это гибкая система автоматической модерации, позволяющая настраивать правила реагирования на определённый контент в сообщениях пользователей. Каждый триггер состоит из трёх компонентов: источника, условия и действия.

Структура триггера

Триггер работает по схеме:

[Источник] → [Условие] → [Действие]

Пример: "Текст сообщения" → "Содержит 'спам'" → "Удалить сообщение"

Источники данных

Триггер может анализировать различные источники информации:

Текст сообщения

Анализирует текст сообщения или подпись к медиафайлу.

Дополнительная опция:

  • Срабатывать при редактировании — триггер будет проверять сообщения при их редактировании пользователем

Применение: Фильтрация нежелательного контента, спама, рекламы в сообщениях

Имя пользователя

Анализирует имя и фамилию пользователя (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 — уменьшить репутацию на 5
  • 10 — увеличить репутацию на 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

Пользователи со словом "реклама" в названии личного канала будут забанены.

Управление триггерами

Создание триггера

  1. Перейдите в раздел "Триггеры" в настройках автомодерации
  2. Нажмите "Добавить"
  3. Введите название триггера (для вашего удобства)
  4. Выберите источник данных
  5. Для message_text выберите, срабатывать ли при редактировании
  6. Выберите тип условия
  7. Введите значение условия (для regex, match, contains) или добавьте команды (для command)
  8. Выберите тип действия
  9. Для reputation выберите получателя (sender/replier)
  10. Введите параметры действия (текст сообщения, длительность, значение репутации)

Просмотр триггеров

Все триггеры отображаются в формате:

ID) Название → Действие

Например: - 1) Блокировка спама → ban - 2) Фильтр мата → warn - 3) Команда правила → message

Редактирование триггера

  1. Выберите триггер из списка
  2. Выберите, что хотите изменить:
  3. Редактировать источник — изменить источник данных и настройки срабатывания при редактировании
  4. Редактировать условие — изменить тип и значение условия
  5. Редактировать действие — изменить тип и параметры действия

Удаление триггера

  1. Выберите триггер из списка
  2. Нажмите "Удалить"

Важные замечания

  • Модераторы освобождены от всех триггеров (кроме уведомлений, сообщений и репутации)
  • Триггеры обрабатываются в порядке создания
  • При срабатывании триггера с действиями delete/warn/mute/ban дальнейшая обработка сообщения прекращается
  • Триггер с действием уведомления не блокирует дальнейшую обработку
  • Для нецензурной лексики используется встроенная база только для русского языка
  • При редактировании сообщения триггер сработает только если контент изменился (проверяется хеш текста и тип сообщения)
  • Переменные {mention}, {replied_mention}, {random_mention}, {title} работают только в действии message
  • Значение репутации ограничено диапазоном -2,147,483,646 до 2,147,483,646

Практические советы

  1. Используйте уведомление для тестирования новых триггеров перед применением наказаний
  2. Называйте триггеры понятно (например: "Блокировка ссылок", "Фильтр мата")
  3. Начинайте с мягких наказаний (предупреждение) перед переходом к блокировке
  4. Тестируйте regex на специальных сайтах (например, regex101.com) перед добавлением
  5. Используйте "содержит" для простых случаев вместо сложных регулярных выражений

Ограничения

  • Максимальная длина команды: 24 символа
  • Количество команд в одном триггере: не ограничено
  • Количество триггеров на чат: не ограничено
  • Длина текста сообщения в уведомлении: до 3500 символов
  • Regex выполняется с флагом i (без учёта регистра)