В чем разница между командами Chanserv и / mode в irc (freenode)

393
M.Mass

Я немного сбит с толку, несмотря на то, что я использую IRC в течение последних 5 лет, есть бот ChanServ, и вы можете выполнять операции (изменения ACL), используя его, например, если вы хотите присвоить статус основателя для пользователя, которого вы выполняете /msg ChanServ #channel-foo-bar <nick> +Fно зачем говорить, что если мы хотим запретить кого-то, мы используем ChanServ и настраиваем +bна человека, но меня беспокоит то, почему, если мы хотим установить спокойствие для человека (который есть +q), мы должны бежать /mode #channel-foo-bar <nick> +q. Я думал, что ChanServ используется для управления битами ACL на человека и /modeиспользуется для установки параметров для каждого канала, но, похоже, я ошибался, почему, скажем, мы не можем установить +qфлаг с помощью ChanServ?

2

1 ответ на вопрос

3
grawity

Ну, и тихие и запреты фактически устанавливаются через / mode ( /mode +qи /mode +bсоответственно). «Предоставление» кому-либо флага + b через ChanServ просто говорит ему установить режим + b всякий раз, когда забаненный человек возвращается (а также выбивая его из канала).

Основное различие между использованием /mode +bи флагами ChanServ заключается в том, что последние хранятся постоянно (см. Полное объяснение ниже).

В качестве дополнительной функции ChanServ позволяет вам ставить заметки и время истечения срока действия запретов. Хотя это не доступно через flags, но вы можете получить доступ к этой функции через /msg chanserv akick. Операторы каналов часто находят полезным узнать, почему кого-то забанили и на какой срок - без необходимости хранить общий Google-документ для этого.


Предыстория: большинство сетей IRC не имеют какого-либо постоянного хранилища. У них нет пользовательских учетных записей. Все каналы являются временными, их режимы и списки банов хранятся в памяти только до тех пор, пока на канале есть люди. Если вы получаете оп-статус, он действует только в то время, когда вы находитесь в канале - если вы уходите или отключаетесь, кому-то понадобится снова / оп. Если сервер перезагружается, он повторно синхронизируется с нуля. Если вся сеть перезагружается, все состояние теряется. (Как это случилось с EFnet в конце 2012 года.)

(Есть исключения, но это обычный случай.)

Служебные боты (ChanServ) предоставляют это хранилище в совершенно отдельной программе, действуя очень похоже на традиционного «бота» или просто скриптового клиента. Все флаги, которые вы устанавливаете в ChanServ, на самом деле не влияют на сеть напрямую - они просто говорят ChanServ установить некоторые / режимы от вашего имени. (Если вы оператор канала, вы, конечно, можете установить эти / режимы самостоятельно, они будут только временными.)

Поэтому, когда у вас есть флаги + o или + F на freenode, это не меняет ваш прямой доступ к каналу; это дает вам косвенный доступ через ChanServ. Флаг + o - это ACL, который позволяет вам запросить ChanServ для /mode +oсебя. Флаг + F - это ACL, который позволяет передавать флаги / ACL другим.


Почему у ChanServ нет флага + q, чтобы отключить звук пользователей? Ну, это может, но никто еще не реализовал это.

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

Другая причина заключается в том, что сервисное программное обеспечение написано для работы с несколькими различными типами IRC-серверов и манипулирования всеми их пользовательскими расширениями. Только полные запреты являются стандартной частью IRC - хотя у freenode есть +qрежимы отключения звука (тишины), это нестандартное дополнение.

Другие IRC-серверы имеют разные расширения. Например, гораздо более распространенное значение +q- это статус «владелец канала», который означает не владельца стиля ChanServ, а обычный доступ к chanop с некоторыми бонусами. Вы можете увидеть это на Foonetic или Rizon; вместо просто "оп / голос /поденщикнормальный "у вас есть" владелец / администратор / оп / halfop / голос / нормальный ". (Приглушенные / тихие, конечно, должны использовать другую букву.)

Таким образом, основная причина, по которой ChanServ в freenode не имеет +qфлага для отключения звука, состоит в том, что он уже использует тот же флаг для реализации уровня «владельца» в этих других типах сети.

(Было много случаев, когда сеть переключала свое базовое серверное программное обеспечение, но сохраняла одно и то же сервисное программное обеспечение и базу данных учетных записей. Когда это происходит, вам, безусловно, не нужно, чтобы службы конвертировали все предыдущие записи "+ q (владелец канала)" в Записи "+ q (без звука)" ...)

Ага, так что теперь после вашего поста и небольшого поиска в Google, насколько я понимаю, `/ mode` является временным решением, и он сохраняет настройки канала, пока кто-то находится в канале, и после того, как канал пуст, настройки` / mode` будет пренебрегаться Также, насколько я прочитал, есть режим ChanServ `MLOCK`, который позволяет сохранять настройки канала, даже если он может стать пустым. M.Mass 5 лет назад 0
Да, MLOCK предназначен для базовых / универсальных режимов, которые еще не охвачены списками FLAGS или AKICK. grawity 5 лет назад 0

Похожие вопросы