LINUX.ORG.RU
ФорумTalks

ЛОР->XMPP

 , , ,


3

5

Начал пилить for fun и как концепт транспорт из ЛОРа в XMPP (http://xmpp.org/extensions/xep-0277.html).

Работает, на данный момент, эта штука через костыль по имени LiJ (http://jawiki.ru/LIJ), в будущем может появиться поддержка клиентами XMPP напрямую протокола XEP-277 (сейчас этому мешают недоработки протокола, с которыми я пытаюсь бороться). Работает это в стиле juickа, т.е. отсылаются команды боту. Команды, в основном, такие же.

В отличие от juick и прочих сервисов, данная разработка децентрализована, каждый может поднимать (сможет, когда будет стабильно) свои серверы, прямо как в самом xmpp, конечно, можно подписываться и комментировать и людям, находящимся на других серверах. Отсюда есть возможность писать транспорты в другие системы, как это происходит в xmpp с icq и прочими. Есть тестовые транспорты для juick, psto, twitter. Ни один из них не готов к использованию, но это проблема более глубокая, чем просто написание кода. Так вот, сабж, это транспорт в LOR. Т.е. можно подписываться на форумы и получать прямо в jabber-клиент из них новые посты, также можно получать новые комментарии, подписываться на темы, отписываться, комментировать, etc. (последние три ещё не реализованы, но это не очень сложно, однако, потребуется хранить в базе пароль, для чтения пароль не нужен)

Работает это при помощи парсинга RSS, но и HTML парсить придётся для некоторых фич. Есть некоторые проблемы с движком ЛОРа, из-за которых приходится немного хардкодить (однако, с juick и psto этих проблем на порядки больше).

Вот скриншот с постами из галереи: http://jrudevels.org/Trash/gajim-lijuick-lor-gallery.png

Попробовать, к сожалению, пока нельзя, но если вдруг появятся желающие, появится. :)

★★★★★

Последнее исправление: CYB3R (всего исправлений: 1)

круто. Запиши меня в желающих попробовать, я подниму у себя на darkmachine.org

JB ★★★★★
()

По-моему костыль и не нужно. Для рсс транспорты итак есть.

HTML парсить придётся для некоторых фич

maxcom, ну давно ж пора апи запилить(

Kalashnikov ★★★
()
Ответ на: комментарий от Kalashnikov

По-моему костыль

Так и есть. Но только в двух моментах: вместо костыля с LiJ нужна прямая поддержка клиентами, на ЛОРе нужно API с push, а не poll.

и не нужно

Кому как. Я вот пытаюсь в браузере иметь минимум приложений и использовать его лишь по прямому назначению — потребления информации. Мне гораздо удобнее сразу получать сообщения в xmpp и оттуда же отвечать, чем постоянно давить F5.

Для рсс транспорты итак есть.

Какие из них могут подписать тебя на конкретный топик? Какие дадут возможность в топик ответить?

ну давно ж пора апи запилить

Да. Ещё есть такой костыль: у ЛОРа юзернеймы чувствительны к регистру, так что придётся выдумывать какой-то костыль с кодированием больших букв, потому что node в jid - не чувствительна к регистру.

Ну и ещё есть некоторые костылики. Например, было бы удобно в RSS иметь цитаты выделенные тегами <blockquote>, а не дивами, и ещё несколько мелочей.

Binary ★★★★★
() автор топика
Ответ на: комментарий от ekzotech

утащил бы на андроид

В смысле если было бы приложение? К сожалению, этого ждать в скором времени не приходится, т.к. проблем очень много более важных, которые надо решать с решающими дела людьми в XSF. Но есть надежда, что если эти дела решатся и протокол стабилизируются, кто-то запилит сам, ибо открытый стандарт.

Binary ★★★★★
() автор топика
Ответ на: комментарий от sdio

никому не надо было (оказалось что и мне не особенно) и оно заглохло

Глянул мельком код. Имхо, пользовать RSS гораздо безопаснее, чем парсить HTML (хотя кое-где без этого никак), потом: не удобно использовать лоровские идентификаторы по причине их длинны.

В моём случае это более глобальная хреновина, т.к. предоставляет возможность (потенциально) ЛОРу API запилить собственно на основе этого протокола, и тогда и транспорты то никакие нужны не будут.

По поводу отсутствия интереса меня не сильно волнует вопрос, т.к., как уже говорил, меня достаёт долбить F5, и я буду сам пользоваться, пока не уйду с ЛОРа. :) К тому же, мне интересно показать жизнеспособность и фичи идеи, так что концепт.

Binary ★★★★★
() автор топика
Ответ на: комментарий от JB

Запиши меня в желающих попробовать

Записал.

я подниму у себя на darkmachine.org

Хочу предупредить, что система громоздкая и состоит из нескольких частей:

1. gateway - транспорт из xmpp в xmpp, который транслирует XEP-277 в протокол с текстовыми команды (т.е. эмулятор жуйка на XEP-277), который должен отвалиться в случае прямой поддержки клиентом. (клиент, надо сказать, может сделать крайне няшный интерфейс на этом всём)

2. aggregator - веб-морда (расположена на http://b.habahaba.im/), которая собирает посты из бложиков, которые нативные, и публикует их в вебе. Если пользоваться только транспортами и не вести свой блог на базе этой системы (ну или не хотеть показывать его в вебе), то не нужен.

3. lijuick - транспорт. Сейчас там есть возможность делать плагины для legacy-систем, и на данный момент есть juick, psto, lor, скоро переведу на эту платформу и транспорт в twitter, сейчас он выполнен отдельным проектом.

Я намеренно не даю инструкций по установке, хотя код всего этого добра открыт, потому что стандарт не утрясся и на 99% будет изменяться в несовместимом виде. Свою то базу я как-нибудь сконвертну, а вот на множестве нод иметь проблемы с совместимостью не хочется.

Повторюсь, работа идёт вяло из-за отсутствия вменяемого коммьюнити (есть заинтересованные французы, но толку пока от них мало, даже повлиять на скорость решения проблем значащими лицами в XSF не могут, а проблемы имеются весьма фундаментальные).

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

Binary ★★★★★
() автор топика
Ответ на: комментарий от leonidko

Да, об этом мой предыдущий комментарий, и где то там же повыше ещё в чём профиты моего варианты, но много букв :)

Binary ★★★★★
() автор топика

Запилили бы уже нормальное API ЛОРу, сколько можно костыли городить?..

blackst0ne ★★★★★
()

Работает это при помощи парсинга RSS, но и HTML парсить придётся для некоторых фич.

без LORApi не взлетит.

Rastafarra ★★★★
()
Ответ на: комментарий от Binary

В смысле если было бы приложение?

Угу. Ибо сам написать приложение под андроид я неосилю.

ekzotech ★★★★
()
Ответ на: комментарий от Binary

Какие из них могут подписать тебя на конкретный топик?

Любые ЛОР->XMPP

Какие дадут возможность в топик ответить?

Понятия не имею. Но насколько я понимаю, в рсс есть какой-то механизм для этого, тогда всё зависит от лора и того транспорта. В любом случае, не нужно.

Kalashnikov ★★★
()
Ответ на: комментарий от Rastafarra

Так у меня страницы парсятся только для доп функционала, такого, как «на какое сообщение ялвяется ответом это». Основной функционал (т.е. информирование о новых постах, и даже постинг ответов) может работать без парсинга HTML. Хотя насчёт постинга я ещё не уверен. :)

