loadRandomContent
loadRandomContent — загружает случайный контент из списка доступных в текущий контекст выполнения.
📝 Назначение
Используется для выбора случайного контента из всех созданных в разделе /adm → Публикации. После загрузки данные становятся доступны через переменную ${content}.
Когда это нужно:
- Рандомная рассылка (разные контенты разным пользователям)
- Игровые механики (случайный факт, случайный вопрос)
- Ротация рекламных объявлений
- A/B тестирование разных вариантов сообщений
- «Кнопка удачи» — случайный контент по запросу
💡 Совет: Комбинируйте с
sendContentдля отправки случайного контента пользователю.
📍 Результат
После выполнения реакции данные случайно выбранного контента становятся доступны в переменной:
${content}
Структура ${content}:
| Поле | Тип | Описание |
|---|---|---|
id |
String | ID контента |
name |
String | Техническое название контента |
text |
String | Текст сообщения |
file |
Object | Медиафайл (или массив для альбома) |
buttons |
Array | Кнопки меню |
web_preview |
Object | Настройки превью ссылок |
auto_update |
Boolean | Флаг автообновления |
disable_notification |
Boolean | Тихая отправка |
protect_content |
Boolean | Защита от пересылки |
show_caption_above_media |
Boolean | Подпись над медиа |
no_memory |
Boolean | Режим «Не запоминать» |
posts |
Array | История публикаций (связи) |
posts_limit |
Integer | Лимит истории |
check_post |
Object | Превью-сообщение («Проверить») |
🎲 Как выбирается случайный контент
| Параметр | Поведение |
|---|---|
| Список не указан | Выбор из всех контентов бота (равномерная вероятность) |
| Список указан | Выбор только из указанных контентов (равномерная вероятность) |
| В списке один контент | Всегда возвращается он (100% вероятность) |
| Контент(ы) не существуют | Реакция вызовет ошибку |
⚠️ Важно: Выбор происходит случайным образом при каждом вызове. Нет гарантии, что разные пользователи не получат один и тот же контент.
🧪 Примеры использования
Пример 1: Отправка случайного контента пользователю
Задача: При команде /random отправлять пользователю случайный контент из всех доступных.
Обработчик: Команда /random
Реакции:
loadRandomContent(список не указан)sendContent→ Контент:${content.name}, Чат:${chat.id}
Пример 2: Случайный факт из подборки
Задача: Отправлять случайный «факт дня» из списка контентов fact_01, fact_02, fact_03.
Обработчик: Команда /fact
Реакции:
loadRandomContent→Список контентов:fact_01, fact_02, fact_03sendContent→ Контент:${content.name}, Чат:${chat.id}
Пример 3: A/B тестирование (50/50)
Задача: 50% пользователей получают вариант A, 50% — вариант B.
Обработчик: Команда /test
Реакции:
loadRandomContent→Список контентов:variant_a, variant_bsendContent→ Контент:${content.name}, Чат:${chat.id}SendMessage→ (в технический чат) текст:Пользователю ${user.id} отправлен вариант: ${content.name}
Пример 4: Ротация рекламных объявлений
Задача: При каждом новом пользователе отправлять случайное рекламное объявление.
Обработчик: Команда /start
Реакции:
loadRandomContent→Список контентов:ad_winter, ad_spring, ad_summer, ad_autumnsendContent→ Контент:${content.name}, Чат:${user.id}
Пример 5: Кнопка «Удачи» (с исключением текущего)
Задача: При нажатии кнопки отправлять случайный контент, отличный от текущего.
Обработчик: Нажатие кнопки
Реакции:
loadContent→ загрузить текущий контент (чтобы знать его ID)loadRandomContent→Список контентов:content_1, content_2, content_3(без текущего)sendContent→ Контент:${content.name}, Чат:${chat.id}
Пример 6: Использование в отложенном действии
Задача: Через час после подписки отправить случайный приветственный контент.
Реакции (при подписке):
StartTask→Отложенное действие:welcome_random,Отсрочка:1h
В отложенном действии:
loadRandomContent(список не указан)sendContent→ Контент:${content.name}, Чат:${user.id}
🔄 Особенности поведения
| Ситуация | Поведение |
|---|---|
| Нет ни одного контента | Реакция вызовет ошибку |
| В списке указан несуществующий контент | Реакция вызовет ошибку |
| Один контент в списке | Всегда выбирается он |
| Один контент всего | Всегда выбирается он |
| Список пуст (но выбран) | Реакция вызовет ошибку |
📊 Пример распределения
При выборе из 4 контентов с равной вероятностью:
| Контент | Вероятность |
|---|---|
| content_1 | 25% |
| content_2 | 25% |
| content_3 | 25% |
| content_4 | 25% |
💡 Совет: Для неравномерного распределения (например, 70/30) используйте несколько вызовов
loadRandomContentс разными наборами и условиями.
🔗 Связанные реакции
| Реакция | Назначение |
|---|---|
| LoadContent | Загрузить конкретный контент |
| SendContent | Отправить контент |
| UpdateContent | Обновить опубликованные копии |
🔗 Связанные разделы
| Раздел | Описание |
|---|---|
| Публикации (Content) | Создание и управление контентом |
| Макрос random | Альтернативный способ случайного выбора |
🔗 Быстрая навигация
- Вверх
- Параметры
- Результат
- Как выбирается случайный контент
- Примеры
- Особенности
🔗 Ссылка на официальную документацию
(Функция реализована на стороне платформы EnotPro, не является методом Telegram Bot API)