Wiki: Псевдонимы (aliases)

Проблема

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

Решение

Для решения этой проблемы в ядро встроен модуль псевдонимов. С помощью него можно любой команде (или набору команд) задать псевдоним в произвольном формате. После чего бот будет воспринимать его так же, как если бы вместо этой команды был введен скрываемый за псевдонимом набор команд.

Общие сведения

Алиасы устанавливаются в пределах канала и не взаимодействуют с алиасами других каналов. Таким образом, владелец канала может настроить команды бота так, как ему нравится.

Ограничения

Доступ

Модуль доступен для модераторов.

Команды

alias

Выводит список всех псевдонимов на канале.

alias - вывод псевдонима

!az alias активатор - вывести текст активируемой команды. Этот формат удобно использовать, если вы хотите отредактировать алиас. В таком случае сначала выводите его текст, потом копируете его в буфер, вводите «!az alias | » и вставляете скопированный текст, после этого вы его редактируете прямо в командной строке и исполняете команду для сохранения изменений.

aliason / alias+ - активация псевдонима

«Включает» псевдоним, т.е. далее его можно будет активировать.

Можно задавать группы в виде: !az aliason [gr1] [gr2] [gr3]. Будут активированы алиасы в этих группах.

Выбран синтаксис слитного написания слов команды («aliason», а не «alias on»), чтобы не блокировать создание алиаса «on».

aliasoff / alias- - деактивация псевдонима

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

Также можно задавать группы.

alias - добавление/редактирование/удаление псевдонима

Все три операции (добавление, редактирование, удаление) помещены в одну команду по следующему принципу: указывается текущее состояние псевдонима, причем в полном виде. Т.о. если алиаса до этого не существовало - он создается, если он существовал - он будет заменён новым значением, если значение пустое - он будет удалён.

!az alias активатор | активируемая_команда | свойства - полный вид команды.

Обратите внимание, что части команды отделяются друг от друга символами «|», это сделано для того, чтобы в слове-активаторе можно было использовать пробелы.

  • Список свойств
    • args - режим передачи в аргументов (включен по-умолчанию). В этом режиме аргументы, переданные с алиасом попадают в исполняемую команду. Например: делаем следующий алиас !az alias !S | say | args, после этого вводим !S Hello! и аргумент «Hello!» попадает в вызываемую команду !az say Hello!.
    • noargs - отключение передачи аргументов. Пример: алиас !az alias !S | say Hi! | noargs, после этого вводим !S text в данном случае будет выполнена команда !az say Hi!, а не !az say Hi! text.
    • reqargs - требует задания аргументов, без аргументов алиас выполнен не будет.
    • online - алиас будет работать только во время стрима.
    • offline - алиас будет работать только не во время стрима.
    • date дата - дата до которой алиас будет работать, а после автоматически отключится.
    • need-аргументы, проверяют наличие указанного уровня доступа, отказывает в исполнении алиаса в случае его отсутствия.
      • needsub - subscriber.
      • needmod - moderator.
      • needstreamer - streamer.
      • needop - operator.
      • needadmin - admin.
    • up-аргументы, поднимают текущий уровень привилегий зрителя, исполняющего данный алиас (действуют только на данный алиас):
      • upsub - subscriber.
      • upmod - moderator. Например: нам нужно сделать алиас для команды say, сама команда требует уровня доступа модератора, а мы хотим сделать ее доступной для, например, сабскрайберов, при этом нужно учесть, что хотим или нет мы передавать внутрь исполняемой команды пользовательские аргументы, команда для создания алиаса може быть примерно такой: !az alias !hi | say Привет, зритель! | noargs upmod needsub.
      • upstreamer - streamer.
      • upop - operator.
    • cd-аргументы, управляют кулдаунами на данный алиас. В случае задания кулдауна данным способом - отменяет кулдауны приписанных в алиас команд (т.е. это способ изменить кулдаун какой-то команды):
      • cdchannel время - устанавливает «канальный» кулдаун. Т.е. ограничение по данному алиасу на весь канал. Исполнение данного алиаса будет ограничено заданной паузой. время в минутах, но может быть задано интеллектуальным способом. "-" вместо времени для снятия кулдауна.
      • cduser время - устанавливает «пользовательский» кулдаун. Алиас будет ограничен по зрителям, т.е. будет пауза между исполнениями алиаса для каждого зрителя (и у каждого она будет своя). Допустимо комбинировать канальный и пользовательский кулдауны.
    • cdignore-аргументы - игнорирование кулдауна при определенном уровне привилегий.
      • cdignorenone - кулдауны будут игнорироваться при любом уровне привилегий.
      • cdignoresub - сабскрайберы будут игнорировать кулдауны.
      • cdignoremod - модераторы.
      • cdignorestreamer - стример.
      • cdignoreop - оператор.
    • cdgroup - группа кулдаунов. Задаётся в виде строки. При указании группы, все алиасы разделяют общий кудлаун для данной группы. Удобно использовать, например, если вы хотите сделать несколько алиасов для одного действия, либо для похожих действий.
    • anycase - режим нечувствительности к регистру алиаса (по-умолчанию). Т.е. алиас «!hi» будет активирован при вводе: «!hi», «!Hi», «!hI», «!HI».
    • case - режим чувствительности к регистру. Т.е. алиас «!hi» не будет активирован при вводе: «!Hi», «!hI», «!HI», а только при «!hi».
    • groups группы - группы через запятую или пробел. Привязывает алиас к указанным группам. Используется для групповой активации/деактивации алиасов. Параметр должен указываться последним, т.к. вся оставшаяся часть строки воспринимается как список групп.
    `!az alias активатор | активируемая_команда - свойства можно опускать, если их нет. !az alias активатор | - исполняемая команда не указана - алиас будет удалён. Обратите внимание на наличие символа «|» в конце, без него команда выполняется в режиме вывода данных об алиасе, а с ним - в режиме редактирования.

    Примеры

    !az alias !msg | say Сообщение в чат | noargs upmod
    `

    !az alias !сабчат | ws Сабчат в телеграме https:t.me/joinchat… \;; msg Ссылка на сабчат отправлена в приват. | noargs needsub upmod

    alias !hi | Say Hello! | upmod noargs cdchannel 10s cduser 1m cdignoremod