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 8 Next »

Начиная с релиза 3.7.0 в системе присутствует возможность настроить фильтр нежелательных сообщений с помощью регулярных выражений.

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

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

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

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

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

Интерфейс

Новый пункт меню для пользователей с ролью Администратор: Настройки - Запросы - Фильтрация входящих сообщений.

 

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

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

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

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

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

 

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

 

 

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

 

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

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

РВ

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Отфильтровать сообщения, которые содержат только цифры, или цифры и смайлики, или цифры и знаки препинания, кроме знака вопроса:

  • 1

  • 12

  • 1!

  • 2🔥

  • 231 🔥

^([0-9]+)[^\?\w]*$

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

^[0-9]*$

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

  • No labels