Migration:irc2jabber

From JaWiki (Jabber/XMPP wiki)
Revision as of 17:52, 2 September 2009 by Cblp.su (Talk | contribs) (Примечания: пруфлинк)

Jump to: navigation, search

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

Протокол 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

ToDo: написать, какие еще клиенты обладают достаточным скриптовым функционалом

Q: Я использую mIRC и привык использовать цветовые коды. Что мне делать?
A: В Jabber не предусмотрено форматирование сообщений. И большинство irc-транспортов обрезают цветовые коды mIRC. Строго говоря, mIRC-форматирование даже не описано в стандартах IRC. Так что, тут ничего не поделаешь.


Q: Jabber позволяет очень вольно обращаться с никами. Как мне понять что участник не тот, за кого себя выдает?
A: Тут есть три способа.

  1. можно помечать "своих", выдавая им права участника. (См. выше про систему прав в конференции.) Выдача прав базируется на реальном JID пользователя, так что для обмана этого способа потребуется угнать чужую учетную запись.
  2. можно обратиться к модератору. Им, как правило, видны реальные JID'ы участников, и они могут сравнить их с правильными. Способ поддается автоматизации (бот с соответствующей функциейQuestion.gifПроверить: какой бот это умеет?).
  3. можно открыть JID'ы пользователей всем. Тогда любой пользователь сможет посмотреть на JID незнакомца и сравнить его с правильным (если, конечно знает правильный). Недостаток этого метода - любой посторонний, зашедший в конференцию, сможет увидеть реальные JID'ы всех участников.

Примечания

  1. Template:Note Здесь и далее речь о каналах, зарегистрированных через ChanServ или аналог.
  2. Template:Note Пользователь с ролью moderator и с членством ниже admin — это пользователь, имеющий временные, не закреплённые права (роль). При выходе из конференции он потеряет свою роль moderator и станет participant. Кроме того, в IRC можно дать любые права во временное пользование, а в джаббере они (членство-принадлежности) прописываются сразу как постоянные, то есть при выходе не сбрасываются. Хотя это может зависеть от сервераQuestion.gifПроверить: а может ли? ксеп позволяет?.
  3. Template:Note Названия параметров могут отличаться.
  4. Template:Note Есть mBot, он громоздкий, сложный и не уклюжий, но ничего проще и удобнее не известно.