Хотя RSS тоже не панацея: вместо того, чтобы использовать <category>, ЛОР тащит теги в тело новости, т.е. опять придётся их парсить вручную и переносить в нужное место: на скриншоте видно, что теги стоят внизу, а штатно они стоят вверху, как в жуйке, со звёздочками.

Ну и вообще, имхо, атом куда как приятнее RSSа.

Binary ★★★★★
() автор топика
Ответ на: комментарий от Kalashnikov

На вкус и цвет. Всё это не равнозначные вещи.

Binary ★★★★★
() автор топика
Ответ на: комментарий от Kalashnikov

И правда работает. Не понятно тогда, зачем посылать браузер.

Binary ★★★★★
() автор топика

Работает это при помощи парсинга RSS, но и HTML парсить придётся для некоторых фич

гиблый это подход

lazyklimm ★★★★★
()
Ответ на: комментарий от Binary

думал даже сделать транспорт в NNTP, но решил, что реализация на RSS таки прямее, чем на регекспах.

кто мешал сделать rss2nntp?

lazyklimm ★★★★★
()
Ответ на: комментарий от lazyklimm

nntp

А что, есть официальный интерфейс к ЛОРу на NNTP?

Binary ★★★★★
() автор топика
Ответ на: комментарий от lazyklimm

