Cluster · руководства

Как настроить команды юзербота Cluster

Команды юзербота настраиваются через сайт Cluster: можно изменить префикс, переименовать отдельную команду, выбрать доступ и ограничить работу модуля нужными чатами. Переписывать исходник для этого не требуется.

Далее для примера используется команда ping. Она должна существовать в установленном модуле. Для другой команды порядок тот же. Если Telegram ещё не подключён, начни с руководства по подключению.

Настройки команды

  1. Открой «Мои модули».
  2. Выбери нужный экземпляр модуля.
  3. Перейди во вкладку «Команды и ограничения».
  4. В блоке «Команды и обработчики» найди раздел «Команды».
  5. Нажми на строку нужной команды, чтобы развернуть её настройки.

У каждой команды отдельный блок. В нём есть «Название команды» и «Кто может использовать». Если команд много, воспользуйся поиском над списком.

Настройки относятся к выбранному экземпляру. У второго экземпляра того же модуля могут быть другие названия, данные и права.

Название команды

Допустим, вместо !ping нужна команда !check.

В поле «Название команды» укажи check и сохрани изменение. Префикс в это поле не добавляется.

До изменения: !ping
После изменения: !check
В личном боте: /check

Внутреннее имя обработчика остаётся прежним. Меняется название, по которому ядро ищет команду в сообщении.

Новое название не создаёт вторую команду: после переименования используй check, а не прежнее ping. Для команды, доступной и аккаунту, и личному боту, используется одно название в обоих источниках.

Префикс юзербота

Префикс находится перед названием команды. Исходно это !.

В том же блоке разверни «Префикс команд», измени поле «Префикс юзербота» и сохрани его. Например, после замены ! на . команда вызывается так:

.check

Префикс общий для юзербота. Хотя поле находится в настройках выбранного модуля, изменение затронет команды остальных модулей этого юзербота. У второго юзербота префикс свой.

Префикс задаёт овнер. Допускается от одного до четырёх символов без пробелов. В диалоге с личным ботом продолжай использовать обычный вызов /check.

Доступ к команде

Поле «Кто может использовать» задаёт круг пользователей:

Для личной команды оставь доступ только овнерам. Если командой должен пользоваться конкретный человек, добавь его в доверку и выдай нужные права в разделе «Настройки и доступ», вкладка «Овнеры и доверка».

Овнерка и доверка отличаются. Овнер управляет юзерботом, а доверка получает выбранные действия. Для одной команды не требуется выдавать управление всем аккаунтом.

Права модуля и ограничения по чатам

Доступ человека к команде и права самого модуля проверяются отдельно.

Например, ты разрешил всем использовать check. Это ещё не разрешает модулю отправлять сообщения в любой чат: у него должно быть принято право отправки, а нужный чат должен попадать в разрешённую область.

В настройках доступа модуля права собраны по категориям. Открой нужную категорию, проверь выданные разрешения и ограничения на ресурсы. Для команд аккаунта обычно нужны получение событий Telegram и отправка сообщений; для команд личного бота соответствующие права бота.

Если команда нужна только в одной группе, ограничь модуль этой группой. Передавай ID чата целиком: у супергрупп он обычно начинается с -100. Убирать эту часть или заменять ID ссылкой на чат не нужно.

Также проверь общие ограничения юзербота и настройки выбранного модуля в разделе «Настройки и доступ». Не разрешай дополнительные операции только ради устранения ошибки: сначала посмотри, какое действие действительно требуется.

Аккаунт и личный бот

Источник команды задаёт автор модуля. Команда может работать через Telegram-аккаунт, личного бота или оба подключения.

Переименование команды не меняет её источник. Если автор предусмотрел только личного бота, отправка того же названия от аккаунта не вызовет обработчик.

Для первой проверки удобно использовать «Избранное» подключённого аккаунта и отдельный диалог с личным ботом. Сообщение в другой бот, в том числе сервисный, не относится к этому юзерботу.

Конфликт названий

Два обработчика с одним названием могут конфликтовать. Это касается и двух экземпляров одного модуля.

При установке ядро предложит устранить конфликт. Задай одному из обработчиков другое название, например check_second. Аналогичная проверка выполняется при переименовании уже установленной команды.

Если новое название не сохранилось, проверь сообщение об ошибке и другие установленные экземпляры. Менять внутреннее имя обработчика в исходнике для этого не требуется.

Проверка после сохранения

Пусть ты выбрал префикс ., название check и доступ только овнерам.

  1. Отправь .check из подключённого аккаунта в разрешённый чат.
  2. Если команда поддерживает личного бота, отправь ему /check.
  3. Проверь, что ответ появился в нужном чате.
  4. Для проверки доверки используй отдельный разрешённый аккаунт и выданные ему права.

Формат ответа определяет модуль. Один обработчик отправит отдельное сообщение, другой отредактирует твоё исходное сообщение. Смена названия или префикса не меняет этот код.

Если команда не работает

Для своего обработчика есть руководство по созданию модуля на Python. Подробные форматы команд, кнопок и страниц находятся в справочнике модулей.