EnotPRO Logo EnotPRO

TakeChatAdministrators

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

📝 Назначение

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

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

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

💡 Совет: Используйте TakeChatAdministrators когда нужно применить действие к каждому администратору. Если нужно просто получить список — используйте LoadChatAdministrators.

⚙️ Параметры

Параметр Тип Обязательный Описание
chat.id Integer/String ✅ Да ID чата/канала, администраторов которого нужно загрузить

📍 Результат

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

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

⚠️ Важно: В отличие от LoadChatAdministrators, результат помещается не в ${load}, а в ${target.from}. Это позволяет использовать TakeChatAdministrators в связке с другими реакциями, работающими с target.

🔄 Сравнение с LoadChatAdministrators

Характеристика TakeChatAdministrators LoadChatAdministrators
Переменная результата ${target.from} ${load}
Тип результата Массив администраторов Массив администраторов
Источник данных База данных бота (кэш) База данных бота (кэш)
Скорость Быстро Быстро
Совместимость с другими реакциями ✅ (работает с SendMessage и др.) ❌ (требуется ручная обработка)

💡 Совет: Используйте TakeChatAdministrators когда нужно отправить сообщение всем администраторам — реакция SendMessage с target.from отправит сообщение каждому.

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

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

Задача: Отправить уведомление всем администраторам чата.

Реакции:

  1. TakeChatAdministratorschat.id: ${chat.id}
  2. SendMessage
  • chat_id: из ${target.from.id} (автоматически для каждого администратора)
  • Текст: Внимание! В чате новое важное сообщение.

Пример 2: Отправка разного сообщения каждому администратору

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

Реакции:

  1. TakeChatAdministratorschat.id: ${chat.id}
  2. SendMessage
  • chat_id: из ${target.from.id}
  • Текст: Уважаемый ${target.from.first_name}, вы администратор чата "${target.chat.title}"

Пример 3: Проверка наличия администраторов

Задача: Узнать, есть ли администраторы в чате (кроме создателя).

Реакции:

  1. TakeChatAdministratorschat.id: ${chat.id}
  2. TriggerFolder с условием: Number → количество элементов в ${target.from} больше 1
  • Внутри: SendMessageВ чате есть другие администраторы

Пример 4: Применить действие к первому администратору

Задача: Выдать права первому в списке администратору.

Реакции:

  1. TakeChatAdministratorschat.id: ${chat.id}
  2. SetVarLocalfirst_admin = ${target.from.0.user.id}
  3. PromoteChatMemberuser_id: ${localVar.first_admin}

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

Ситуация Поведение
В чате нет администраторов ${target.from} будет пустым массивом
Бот не администратор Реакция может вернуть пустой массив
Массовая отправка SendMessage автоматически отправляет каждому из массива
Порядок администраторов Соответствует порядку в кэше бота

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

Реакция Назначение
LoadChatAdministrators Загрузить администраторов в ${load}
GetChatAdministrators Получить актуальных администраторов из API
TakeUserList Загрузить список пользователей
SendMessage Отправить сообщение администраторам

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

Раздел Описание
Чаты/Каналы в админке Управление чатами через интерфейс
Целевые переменные Работа с ${target.from} и ${target.chat}

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

  • LoadChatAdministrators — загрузка администраторов в ${load}
  • SendMessage — отправка сообщений администраторам
© 2025 EnotPRO. Все права защищены.