Skip to main content

Условия

Условия в @MenuBuilderBot дают администраторам возможность определять поведение их ботов в зависимости от состояния отдельных переменных и других параметров. Условия можно добавлять на Кнопки, Action-ы, а также использовать при Рассылке.


Что такое Условия


Условия - это частный случай Выражений (руководство по выражениям здесь) с дополнительными символами и логическими операторами. Вы можете использовать всю мощь Выражений в Условиях.

Условие должно возвращать True или False в качестве результата (1 или 0).


Синтаксис Условий

Синтаксис Условий унаследован от Выражений. По этой причине, Условия должны быть взяты в фигурные скобки "{}", внутри, помимо Операторов свойственных только Условиям, можно использовать выражения в круглых скобках, вычисления и макросы.

В общем виде шаблон Условия может выглядеть примерно так:
{(...) and (...)}
{(...) or (...)}
{(...) or not(...)}
{(...) and not(...)}
{(...) and (...) or (...) or not(...)}
{(...) and (...) or (...) and not(...)}

ВАЖНО: в отдельных случаях, в частности, в условиях кнопок, Action-ов и тому подобного, если в Условии для сравнения используется текст, то данный текст может быть, и чаще всего будет, переведён в нижний регистр - то есть все заглавные буквы в тексте станут строчными. Как-то более конкретно обозначать возможные случаи - нет необходимости, просто имейте это в виду при работе с условиями.

Другими словами Условия сделаны регистронезависимыми. Это упрощает работу с ними для среднестатистического админа бота.


Операторы сравнения

При помощи этих операторов сравниваются две части выражения.

  1. >, >= (больше, больше или равно)
  2. <, <= (меньше, меньше или равно)
  3. == (равно) Заметьте! Не один знак "=", а два!
  4. != (не равно)

Пример:
{1 < %refcount% < 10}
TRUE если количество рефералов у пользователя больше 1 и меньше 10.

Логические операторы

Логические операторы объединяют результаты нескольких логических выражений. Каждое логическое выражение должно возвращать True / False. Настоятельно рекомендуется использовать круглые скобки "( )" для выделения каждого логического выражения.

and (логическое "и")
or (логическое "или")
not (логическое "не")

Примеры:
{(%balance% > 0) and (%refcount1% > 0)}
TRUE если у пользователя есть деньги на его балансе и (and) один или нескольких рефералов.

{(%balance% > 0) or (%usd% > 0)}
TRUE если у пользователя есть деньги на балансе или (or) средства на его USD переменной.

{((%balance% > %vip_price%) and (%manual_ban% == 0)) or (%vip% == 1)}
TRUE если Баланс пользователя больше чем стоимость VIP и (and) он не забанен или (or) это VIP пользователь.

{not(%balance% > 0)}
TRUE если баланс пользователя не (not) больше нуля (меньше или равен нулю). В основном используется в сложных выражениях.


Возможны и более сложные варианты {(xxx) and ((yyy) or (zzz))}:
{(%balance% > 100) and ((%refcount% > 10) or (%invest% > 500))}
В примере выше два условия должны быть выполнены - первое точно и любое из двух последних. Таким образом юзер обязан иметь %balance% более 100 И либо более 10 на %refcount% ИЛИ более 500 на %invest%.


Проверка наличия данных в переменной

Иногда в условии нужно проверить - присутствуют ли вообще какие-либо данные в Переменной (актуально в основном для Текстовых переменных).

Примеры:
{%var% == ""}
Условие вернет true если Текстовая переменная var - пуста.

{%var% != ""}
Условие вернет true если Текстовая переменная var - НЕ пуста - в ней есть данные.

Использование Условий

При добавлении Условия на кнопку или в Action, иногда возникают затруднения в определении того как и в какой именно момент сработает добавленное Условие.

Важно помнить - что во всех случаях добавленное вами Условие описывает нормальное состояние системы, то состояние, в котором система работает обычно. То есть - пока система находится в границах описанных условиями - никаких дополнительных действий Условием предприниматься не будет. Как только, при очередной проверке, Условие окажется "не верно" (False или 0) - сработает механизм ограничения заложенный в Условии и действие функции закрытой этим условием - будет прервано. Тоже самое относится и к "Action-у Условий" - в этом случае, НЕвыполнение его Условия прервет дальнейшую цепочку Action-ов.

ЛОГИКА УСЛОВИЙ: Таким образом, всегда при возникновении затруднений с Условиями размышляйте следующим образом: "До тех пор пока - (тут ваше условие) - ничего не предпринимать, в противном случае прервать".

СОВЕТ: При создании сложных Условий всегда начинайте с их структуры и только потом вставляйте необходимые выражения.
Например:
● Шаг 1 (основа):
{(...) or (...)}
● Шаг 2 (усложнение):
{( (...) and (...) ) or ( (...) and (...) )}
● Шаг 3 (общая структура):
{( ((...)or(...)) and (...) ) or ( (...) and (...) )}
● Шаг 4: Заменяем ... необходимыми выражениями.


Условия в кнопках


Условия, будучи добавленными в кнопку, определяют, имеет ли право конкретный пользователь получить доступ к конкретной кнопке.

Прежде чем вы сможете использовать Условия в кнопках вашего бота, их необходимо активировать.

Условия.
Для этого перейдите в свой бот:
☞ 🔐Админ | 🧩Расширения | 📂Кнопки


Перейдите к настройкам кнопки:


9a04b4df19eee8b27e4f6.jpg


Нажмите "Назначить Условие":


940efdf3668fb70d91e28.jpg


И... Назначьте Условие:


7c60ee13d100ea8a6534f.jpg


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


Screenshot_2023_08_24_18_39_38_740_org_telegram_messenger_web_edit.jpg


Три варианта действий:
1. Добавить новое сообщение (доступен «Продвинутый Режим» - позволяющий добавить Инлайн Кнопки и Медиа Переменную к сообщению ошибки)
2. Оставить как есть - если сообщение было добавлено ранее
3. Оставить пустым (кнопка «Задать Пустым» очистит текст сообщения если оно было добавлено ранее).

После выбора одного из вариантов Условие для кнопки будет создано.

Таким образом созданная кнопка сработает для юзера, только если его баланс больше 100. В противном случае кнопка покажет сообщение об ошибке, если оно было добавлено админом.


Условия для рассылки


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

Прежде чем вы сможете использовать Условия в рассылке их необходимо активировать.

Условия для Рассылки.
Для этого перейдите в свой бот:
☞ 🔐Админ | 🧩Расширения | 📂Оптимизация


6b47e201728ae7af48a91.jpg


Вы можете установить любые приемлемые условия.

Например:
{%balance% > 0}
Сообщение будет отправное только пользователям, которые имеют что-либо на своем балансе (у кого баланс больше нуля).


Дополнительная Информация


Условия также используются в Action-ах

Подробнее о видах Action-ов и использовании Условий в них, читайте в отдельном "Руководстве по Action-ам".


Условия можно использовать в Формах обратной связи

Подробнее смотри в "Руководстве по Формам".