LIJ

From JaWiki (Jabber/XMPP wiki)
Revision as of 14:58, 1 June 2011 by Leksey (Talk | contribs) (импорт)

Jump to: navigation, search
Показан ответ и запрос темы

LiJ (сокр. от LiveJabber) - рабочее название открытого распределённого сервиса микроблогга для XMPP-серверов (или instant blogging), базирующегося на PubSub. Расположен на поддомене сервиса HabaHaba.

При разработке используется Python, XMPP-сервер - ejabberd, но в дальнейшем любой, поддерживающий подключение сервисов. В данный момент единственная тестовая копия lij запущена в виде сервиса по адресу xmpp:lij.habahaba.im. Регистрация на нём пока закрыта, но вы можете её запросить (см. ссылку внизу). Автор - Binary. В перспективе, когда появятся xmpp-клиенты с нативной поддержкой PubSub этот сервис, как интерфейс к нему, перестанет быть нужен - программы-клиенты смогут напрямую общаться с ним.

Как начать использовать

В данный момент воспользоваться можно только в режиме бета-тестирования. Свободной регистрации нет. Через некоторое время она станет доступна по приглашениям.

  1. (из-за нестабильности сервиса пока только такой вариант) Запросить учетную запись в комментариях записи в Juick или по адресу xmpp:binary@jrudevels.org
  2. Получить уведомление от binary@ об активации
  3. К своей основной учетной записи подключить сервис lij.habahaba.im, указав то имя и пароль, которые вы использовали в первом пункте
  4. Предоставить подписку сервису, которую он запросит после ввода имени и пароля. В ростере появится lij.habahaba.im со статусом online
  5. Проверить работу отослав ping в чате с lij.habahaba.im

В дальнейшем, когда появятся другие копии LIJ, в пункте 4 можно будет указывать JID с других серверов, где будут запущены другие копии LIJ. С момента появления второй копии LIJ сервис станет распределенным.

Как установить на свой XMPP-сервер (для администраторов)

Пока копия только одна и запущена она по адресу xmpp:lij.habahaba.im

В дальнейшем любой желающий сможет скачать и установить LIJ на свой xmpp-сервер и предоставить своим пользователям читать и размещать сообщения локально и на других узлах LIJ.

Требования: twisted, w:django, СУБД (поддерживаемая django), любой xmpp-сервер поддерживающий подключение сервисов (XEP-0114) и модифицированный Pubsub-модуль (пока патч только для ejabberd имеется).

Справочник

Команды к регистру нечувствительны, к языку раскладки нетребовательны. Частично или полностью могут копировать команды, используемые в Juick.

Каждое сообщение и комментарий умеет уникальный номер. Во всех операциях (кроме публикации новогого сообщения) его нужно указывать. Номер выглядит как иностранный символ нумерации - решетка # и следующие за ним без пробела цифры. Например, #555.[1]

Синтаксис специально сделан весьма гибким: вместо "#1 текст комментария" можно написать "№1ответ", и это нормально воспримется. "s binary@" и "S binary@" это одно и то же. Для мобильных пользователей это подразумевает возможность использовать Ы или 7, которые вводятся с той же кнопки, что и s. Для удобства использования с мобильного телефона, символ # может быть заменён на точку. То же самое можно сказать про символ * при указании тегов.

Публикация

Просто отправка теста добавленному в ростер транспорту. В ответ приходит уведомление о том, что сообщение размещено и его уникальный номер.

Чтобы часть сообщения оформить как цитату, в начале новой строки поставьте угловую скобку, например

Вчера мне шепнуло радио третьей программой своей
>Что гладкая женская кожа отныне запрещена
Тэги

*тэг1 *тэг2 *тэг3 текст сообщения

или

* тэг1, тэг2, тэг3

текст сообщения

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

Редактирование тэгов

  • #НОМЕР_СООБЩЕНИЯ * тэг, тэг2, тэг3

При этом уже существующие теги удалятся, новые — добавятся.

Чтение
  • #x — просмотреть пост или комментарий х, работает так же №x и .x
  • #5+ получить пост вместе с комментариями
  • #X+ [page_num] - листание длинной темы, разделенной автоматически на страницы по ? комментариев.
Ответ
  • #202 текст ответа
Рекомендация
  •  ! #202
  •  ! #202 комментарий

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

Подписка
  • s binary@
  • u binary@

работает также s, ы, 7

  • s #1
  • u #1

работает также u, г, 8

Если пользователь находится на другом сервере, то надо использовать полное имя, например, textary@lij.jabber.ru. Когда на том же что и вы, то либо короткую нотацию, либо длинную можете использовать.

При подписке пользователь автоматически добавляется в ростер вашей учетной записи на habahaba.im.

Удаление
  • d #240

Также работает в №241

Из-за ошибки в ejabberd (EJAB-1316) из веб-интерфейса пока удаленные сообщения не пропадают.

  • d l (вторая буква это строчная L)

Удаляет последний комментарий или пост пользователя. (Также работает "в д").

Прочее

просмотреть информацию о пользователе

  • help — краткая справка по командам (также работают хелп, хэлп, рудз, помощь)
  • binary@ — пока вместо нее надо вводить xmpp:binary@

личные сообщения (вам не всегда будет виден JID другого пользователя, поэтому иногда только так возможно p2p-общение)

  • PM user@server, например pm binary@ (для локального сервера) или pm binary@habahaba.im (если пользователь на другом сервере)

