Начиная с релиза 3.7.0 в системе присутствует возможность настроить фильтр нежелательных сообщений с помощью регулярных выражений.
Описание функциональности
Пользователь системы добавляет регулярные выражения (в дальнейшем РВ) для каждого канала в отдельности. Система проверяет все входящие сообщения на предмет того, удовлетворяют ли они заданным РВ.
Если сообщение попадает под условия фильтрации, то запрос сразу закрывается со статусом “Закрыт без ответа” и он не попадает во входящие к оператору.
Если сообщение не попадает под условия фильтрации, то происходит стандартный разбор сообщения и поиск ответа на него в подключенных БЗ.
Проверяются только первые сообщения от пользователя до тех пор, пока диалог не попал к оператору. Если диалог уже находится во входящих у оператора или оператор взял его в работу, то такие сообщения не проверяются, а приходят как обычно, новым комментарием в текущий диалог.
Интерфейс
Новый пункт меню для пользователей с ролью Администратор: Настройки - Запросы - Фильтрация входящих сообщений.
Область со списком добавленных РВ.
Область для проверки, соответствует ли введенный текст добавленным выражениям.
При проверке сообщения система:
сообщит, что совпадений не найдено
сообщит для каких каналов было найдено совпадение и под какими номерами находятся эти РВ. Также справа от каждого выражения будет индикатор последней проверки.
Для каждого канала можно создать несколько регулярных выражений.
В истории сообщений можно посмотреть, что отфильтрованные сообщения находятся со статусом “Закрыт без ответа”.
Примеры регулярных выражений
Смысл | РВ |
---|---|
определенное слово + спецсимволы после и смайлики, например, “участвую” | ^(([уУ][чЧ][аА][вВ]?[сС][тТ][вВ][уУ][юЮ])[^0-9A-Za-zА-Яа-я]*)+$ |
перечисление упоминаний в канале через @ , чаще всего для Instagram | ^((@[a-zA-Z0-9._]+)\s*)+$ |
определенные смайлики без текста в строке |
|
единичное слово, кроме “хочу” со знаком “?” в конце. | ^\s*(?!хочу|ХОЧУ|Хочу)([а-яА-Я]*)[^\?\s\w]*?$ |
ссылки вида: | ^(https?:\/\/[-\w;\/?:@&=+$\|\_.!~*\|'()\[\]%#,☺]+[\w\/#](\(\))?)(?=$|[\s',\|\(\).:;?\-\[\]>\)])$ |
Следует учитывать, что система проверяет вхождение строки из РВ, а не полное совпадение. Т.е. если будет написано РВ вида “нехорошее слово“ и мы хотели отфильтровать только отдельно это слово, то будут также отфильтрованы все предложения, содержащие в себе это “нехорошее слово”. Например, “а вот это “нехорошее слово” я не употребляю”. Нужно обязательно в РВ использовать указатели на начало и конец строки, в некоторых случаях указатель на границу слова.