гиблый это подход

Это да, но что делать, делать то что? Хотя RSS не так уж плохо (даже совсем не плохо, был бы это Atom да ещё и без косяков), но некоторые фичи им не запилишь.

Binary ★★★★★
() автор топика
Ответ на: комментарий от lazyklimm

кто мешал сделать rss2nntp?

Никто, мой пост о том, что есть готовый транспорт LOR->NNTP (не знаю, правда, работает ли он сейчас), я оттуда даже стырил один файл для себя, а я хотел сделать транспорт NNTP->XMPP, чтобы использовать готовый транспорт в лор, да ещё и поиметь универсальный транспорт в NNTP (мейллисты читать/писать, хе-хе), но не стал, ибо тот транспорт показался мне ещё более плохой, чем тот, что пишу я.

Binary ★★★★★
() автор топика
Ответ на: комментарий от Binary

но некоторые фичи им не запилишь.

именно

есть готовый транспорт LOR->NNTP (не знаю, правда, работает ли он сейчас)

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

Поэтому единственный полноценный вариант нормального интерфейса к ЛОРу - _стабильный_ внешний API. Нет желания запилить? :)

lazyklimm ★★★★★
()
Ответ на: комментарий от lazyklimm

именно

Повторюсь: мне интересна сама возможность и какие с этим будут подводные камни посмотреть. Именно по самой системе.

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

Да, но вообще это зависит от того, нужно ли это кому-то. В ICQ-клиентах править изменения протокола же никому не надоедает, хотя реверс-инжинирить его куда сложнее, но большое к-во пользователей двигают затею вперёд, какой бы костыльной она не была. Я понимаю, что сабж никому по сути не нужен, но лично мне он нужен в двух смыслах: тестирование идеи и завязывание с тыканием F5 в браузере. Я вот несколько дней пользуюсь, вполне неплохо. Правда если подписан на много тредов, начинается мешанина, но можно что-то с этим выдумать.

_стабильный_ внешний API

Во-первых, я не владею джавой. Но это, в общем-то не такая уж большая проблема. Я не знаю, какая политика приёма патчей здесь, но вижу, что, скажем, аяксовое добавление треда в избранное сделано ну не очень удачно, значит, похоже, не очень то строго. :)

И тут у меня есть два варианта:

* первый, как я уже сказал, сам XEP-277 может стать неплохим API, но когда его ещё доделаем до юзабельного состояния не ясно; * второй, это продолжать юзать RSS, но доделать его и заменить на Atom :) Например, в RSS невозможно точно угадать, контент закодировать в HTML или в плей-тексте, что накладывает большие ограничения в универсальности. В Atom с этим проблем нет. + в RSS лора метки запиханы в тело сообщения вместо того, чтобы использовать специальные теги категорий, а также зачем то эти теги запихнуты в двойной параграф, что делает HTML не валидным. Это всё мелкие баги, которые несколько напрягают и заставляют включать в код костыли. С другой стороны, если это всё доделать, то останется запилить для RSS курсор для доставания произвольных сообщений и API для поста новых сообщений, что не должно быть очень сложно. Написал многобукав, а теперь сижу и думаю, ну и кому этот pull-кошмар нужен :))

Binary ★★★★★
() автор топика
Ответ на: комментарий от Binary

В ICQ-клиентах править изменения протокола же никому не надоедает, хотя реверс-инжинирить его куда сложнее, но большое к-во пользователей двигают затею вперёд, какой бы костыльной она не была.

идея нужная, но, например, тот же (очень удачный, замечу) TkLor прожил где-то год, при всех своих плюсах.

