Облачные переменные
Облачные переменные — это механизм долговременного хранения данных, привязанных к конкретному пользователю, чату или глобально для всего бота.
📦 Типы переменных
| Тип | Привязка | Где доступна | Пример использования |
|---|---|---|---|
person |
Пользователь | Во всех чатах этого пользователя | Баланс, настройки, имя |
member |
Пользователь + Чат | Только в конкретном чате | Роль в группе, предупреждения |
chat |
Чат/канал | Всем участникам чата | Тема чата, ID приветственного сообщения |
global |
Весь бот | Всем пользователям всех чатов | Счётчик запусков бота, режим обслуживания |
dynamic |
Временная | В рамках текущей сессии | Промежуточные данные формы (редко используется) |
🕒 Время жизни
По умолчанию переменные хранятся бессрочно. В настройках переменной (раздел /adm → Переменные) можно установить время автоматического удаления:
| Параметр | Формат | Пример | Максимум |
|---|---|---|---|
| Время хранения | XдXчXмXс |
1д, 3ч30м, 30м15с |
7 суток |
💡 Совет: Для временных данных (шаг многошагового сценария) используйте
SetVarCloudс временем жизни1ч.
📍 Доступ к значению
После загрузки через реакцию GetVarCloud или через макрос !{varcloud}, значение доступно по пути:
${var.тип.название}
Примеры:
${var.person.balance} # Баланс текущего пользователя
${var.member.warns} # Предупреждения в текущем чате
${var.chat.welcome_id} # ID приветствия текущей группы
${var.global.counter} # Глобальный счётчик
⚡ Доступные реакции
| Реакция | Назначение | Ссылка |
|---|---|---|
| SetVarCloud | Создать или полностью перезаписать переменную | Подробнее |
| AddVarCloud | Изменить значение (прибавить к числу, добавить в массив) | Подробнее |
| DelVarCloud | Полностью удалить переменную | Подробнее |
| GetVarCloud | Загрузить значение переменной в контекст | Подробнее |
🧪 Примеры использования
Пример 1: Сохранение имени пользователя
В обработчике команды /start:
SetVarCloud→ Тип:person, Название:user_name, Значение:${user.name}- В любом другом месте: доступ через
!{varcloud|name: user_name}
Пример 2: Счётчик нажатий кнопки
При нажатии на кнопку:
AddVarCloud→ Тип:person, Название:clicks, Значение:1
При отправке сообщения:
Вы нажали: !{varcloud|name: clicks|default: 0} раз
Пример 3: Глобальный счётчик запусков бота
В общем триггере (срабатывает при каждом событии):
AddVarCloud→ Тип:global, Название:total_updates, Значение:1
Пример 4: Переменная участника чата (предупреждения)
При нарушении правил в группе:
AddVarCloud→ Тип:member, Название:warns, Значение:1
При достижении 3 предупреждений:
GetVarCloud→ Тип:member, Название:warns- Условие:
Number→${var.member.warns}≥3 BanChatMember→ заблокировать в чате
⚖️ Сравнение: GetVarCloud vs макрос !{varcloud}
| Характеристика | GetVarCloud | !{varcloud} |
|---|---|---|
| Способ вызова | Реакция в триггере | Встраивается в текст |
| Загрузка в контекст | ✅ Да (через ${var...}) |
❌ Нет (подстановка на лету) |
| Использование в условиях | ✅ Да | ❌ Нет (только в тексте) |
| Загрузка нескольких переменных | ✅ Да (несколько реакций) | ❌ Нет (только одна за раз) |
| Производительность | Медленнее | Быстрее |
Рекомендация:
- Одна переменная в тексте →
!{varcloud} - Переменная в условии →
GetVarCloud - Несколько переменных →
GetVarCloud
🔗 Связанные разделы
- Локальные переменные — для временных данных внутри триггера
- Макрос varcloud — быстрый доступ без реакции GetVarCloud
- Переменные в админке — создание и управление переменными через интерфейс
- Условие VarCloudValue — проверка значений переменных