Исполняемые модули
Исполняемые модули — это компоненты платформы EnotPro, которые выполняют определённые действия и возвращают результат своей работы.
Существует несколько видов исполняемых модулей:
Триггеры
Триггер — это контейнер для реакций, в котором собираются все реакции, которые будут выполнены при наступлении определённых условий.
Как это работает:
- Создаётся триггер (обработчик, общий триггер, глобальный триггер)
- В него добавляются реакции (действия)
- При наступлении события (команда, нажатие кнопки, расписание) триггер активируется
- Все реакции внутри триггера выполняются в заданном порядке
Типы триггеров:
| Тип | Описание |
|---|---|
| Обработчик | Срабатывает на событие от пользователя (команда, текст, медиа) |
| Общий триггер | Переиспользуемый набор реакций, запускается через RunTrigger |
| Глобальный триггер | Срабатывает при любом событии (До — перед всеми, После — после всех) |
| Триггер формы | Срабатывает на этапах прохождения формы |
Подробнее в разделе Триггеры.
Реакции
⚡ Реакция — это базовый исполняемый модуль, который выполняет конкретное действие.
Примеры реакций:
- Отправить сообщение (
SendMessage) - Удалить сообщение (
DeleteMessage) - Запустить форму (
StartForm) - Заблокировать пользователя (
BanChatMember) - Выполнить HTTP-запрос (
SendRequest)
Реакции добавляются внутрь триггера и выполняются последовательно, в порядке их расположения.
💡 Совет: Реакции можно группировать с помощью
TriggerFolderи организовывать циклы с помощьюFor.
Полный список реакций доступен в разделе Реакции.
Условия
Условия позволяют задать параметры, при которых реакции будут выполняться (или не выполняться).
Как это работает:
- К реакции или группе реакций добавляется условие
- Условие проверяется перед выполнением
- Если условие возвращает
true— реакция выполняется - Если
false— реакция пропускается
Примеры условий:
- Проверка значения переменной (
VarCloudValue) - Проверка статуса пользователя (
UserStatus) - Проверка вхождения в список (
InUserList)
Подробнее в разделе Условия.
Переменные
Переменная — это путь к данным, которые нужно отобразить или использовать в реакции.
Переменные имеют строгий формат:
${путь.к.данным}
Примеры переменных:
| Переменная | Описание |
|---|---|
${from.name} |
Имя пользователя |
${from.id} |
ID пользователя |
${update.message.text} |
Текст сообщения |
${update.message.message_id} |
ID сообщения |
${chat.id} |
ID чата |
${var.person.balance} |
Облачная переменная пользователя |
Пример использования в реакции SendMessage:
Привет, ${from.name},
добро пожаловать в нашего бота!
Параметр |default
Параметр |default: текст отображает указанный текст, если переменная не существует (но не если она пуста).
Пример:
${user.name|default: Гость}
Если переменная user.name существует — будет подставлено её значение. Если нет — будет подставлено «Гость».
⚠️ Важно:
defaultсрабатывает только при отсутствии переменной. Если переменная существует, но пуста (""),defaultне применяется.
Полный список переменных можно найти в логах. Подробнее в статье о реакции Log.
Макросы
Макросы — это мини-программы, которые выполняют преобразования и возвращают результат. Они используются внутри реакций и подставляют результат своего выполнения прямо в текст.
Пример:
Текущее время: !{time|value:now; output_format:HH:mm}
Подробнее в разделе Макросы.
Правила составления макросов
| Правило | Описание |
|---|---|
Начинается с !{ |
Открывающая конструкция |
Заканчивается на } |
Закрывающая конструкция |
Параметры разделяются ; |
Точка с запятой между параметрами |
| Формат параметра | параметр: значение |
Рекомендация: разделять параметры новой строкой для удобства чтения.
Пример многострочного макроса:
!{time|
value: now;
plus: 1d;
output_format: DD.MM.YYYY
}
Параметр default в макросах
Параметр default выводит текст по умолчанию, если результат макроса отсутствует (например, переменная не найдена или значение пустое).
Пример:
!{varcloud|name: balance|default: 0}
🔗 Связь между модулями
Триггер (контейнер)
│
├── Условие (ограничение) — проверяет, нужно ли выполнять
│
├── Реакция — выполняет действие
│ │
│ ├── Переменная ${...} — подставляет данные
│ │
│ └── Макрос !{...} — выполняет преобразование
│
└── Реакция — следующее действие