как работают фильтры в триггер пони?
есть набор фильтров:
проверка_на_админа, привязка_к_регистру
бот принимает это как
проверка_на_админа AND привязка_к_регистру
другой набор фильтров:
проверка_на_админа, базовый_фильтр
проверка_на_админа AND базовый_фильтр
без фильтров:
базовый_фильтр
Базовый фильтр работает так:
casefold текста триггера должен равняться
casefold текста сообщения
trigger_text.casefold == message_text.casefold
но у фильтров есть свои приколы, они не зависимые друг от друга
например есть триггер:
Доброе утро, Москва!
пользователь написал:
доброе утро, москва
у этого триггера включены фильтры:
проверка_на_админа, привязка_к_регистру, в_сообщении
для бота это выглядит как
проверка_на_админа AND привязка_к_регистру AND в_сообщении
Как триггер анализирует:
проверка на админа:
-пользователь админ в чате? Да, идём по фильтрам дальше! Нет, триггер не сработает
привязка к регистру:
(Бот смотрит на точное совпадение)
-чтобы сработал этот триггер, сообщение должно быть точно такое же
москва
не тоже самое, что
Москва
доброе утро, москва
не тоже самое, что
Доброе утро, Москва
-если сообщение точно такое же, то триггер пропустит фильтры дальше, если нет, то не сработает
в сообщении:
Бот делает
casefold текста сообщения и текста триггера
и смотрит, есть ли именно такой фрагмент (текст триггера) в сообщении
если все фильтры сработали, то триггер сработает
некоторые фильтры в принципе не могут вместе работать, ибо логика разная у них