EnotPRO Logo EnotPRO

Исполняемые модули

Исполняемые модули — это компоненты платформы EnotPro, которые выполняют определённые действия и возвращают результат своей работы.

Существует несколько видов исполняемых модулей:

Триггеры

Триггер — это контейнер для реакций, в котором собираются все реакции, которые будут выполнены при наступлении определённых условий.

Как это работает:

  1. Создаётся триггер (обработчик, общий триггер, глобальный триггер)
  2. В него добавляются реакции (действия)
  3. При наступлении события (команда, нажатие кнопки, расписание) триггер активируется
  4. Все реакции внутри триггера выполняются в заданном порядке

Типы триггеров:

Тип Описание
Обработчик Срабатывает на событие от пользователя (команда, текст, медиа)
Общий триггер Переиспользуемый набор реакций, запускается через RunTrigger
Глобальный триггер Срабатывает при любом событии (До — перед всеми, После — после всех)
Триггер формы Срабатывает на этапах прохождения формы

Подробнее в разделе Триггеры.

Реакции

Реакция — это базовый исполняемый модуль, который выполняет конкретное действие.

Примеры реакций:

  • Отправить сообщение (SendMessage)
  • Удалить сообщение (DeleteMessage)
  • Запустить форму (StartForm)
  • Заблокировать пользователя (BanChatMember)
  • Выполнить HTTP-запрос (SendRequest)

Реакции добавляются внутрь триггера и выполняются последовательно, в порядке их расположения.

💡 Совет: Реакции можно группировать с помощью TriggerFolder и организовывать циклы с помощью For.

Полный список реакций доступен в разделе Реакции.

Условия

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

Как это работает:

  1. К реакции или группе реакций добавляется условие
  2. Условие проверяется перед выполнением
  3. Если условие возвращает true — реакция выполняется
  4. Если 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}

🔗 Связь между модулями

Триггер (контейнер)
    │
    ├── Условие (ограничение) — проверяет, нужно ли выполнять
    │
    ├── Реакция — выполняет действие
    │       │
    │       ├── Переменная ${...} — подставляет данные
    │       │
    │       └── Макрос !{...} — выполняет преобразование
    │
    └── Реакция — следующее действие
© 2025 EnotPRO. Все права защищены.