EnotPRO Logo EnotPRO

TakeUserList

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

📝 Назначение

В отличие от LoadUserList, которая просто загружает массив в ${load}, TakeUserList помещает список пользователей в целевую переменную (${target.from}), что позволяет отправлять сообщения или выполнять действия автоматически для каждого пользователя из списка.

Когда это нужно:

  • Массовая рассылка сообщений всем пользователям из списка
  • Выполнение действия для каждого пользователя (например, выдача бонуса)
  • Обработка списка пользователей в цикле

⚠️ Важно: Реакция загружает первые 200 пользователей из списка. Если в списке больше 200 участников, остальные не будут обработаны.

⚙️ Параметры

Параметр Тип Обязательный Описание
Список пользователей Выбор из списка ✅ Да Имя списка для загрузки
Устанавливать chat Boolean ❌ Нет Заменять target.chat на target.from

📍 Результат

После выполнения реакции данные становятся доступны в целевых переменных:

Переменная Описание
${target.from} Массив пользователей из списка (максимум 200)
${target.chat} Информация о чате (или дубликат target.from при включённой опции)

🔧 Опция «Устанавливать chat»

По умолчанию (опция включена):

  • ${target.chat} — информация о чате, где произошло событие
  • ${target.from} — массив пользователей из списка

При включённой опции:

  • ${target.chat} дублирует информацию из ${target.from} (каждый пользователь становится «чатом»)
  • Это удобно для массовых рассылок, где нужно отправить сообщение каждому пользователю

Пример структуры target по умолчанию:

{
  "chat": {
    "id": -1001798752916,
    "title": "Group Testing",
    "type": "supergroup"
  },
  "from": {
    "first_name": "Example",
    "id": 7042623778,
    "is_bot": false,
    "last_name": "07"
  }
}

Пример структуры target при включённой опции:

{
  "chat": {
    "first_name": "Example",
    "id": 7042623778,
    "last_name": "07",
    "type": "user"
  },
  "from": {
    "first_name": "Example",
    "id": 7042623778,
    "is_bot": false,
    "last_name": "07"
  }
}

📊 Ограничения

Ограничение Значение
Максимум пользователей за один вызов 200 пользователей
При превышении Остальные пользователи не загружаются

💡 Совет: Если в списке больше 200 пользователей, разбейте рассылку на несколько этапов или используйте LoadUserList для получения полного списка.

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

Пример 1: Массовая рассылка сообщений

Задача: Отправить сообщение всем пользователям из списка contest_participants.

Реакции:

  1. TakeUserListСписок пользователей: contest_participants, Устанавливать chat: true
  2. SendMessage → (автоматически для каждого пользователя) текст: Вы участвуете в розыгрыше!

Пример 2: Выдача бонуса всем участникам списка

Задача: Начислить 100 бонусов каждому пользователю из списка vip_users.

Реакции:

  1. TakeUserListСписок пользователей: vip_users
  2. AddVarCloud → (для каждого пользователя) value: 100

Пример 3: Проверка количества пользователей перед рассылкой

Задача: Перед рассылкой проверить, есть ли пользователи в списке.

Реакции:

  1. TakeUserListСписок пользователей: contest_participants
  2. TriggerFolder с условием: проверка, пуст ли ${target.from}
  • Внутри (если не пуст): рассылка
  • Иначе: SendMessageСписок пуст

🔄 Особенности поведения

Ситуация Поведение
Список пуст ${target.from} будет пустым массивом
Список не существует Реакция вызовет ошибку
В списке более 200 пользователей Загружаются только первые 200
Опция «Устанавливать chat» включена target.chat дублирует target.from

🔗 Связанные реакции

Реакция Назначение
AddToUserList Добавить пользователя в список
DelFromUserList Удалить пользователя из списка
LoadUserList Загрузить полный список (без ограничения 200)
ClearUserList Очистить список

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

Раздел Описание
Списки пользователей Общая информация о списках
Целевые переменные Работа с target.from и target.chat
© 2025 EnotPRO. Все права защищены.