Также работают пм, зь, лич, личка, 4.

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

  • ping - простой тест соединения. В случае успешного прохождения теста - вы увидите пришедшее в ответ сообщение PONG.

Аватара

Установка аватары производится через xmpp-клиент, посредством обновления vCard. Временно сделано так, что аватар обновляется при логине в lij.

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

Импорт

Имеются средства для выполнения импорта сообщений из Juick[2].

Известные ограничения

  • Нельзя подписываться больше чем на одного человека за раз, например, так s blondy@ comrade_dos@

Нумерация и адресация постов

В отличие от Juick, нумерация постов и комментариев для каждого пользователя своя и несёт лишь функцию упрощения управления через текстовый интерфейс. Каждый раз при просмотре поста или комментария, ему назначается номер, который используется как ярлык. Реальным идентификатором является ссылка на него. Не имеет значения, пост это или комментарий, всё обозначается просто натуральным числом. Вся разница между ними в том, что комментарий кладётся в тему ответов, а пост — в личный тред постов каждого.

Как дать ссылку, если нет уникального номера?
  • Если xmpp-клиент поддерживает XHTML, номера подчеркиваются, можно просто щелкнуть правой кнопкой мыши и выбрать Скопировать ссылку. При этом в буфере вы получите xmpp-ссылку
  • В веб-интерфейсе есть эти ссылки (на элементе Link). Веб-ссылки на сообщение находятся за текстом Replies (X).
  • Планируется спецкоманда для plain-text клиентов, которая сможет преобразовывать номер в xmpp-ссылку.

Веб-ссылку преобразовать в номер поста (то что формате "#номер") или в xmpp-ссылку - нельзя.

Как предполагается давать линки на psto и juick?

Сообщения из других сетей будут точно такими же, как родные, но от контактов вида @psto.habahaba.im, напоминая работу icq-транспорта.

Как это устроено

Описание

Почему что-то сделано так, а не иначе.

Почему используется user@ при обозначении пользователя? Это короткая запись полного jid на вашем сервере, т.е. чтобы не писать binary@habahaba.im. Но если пользователь на другом сервере, используется полная запись.

Также можно использовать полную запись URI xmpp:binary@habahaba.im

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

Ключевые отличия от предшественника - Juick

  • Открытый проект - доступность исходного кода и возможность влиять на разработку напрямую (в качестве программиста) или опосредованно, как рядового участника, используя issue tracker для размещения сообщений об ошибках и пожеланиях.
  • Децентрализованность и возможность запуска собственной копии любым желающим. Пользователи разных узлов могут подписываться друг друга. Пока не каждый может запусть.
  • Удобный парсер команд позволяющий сосредоточится на общении, а не на запоминании точного синтаксиса и регистра команд.
  • Соблюдение RFC и XEP при разработке и участие в разрешении вопросов, возникающих с имплементацией PubSub
  • XEP-0071: XHTML-IM - поддержка "богатого" форматирования в сообщениях. Чтобы в вашем xmpp-клиенте отобразилось такое форматирование, он должен поддерживать данный XEP. Проверить информацию по вашему клиенту можно на странице Сравнение клиентов.

Нереализованные возможности (смотрите trac проекта, чтобы узнать их статус):

  • Определение языка отправителя и отображение для него информации от пользователей с тем же языком. Первоначально язык определяется в автоматическом режиме на основе атрибута xml:lang. XMPP-клиенты[3] заполняют значение этого атрибута на основе системной локали или в зависимости от того, какой выбран язык интерфейса (Bombusmod). Если клиент не делает так, то пользователю будет предложено указать язык вручную. Также будет возможность изменить автоматически определенных язык в настройках пользователя[4]. За счет этого возможно более комфортное общение в пределах одного узла разноязычных пользователей.
  • Управление нотификациями на основе групп в ростере. Каждый пользователь, на которого вы подписались попадает в ростер учетной записи на habahaba.im. Перемещение контактов между группам и создание групп через xmpp-клиент.
  • Возможность разрешать другим пользователям (поименно или всем желающим) размещать сообщения у себя в микроблоге. Таким образом возможно создание групповых блогов или просто групп, где общение будет происходить по определенной тематике.
  • Поддержка ревизий (обязательные по стандарту Atom). Пока поддержки нет.

Снимки экрана

Черные рамки на скриншотах это следствие неправильной работы у меня утилиты import из состава ImageMagick.

На исправление каких ошибок помогло повлиять

В процессе разработки новой функциональности приходится столкнуться с теми или иными проблемами в существующих XMPP-клиентах и серверах. При помощи сообщества разработчиков эти вопросы получается решить.

Известные проблемы

  • Tkabber в силу реализации XHTML в нем - некорректно отображает выводимые сервисом данные. Описано в Вики Tkabber, как известная проблема.

Ссылки

См. также

  • Identi.ca - свободный сервис микроблогов на базе StatusNet
  • StatusNet - свободная платформа для микроблоггинга с поддержкой XMPP

Примечание

  1. В качестве указателя на опредленное сообщение, наряду с решеткой и номером, можно пользоваться xmpp-ссылкой. Например, вместо #1 написать xmpp:leksey@habahaba.im?;node=urn%3Axmpp%3Amicroblog%3A0;item=5194455A47652 (пока это не работает и сервис только резолвит отправленные ему ссылки в обычные номера с решеткой).
  2. http://b.habahaba.im/binary/51A79FCD2C823
  3. Доподлинно известно про такое поведение Psi, Tkabber, Gajim
  4. ticket/30