завязывание с тыканием F5 в браузере

я пользуюсь rss-транспортов в джаббер. Одно время rss2imap пользовался, но при отсутствии тредов от него профиту мало, можно было, конечно, парсить сайт и править заголовки, но ну его нафиг.

Я не знаю, какая политика приёма патчей здесь, но вижу, что, скажем, аяксовое добавление треда в избранное сделано ну не очень удачно, значит, похоже, не очень то строго

мне тоже так кажется

lazyklimm ★★★★★
()
Ответ на: комментарий от lazyklimm

идея нужная, но, например, тот же (очень удачный, замечу) TkLor прожил где-то год, при всех своих плюсах

Я не тешу себя надеждами, что моё поделие проживёт долго: но пока мне самому нужно, будет жить.

я пользуюсь rss-транспортов в джаббер.

А не бывает же прямых транспортов RSS в джаббер из-за костыльности самого RSS. Нет, реально, там проблема на проблеме, нужно использовать атом. Говорю так, потому что сам писал и хостил когда-то такой транспорт, но потом забил. К тому же, это всё же получше просто rss-транспорта, тут можно увидеть интересный топик и сделать ему S #xxx и сразу подписаться (этот функционал сейчас в активной разработке), а так же быстро ответить на комментарий.

мне тоже так кажется

Мне вот лень возиться с явой и поднимать свой инстанс для тестов, так бы может и заслал патч: там элементарно делается отвязка от необходимости юзать js же, к тому же сам API какой-то странный: зачем нужен id подписки, почему его на сервере не узнавать просто по id поста?

Binary ★★★★★
() автор топика
Ответ на: комментарий от Binary

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

Ну так репортини maxcomу или hizelю же, или сам поправь, действительно мелкие они.

Алсо 4.5

Kalashnikov ★★★
()
Ответ на: комментарий от Kalashnikov

Ну так репортини maxcomу или hizelю же

Не вижу смысла, мелкие костыли не страшно, а крупные есть из-за отсутствия API.

4.5

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

Binary ★★★★★
() автор топика
Ответ на: комментарий от lazyklimm

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

Кстати, идея интересная. С говножуйками так не выйдет.

Binary ★★★★★
() автор топика

Итак, вот какой прогресс имеем: http://jrudevels.org/Trash/psi-lijuick-lor-threads.png

Заодно показал вид из Psi, в клиентах, не умеющих xhtml пока смотреть боюсь :)

На скриншоте видно, как пришёл пост из толксов, и я на него подписался, потом пришёл комментарий из ненужной мне темы, и я от неё отписался, последним комментарием идёт комментарий из той темы, на которую только что подписались как доказательство, что подписка работает. :)

Осталось две проблемы: комментирование и подписка на новости, т.к. новости тут редиректят на feedburner, что очень не хорошо для меня.

Binary ★★★★★
() автор топика
Ответ на: комментарий от lazyklimm

а от какой балды берутся номера?

Это длинная история. :) Вообще, там ссылки вида

xmpp:romeo@montague.lit?;node=urn%3Axmpp%3Amicroblog%3A0;item=123456

(пример из XEP-0277, сейчас зреет стандарт на схему pubsub, так что ссылки могут стать покороче)

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

По идее, когда стандарт устаканится, и клиенты сами будут поддерживать XEP, этих циферок не станет.

К тому же, родная нумерация очень уж здоровенная :)

Binary ★★★★★
() автор топика
Ответ на: комментарий от lazyklimm

Можно и копипастить. Но на мобилке, например, проще вбить три-четыре цифры руками. Я не говорю, что надо на лор писать с мобилы, это просто унификация и на лоре сделала такие же правила, как в остальных микроблогах :)

Binary ★★★★★
() автор топика
Ответ на: комментарий от lazyklimm

Они легко портируются и сюда, система команд практически одинакова, но пока не нужны. :)

Binary ★★★★★
() автор топика
Ответ на: комментарий от lazyklimm

btw, в любом случае лоровская нумерация не пойдёт, т.к. у меня в это же окно и жуйк, и псто приходят...

Binary ★★★★★
() автор топика
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.