Фильтрация сообщений

Какие посты не доставляются: фильтр по содержимому, фильтр по словам с регулярными выражениями, импорт и экспорт правил.

ГлавнаяЧатФильтрация сообщений
ГлавнаяЧатСписок источниковИсточникФильтрация сообщений

Фильтрация сообщений решает, какие посты не доставляются. Раздел есть у чата и у каждого источника; источник может либо переопределять фильтры чата, либо дополнять их (переключатель Режим работы вверху раздела источника — Заменять или Добавлять к, см. Управление источниками).

Блоки экрана сверху вниз:

Публикация по просмотрам, лайкам, реакциям, комментариям и репостам — отдельный раздел источника: Отложенные фильтры.

Отсев по смыслу — рекламы, постов не по теме — делает модель: см. ИИ-фильтры. Отфильтрованные посты видны в логе событий с причиной.

Фильтр по содержимому

Быстрые переключатели, которые отбрасывают целые классы постов:

  • сообщения без текста;
  • сообщения без фото;
  • сообщения без видео;
  • сообщения без медиа;
  • сообщения короче минимального числа символов (0 = без ограничения);

У минимальной длины есть второй шаг: как только число больше нуля, мини-приложение спрашивает, на каком этапе её мерить — по исходному тексту, после замен или после обработки ИИ.

Фильтр по словам

ГлавнаяЧатФильтрация сообщенийПравила фильтрации

В блоке Фильтр по словам строка Правила фильтрации открывает редактор правил. Правила бывают двух видов:

  • Обязательные слова — пост пересылается, только если содержит хотя бы одно из них. Используйте их, чтобы следить за одной темой в загруженном источнике.
  • Стоп-слова — пост, содержащий любое из них, не пересылается никогда.

Добавление правила по шагам:

У каждого правила есть параметры:

  • Точное совпадение — с учётом регистра.
  • Отдельное слово — совпадает только целое слово, так что art не совпадёт со start.
  • Регулярное выражение — шаблон является регулярным выражением JavaScript, например \b(BTC|ETH)\b или price[:\s]+\d+. При включении прямо под полем появляется тестовая область: вставьте образец поста — все совпадения подсветятся, под полем будет их количество. Шаблон выполняется с теми же флагами, что и доставка — без учёта регистра, без g и без m, поэтому ^/$ означают начало/конец всего текста. Кнопка ? рядом с полем открывает шпаргалку частых конструкций (., \d, \w, \b, [abc], …) — нажатие вставляет её в шаблон. Учтите: \w и \b понимают только латиницу и не видят кириллицу — используйте [а-яёA-Za-z0-9_] или \p{L}.
  • Когда применять — До замен (сразу после получения, по исходному тексту), После замен — по тексту после замен, или После ИИ — после обработки моделью. Выбирайте этап, на котором слова гарантированно есть в тексте; где эти этапы стоят на пути поста — см. Путь поста. Этап «после ИИ» ловит и метки, которые дописывает модель, — так устроены ИИ-фильтры.

Правила проверяются по порядку; пост должен пройти каждое стоп-правило и хотя бы одно обязательное (если обязательные правила есть).

Как устроен экран правил:

  • Легенда вверху карточки объясняет значки — но только те, что встречаются в ваших правилах: стоп-слово, обязательное слово, точное совпадение, целое слово, регулярное выражение и этапы «после замен» и «после ИИ».
  • По 10 правил на странице — если правил больше, под списком появляются номера страниц.
  • Нажмите на правило, чтобы изменить его: строка превращается в ту же форму с Отмена и Сохранить.
  • Добавить правило под списком открывает форму добавления; пока правил нет, в карточке написано «Правила пока не созданы» и стоит та же кнопка. Открытие формы закрывает правку другого правила без сохранения, и наоборот.
  • Список за раз — введите несколько слов через запятую, и форма предложит Разбить на N правил: по правилу на слово, с теми же опциями.

Импорт и экспорт правил

Внизу экрана «Правила фильтрации» — Скачать правила и Загрузить из файла. Правила выгружаются текстовым файлом: его удобно править в блокноте и переносить в другой чат или источник. Одна строка — одно правило:

СтрокаЧто значит
[-] рекламастоп-слово: пост с ним не пройдёт
[+] Николаевобязательное: пост пройдёт, только если оно есть
[-] Сочи @wordотдельное слово: «Сочи», но не «сочинение»
[-] BMW @exactточное совпадение: с учётом регистра
/куп(и|ить)/iрегулярное выражение — в слэшах, флаги после
[-] промокод @after_aiкогда проверять: @before_replacements (по умолчанию), @after_replacements, @after_ai
#! [-] паузаправило импортируется выключенным
# заметкакомментарий, при импорте пропускается

Пример файла показывает такой шаблон целиком. При загрузке мини-приложение сначала показывает, сколько правил нашло в файле, и спрашивает, добавить их к существующим или заменить все; уже существующие правила не дублируются, непонятные строки пропускаются с указанием номера строки.