Skip to end of metadata
Go to start of metadata

You are viewing an old version of this page. View the current version.

Compare with Current View Page History

« Previous Version 12 Current »

Раздел “Настройки” - “Спам-фильтр” позволяет установить фильтр нежелательных сообщений для выбранного типа канала с помощью регулярных выражений.

Описание функциональности

Пользователь системы добавляет регулярные выражения (в дальнейшем РВ) для каждого типа канала в отдельности. Система проверяет все входящие сообщения на предмет того, удовлетворяют ли они заданным РВ.

  • Если сообщение попадает под условия фильтрации, то запрос сразу закрывается со статусом “Закрыт без ответа” и он не попадает во входящие к оператору.

  • Если сообщение не попадает под условия фильтрации, то происходит стандартный разбор сообщения и поиск ответа на него в подключенных БЗ.

Выполняется проверка только первого сообщения пользователя

Интерфейс

 

  1. Область со списком добавленных РВ.

  2. Область для проверки, соответствует ли введенный текст добавленным выражениям.

При проверке сообщения система:

  • сообщит, что совпадений не найдено

  • сообщит для каких типов каналов было найдено совпадение и под какими номерами находятся эти РВ. Также справа от каждого выражения будет индикатор последней проверки.

 Для каждого типа канала можно создать несколько регулярных выражений.

При включении переключателя “Фильтровать сообщения без текста с файлом” система будет отфильтровывать сообщения без текста, с файлом и закрывать такие диалоги 

 

В истории сообщений можно посмотреть, что отфильтрованные сообщения находятся со статусом “Закрыт без ответа”.

Примеры регулярных выражений

Смысл/задача

РВ

Отфильтровать определенное слово + спецсимволы после и смайлики, например, “участвую”

^(([уУ][чЧ][аА][вВ]?[сС][тТ][вВ][уУ][юЮ])[^0-9A-Za-zА-Яа-я]*)+$

Отфильтровать перечисление упоминаний в канале через @ , чаще всего для Instagram

^((@[a-zA-Z0-9._]+)\s*)+$

Отфильтровать определенные смайлики без текста в строке

  • ^[❤🔥♥♻☺✌✨💐😁]+$ - перечисление определенных смайлов
  • ^[😀-🙏]+$ - указание диапазона

Отфильтровать только смайлики (самые распространенные)

^([❤️❤🔥♥♻☺✌✨👨‍🔧💐😁]|[😀-🙏]|[🌀-🔟]|[🤍-🪕])+$

Отфильтровать все единичные слова, кроме “хочу” со знаком “?” в конце.
Т.е. попадут во входящие: хочу, сколько?, хочу купить и т.д.. И не попадут: круто!, отлично), класс и т.д.

^\s*(?!хочу|ХОЧУ|Хочу)([а-яА-Я]*)[^\?\s\w]*?$

Отфильтровать только ссылки вида:

^(https?:\/\/[-\w;\/?:@&=+$\|\_.!~*\|'()\[\]%#,☺]+[\w\/#](\(\))?)(?=$|[\s',\|\(\).:;?\-\[\]>\)])$

Отфильтровать сообщения, содержащие определенные слова, например “отпуск” или “вдохновение”.

([оО][тТ][пП][уУ][сС][кК])|([вВ][дД][оО][хХ][нН][оО][вВ][еЕ][нН][иИ][еЕ])

Т.е. в этот шаблон можно вставить любые слова

([][][][][][])|([][][][][][])
[] - буквы слова, лучше писать маленькую и большую, чтобы любой регистр учитывался
() - в скобки заключается ваше слово
| - разделитель между словами

Отфильтровать сообщения, которые содержат только цифры, или цифры и смайлики (в заданном индекс диапазоне \uD83D\uDE00-\uD83D\uDE50), или цифры и знаки препинания, кроме знака вопроса:

  • 1

  • 12

  • 1!

  • 2😀

  • 231 😀

^(\d+|\d+[\uD83D\uDE00-\uD83D\uDE50]+|\d+[.,;:!-]+)$

Отфильтровать сообщения, которые содержат только цифры от 0 до 9

^[0-9]*$

Следует учитывать, что система проверяет вхождение строки из РВ, а не полное совпадение. Т.е. если будет написано РВ вида “нехорошее слово“ и мы хотели отфильтровать только отдельно это слово, то будут также отфильтрованы все предложения, содержащие в себе это “нехорошее слово”. Например, “а вот это “нехорошее слово” я не употребляю”. Нужно обязательно в РВ использовать указатели на начало и конец строки, в некоторых случаях указатель на границу слова.

  • No labels