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: Отправка сообщения всем администраторам
Задача: Отправить уведомление всем администраторам чата.
Реакции:
TakeChatAdministrators→chat.id:${chat.id}SendMessage→
chat_id: из${target.from.id}(автоматически для каждого администратора)- Текст:
Внимание! В чате новое важное сообщение.
Пример 2: Отправка разного сообщения каждому администратору
Задача: Отправить каждому администратору персональное сообщение.
Реакции:
TakeChatAdministrators→chat.id:${chat.id}SendMessage→
chat_id: из${target.from.id}- Текст:
Уважаемый ${target.from.first_name}, вы администратор чата "${target.chat.title}"
Пример 3: Проверка наличия администраторов
Задача: Узнать, есть ли администраторы в чате (кроме создателя).
Реакции:
TakeChatAdministrators→chat.id:${chat.id}TriggerFolderс условием:Number→ количество элементов в${target.from}больше 1
- Внутри:
SendMessage→В чате есть другие администраторы
Пример 4: Применить действие к первому администратору
Задача: Выдать права первому в списке администратору.
Реакции:
TakeChatAdministrators→chat.id:${chat.id}SetVarLocal→first_admin = ${target.from.0.user.id}PromoteChatMember→user_id:${localVar.first_admin}
🔄 Особенности поведения
| Ситуация | Поведение |
|---|---|
| В чате нет администраторов | ${target.from} будет пустым массивом |
| Бот не администратор | Реакция может вернуть пустой массив |
| Массовая отправка | SendMessage автоматически отправляет каждому из массива |
| Порядок администраторов | Соответствует порядку в кэше бота |
🔗 Связанные реакции
| Реакция | Назначение |
|---|---|
| LoadChatAdministrators | Загрузить администраторов в ${load} |
| GetChatAdministrators | Получить актуальных администраторов из API |
| TakeUserList | Загрузить список пользователей |
| SendMessage | Отправить сообщение администраторам |
🔗 Связанные разделы
| Раздел | Описание |
|---|---|
| Чаты/Каналы в админке | Управление чатами через интерфейс |
| Целевые переменные | Работа с ${target.from} и ${target.chat} |
🔗 Связанные разделы
- LoadChatAdministrators — загрузка администраторов в
${load} - SendMessage — отправка сообщений администраторам