Migration:irc2jabber
Общие сведения
Протокол IRC создавался в первую очередь для организации многопользовательских чатов, приватные беседы в нем вторичны. Поэтому здесь будут рассмотрены вопросы миграции в конференции Jabber.
На первый взгляд между Jabber и IRC сети схожи между собой - и там и там сеть состоит из множества равноправных серверов. Тем не менее, есть и существенные различия.
- Распределенность
- В типичной IRC сети существует единое пространство каналов и единое пространство пользователей. Если на двух серверах одной сети есть каналы с одинаковым именем, они окажутся слиты в один. В случае с Jabber конференциями, сервера конференций не линкуются между собой. На разных серверах могут быть комнаты с одним именем.
- Обычно это считается сильной стороной Jabber, но в случае с конференциями это спорно - ведь отключение сервера приводит к полной недоступности конференции.
- Кроме того, IRC-серверы линкуются друг с другом в определенном порядке. Так что, если в цепи выпадает один сервер, то образуется две «подсети». В Jabber все серверы взаимодействуют напрямую, и нарушение работы одного сервера сказывается только на его пользователях.
- Псевдоним
- В IRC сети ник, а если выражаться правильнее псевдоним пользователя и его учетная запись (логин) — одно и то же. В Jabber это не так. Вы можете иметь разные псевдонимы в разных конференциях, а один и тот же псевдоним в разных конференциях могут одновременно использовать разные пользователи (если псевдоним не зарегистрирован, см. далее).
- Регистрация пользователей и конференций
- В стандарте RFC 1459, описывающем IRC чат, регистрация не была предусмотрена. Чтобы исправить этот факт, были разработаны дополнительные сервисы, такие как NickServ и ChanServ. Однако эти сервисы не были стандартизированы, что вызывает сложности и по сей день.
- В случае с Jabber регистрация предусмотрена изначально. При необходимости, конкретную конференцию можно настроить так, чтобы пользователь не мог узнать реальный JID другого без его на то согласия (или без поддержки модераторов конференции).
- Также некоторые серверы конференций (например conference.jabber.ru) позволяют зарегистрировать псевдоним за определенным JID'ом, но не более одного в руки.
- Чувствительнось к регистру
- Конференции Jabber, в отличие от IRC, чувствительны к регистру псевдонимов. В одной конференции могут сосуществовать "User" и "user".
Проблемы и решения
Q: Как продолжить общение на IRC-каналах?
A: Используйте соответствующий транспорт.
Q: Как сделать автоматический вход на канал?
A: Для автоматического входа в конференцию добавьте её JID в закладки и установите флаг автоматического входа.
Чтобы сделать автовход на канал IRC через транспорт, действуйте так же. При этом JID обычно имеет вид "канал%irc_сервер@irc_транспорт".
Q: Какие есть аналоги команд IRC в конференциях?
A: Многие Jabber-клиенты позволяют использовать IRC-подобные команды для управления.
Клиент↓ \ Команда→ | /me | /nick | /clear | /ban | /kick | /leave | /say | /topic | /names |
---|---|---|---|---|---|---|---|---|---|
Psi | да | да | да | ||||||
Gajim | да | да | да | да | да | да | да | да | да |
Tkabber | да | да | да | да | да | да | да | ||
Kopete | |||||||||
Adium | да | да | да | да | да | ||||
Miranda | да | ||||||||
Pidgin | да | да | да | да | да | да | да | ||
QIP Infium | да | да | да | да | /quit | да | |||
Jabbim | да | да | да | да | |||||
Coccinella | да | да | да | да |
Q: Как соотносятся права в конференции и на каналеTemplate:Ref?
A: В Jabber права делятся на две категории: роли, действующие только в течении одного сеанса (в IRC - установка режимов пользователя командой /mode), и типы членства, действующие постоянно (в IRC установка режимов b, e, I для канала и/или внесение в AOP/HOP/VOP списки сервиса ChanServ).
Примерное соответствие для типов членства таково:
- owner - владелец конференции. Аналог владельца канала (owner).
- admin - администратор. Аналог автооператора (aop).
- member - постоянный участник. Аналог приглашенного пользователя (+i).
- none - обычный пользователь.
- outcast - изгой. Аналог забаненного пользователя (+b).
Примерное соответствие для ролей таково:
- moderator - модератор. Если имеет членство admin, то аналог оператора-админа (+ao), если членство owner аналог оператора-владельца (+qo), иначе аналог простого оператора (+o) или полуоператоров (+h), точно определить сложно.Template:Ref
- participant - участник. Аналог пользователя с войсом (+v).
- visitor - гость. Аналог пользователя без войса.
Подробнее о ролях и типах членства читайте в статье Конференции.
Q: Как соотносятся настройки конференции и канала?
A: Примерное соотношение некоторых настроекTemplate:Ref и режимов каналов таково:
- постоянная - аналог регистрации канала у ChanServ. Если флаг снят, при выходе последнего пользователя все настройки комнаты сбросятся, а сама она исчезнет.
- публичная - антипод режима секретности канала (+s). Скрытая комната не будет видна в общем списке комнат.
- защита паролем - аналог режима с ключом (+k). При входе в комнату у пользователя потребуют пароль.
- число пользователей - аналог режима ограниченной вместимости (+l). В комнату смогут войти не более указанного числа пользователей.
- режим анонимности - не имеет аналога в обычном IRC, но отчасти выполняет функции HostServ. Определяет, кому будет виден настоящий JID пользователя.
- только для зарегистрированных - аналог режима "по приглашениям" (+i). Только пользователи с членством member или выше смогут войти в комнату.
- модерируемая - аналог режима модерации (+m). Только пользователи с ролью participant и выше смогут писать в конференцию.
- участники по умолчанию - аналог функции ChanServ. По умолчанию входящие пользователи будут получать роль participant.
- пользователи меняют тему - антипод режима "только операторы меняют тему канала" (+t).
Q: Я использую mIRC и привык использовать скрипты. Что мне делать?
A: Вам придется найти подходящий клиент. Минимальную функциональность предоставляет QIP Infium с плагином "Aliases MOD". В частности, он позволяет задать такие полезные алиасы:
/я /me /nickserv /msg nickserv@*.rusnet /ушел /away %||/nick ВашНик[away]
и тому подобное. Возможно, аналогичный плагин есть и для Miranda.Template:Ref
Q: Я использую mIRC и привык использовать цветовые коды. Что мне делать?
A: В Jabber не предусмотрено форматирование сообщений. И большинство irc-транспортов обрезают цветовые коды mIRC. Строго говоря, mIRC-форматирование даже не описано в стандартах IRC. Так что, тут ничего не поделаешь.
Q: Jabber позволяет очень вольно обращаться с никами. Как мне понять что участник не тот, за кого себя выдает?
A: Тут есть три способа.
- можно помечать "своих", выдавая им права участника. (См. выше про систему прав в конференции.) Выдача прав базируется на реальном JID пользователя, так что для обмана этого способа потребуется угнать чужую учетную запись.
- можно обратиться к модератору. Им, как правило, видны реальные JID'ы участников, и они могут сравнить их с правильными. Способ поддается автоматизации (бот с соответствующей функциейПроверить: какой бот это умеет?).
- можно открыть JID'ы пользователей всем. Тогда любой пользователь сможет посмотреть на JID незнакомца и сравнить его с правильным (если, конечно знает правильный). Недостаток этого метода - любой посторонний, зашедший в конференцию, сможет увидеть реальные JID'ы всех участников.
Примечания
- Template:Note здесь и далее речь о каналах, зарегистрированных через ChanServ или аналог.
- Template:Note пользователь с ролью moderator и с членством ниже admin — это пользователь который имеет временные, не закреплённые права(роль). При уходе с конференции он потеряет свою роль moderator и станет participant. Кроме того в IRC можно дать любые права во временное пользование, а в джаббере они (членство-принадлежности) прописываются сразу как постоянные, то есть при выходе не сбрасываются. Но тут возможно ещё зависит от сервера.
- Template:Note названия настроек могут отличаться
- Template:Note есть громоздкий, сложный и не уклюжий mBot, чего по проще и удобнее пока не встречалось.