EnotPRO Logo EnotPRO

Облачные переменные

Облачные переменные — это механизм долговременного хранения данных, привязанных к конкретному пользователю, чату или глобально для всего бота.

📦 Типы переменных

Тип Привязка Где доступна Пример использования
person Пользователь Во всех чатах этого пользователя Баланс, настройки, имя
member Пользователь + Чат Только в конкретном чате Роль в группе, предупреждения
chat Чат/канал Всем участникам чата Тема чата, ID приветственного сообщения
global Весь бот Всем пользователям всех чатов Счётчик запусков бота, режим обслуживания
dynamic Временная В рамках текущей сессии Промежуточные данные формы (редко используется)

🕒 Время жизни

По умолчанию переменные хранятся бессрочно. В настройках переменной (раздел /adm → Переменные) можно установить время автоматического удаления:

Параметр Формат Пример Максимум
Время хранения XдXчXмXс , 3ч30м, 30м15с 7 суток

💡 Совет: Для временных данных (шаг многошагового сценария) используйте SetVarCloud с временем жизни .

📍 Доступ к значению

После загрузки через реакцию GetVarCloud или через макрос !{varcloud}, значение доступно по пути:

${var.тип.название}

Примеры:

${var.person.balance}     # Баланс текущего пользователя
${var.member.warns}       # Предупреждения в текущем чате
${var.chat.welcome_id}    # ID приветствия текущей группы
${var.global.counter}     # Глобальный счётчик

⚡ Доступные реакции

Реакция Назначение Ссылка
SetVarCloud Создать или полностью перезаписать переменную Подробнее
AddVarCloud Изменить значение (прибавить к числу, добавить в массив) Подробнее
DelVarCloud Полностью удалить переменную Подробнее
GetVarCloud Загрузить значение переменной в контекст Подробнее

🧪 Примеры использования

Пример 1: Сохранение имени пользователя

В обработчике команды /start:

  1. SetVarCloud → Тип: person, Название: user_name, Значение: ${user.name}
  2. В любом другом месте: доступ через !{varcloud|name: user_name}

Пример 2: Счётчик нажатий кнопки

При нажатии на кнопку:

  1. AddVarCloud → Тип: person, Название: clicks, Значение: 1

При отправке сообщения:

Вы нажали: !{varcloud|name: clicks|default: 0} раз

Пример 3: Глобальный счётчик запусков бота

В общем триггере (срабатывает при каждом событии):

  1. AddVarCloud → Тип: global, Название: total_updates, Значение: 1

Пример 4: Переменная участника чата (предупреждения)

При нарушении правил в группе:

  1. AddVarCloud → Тип: member, Название: warns, Значение: 1

При достижении 3 предупреждений:

  1. GetVarCloud → Тип: member, Название: warns
  2. Условие: Number${var.member.warns} 3
  3. BanChatMember → заблокировать в чате

⚖️ Сравнение: GetVarCloud vs макрос !{varcloud}

Характеристика GetVarCloud !{varcloud}
Способ вызова Реакция в триггере Встраивается в текст
Загрузка в контекст ✅ Да (через ${var...}) ❌ Нет (подстановка на лету)
Использование в условиях ✅ Да ❌ Нет (только в тексте)
Загрузка нескольких переменных ✅ Да (несколько реакций) ❌ Нет (только одна за раз)
Производительность Медленнее Быстрее

Рекомендация:

  • Одна переменная в тексте → !{varcloud}
  • Переменная в условии → GetVarCloud
  • Несколько переменных → GetVarCloud

🔗 Связанные разделы

© 2025 EnotPRO. Все права защищены.