Войти в систему

Home
    - Создать дневник
    - Написать в дневник
       - Подробный режим

LJ.Rossia.org
    - Новости сайта
    - Общие настройки
    - Sitemap
    - Оплата
    - ljr-fif

Редактировать...
    - Настройки
    - Список друзей
    - Дневник
    - Картинки
    - Пароль
    - Вид дневника

Сообщества

Настроить S2

Помощь
    - Забыли пароль?
    - FAQ
    - Тех. поддержка



Пишет kouzdra ([info]kouzdra)
@ 2005-07-20 21:42:00


Previous Entry  Add to memories!  Tell a Friend!  Next Entry
Гейтование
У меня вроде бы получилось ремотно проделать практически все.
То есть - брать постинги и копировать их, Ремотно постить
комменты (от себя или от анонима), читать комменты.

В принципе это вроде бы достаточно, чтобы собрать машинку, которая
будет синхронизировать ленты в LJ и LJR вместе с комментами. Правда
при условии, что временной горизонт синхронизации "по умолчанию"
ограничивается какой-то разумной величиной.

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

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

Я пошел погулять, а пока принимаются комментарии. В частности - есть
ли смысл с такой машинкой заморачиваться.


(Добавить комментарий)


[info]atorin
2005-07-20 21:56 (ссылка)
А вот про комментарии проясните, пожалуйста.
Я сделал зеркало постов здесь в свой ЖЖ-дневник.
Когда оттуда пытаются комментировать попадают на местный сервер, т.е. пользователи ЖЖ могут комментировать лишь анонимно.
Как работает в другую сторону пока не понимаю

(Ответить) (Ветвь дискуссии)


[info]kouzdra
2005-07-20 22:16 (ссылка)
На самом деле оии еще могут с помощью openid это делать (и это наверное
самое лучшее).

В приницпе там я так понимаю, сделано просто - при кросспостинге комменты запрещаются, а ссылочки для комментирования просто нарисованы в теле постинга. Проверять сейчас лениво, но скорее всего именно так.

Можно же сделать машинку, которая будет при запуске спрашивать синхронизирвуемые журналы на тему новых постов (функция в LJ API есть), и кросспостить то, что появилось там и там. А заодно и копировать комменты (постить придется под именем либо себя, либо анонима и снабжать шапкой кто там на самом деле). Вопрос - надо ли оно? Меня больше NPJ на самом деле интересует.

PS: Я вдруг подумал, что в принципе, если в код LJR полезть должно быть несложно разрешить LJ-юзерам постить "под собой" - просто вместо окошечка с LJR user/password, предлагать LJ user/password (ну у линков параметр соотвествующий сделать - что отвечает человек из LJ). Проверить login/пароль на валидность LJ API позволяет вполне штатно. Кстати - видимо это то, что очень бы было полезно.

(Ответить) (Уровень выше) (Ветвь дискуссии)


[info]atorin
2005-07-20 23:37 (ссылка)
Ага, не все понял, но спасибо

(Ответить) (Уровень выше)


[info]kaledin
2005-07-21 03:44 (ссылка)
Тут есть проблема. У LJ странная политика про комментарии: они их более-менее не отдают, ссылаясь на какие-то невнятные соображения копирайта. Т.е. на самом деле пока отдают, но с трудом. А поскольку в ToS уже зарезервировано право продавать пользователям их контент, то оно как-то стремно. Поэтому мы предпочли бы никаких комментариев им вообще не отдавать, а все комментарии держать здесь.

(Ответить) (Ветвь дискуссии)


[info]drz
2005-07-21 10:38 (ссылка)
Хорошо, но тогда хотя бы придумать механизм, чтобы в ЖЖ было видно, сколько уже комментариев к определённой записи. Скриптом можно заморочиться или генерируемыми картинками, я уж не знаю.

(Ответить) (Уровень выше) (Ветвь дискуссии)


[info]kouzdra
2005-07-21 11:05 (ссылка)
По идее должно просто делаться - возможность проапдейтить запись "извне" есть. Поскольку линки там просто "нарисованные", то и цифирку подправлять должно быть несложно. На самом деле я думаю, что на такое и моих познаний хватило бы, только надо как-то LJ локально у себя отставить, чтобы было на чем отлаживать.

Я пока не пробовал, не знаю, насколько оно гемморойно.

(Ответить) (Уровень выше) (Ветвь дискуссии)


[info]yushi
2005-07-22 18:49 (ссылка)
У меня (ALM2.4, Apache 1.3.31, MySQL 4.0.20, Perl 5.8.4) локальный LJ поднялся практически без проблем. Единственное отличие от того, что прописано в инструкции — пришлось явно попросить MySQL перечитать таблицу с правами пользователей, кажется.

(Ответить) (Уровень выше) (Ветвь дискуссии)


[info]kouzdra
2005-07-22 19:54 (ссылка)
Попробую, но не в ближайшие дни. Тем более, что у меня сейчас
с мелкий трах с конфигурением MySQL - опыта у меня мало, я там
чего-то напорол с правами, а мне он нужен для bugzillы по моим делам.

Ну в общем - как обычно, бывает, пока въежаешь.

Кстати - с ljbugz.baka.ru (если он как-то живет), у меня
трабл - он мне не хочет высылать письмо с паролем (ни при регистрации,
ни сейчас), при этом запись он завел. Я не знаю, к кому это.

(Ответить) (Уровень выше)


[info]yushi
2005-07-22 18:34 (ссылка)
Генерируемые картинки — это не очень хорошо (лично знаю людей, которые смотрят ЖЖ через Lynx, не из-за дешёвых понтов, а вот так у них жизнь сложилась). А так — можно, но для этого надо либо патчить код LJR, чтобы после каждого нового коммента отгейтованная запись в LJ обновлялась (может, и сделаем, но не прямо сейчас), либо превращать ссылку на комменты в запрашивающий их число код на Javascript, чего я, честно говоря, очень не хочу — ненавижу client-side решения.

(Ответить) (Уровень выше)


[info]drz
2005-07-21 10:34 (ссылка)
Смысл определённо есть. Я бы вот хотел, чтобы комментарии дублировались и там, и здесь.

(Ответить)


[info]yushi
2005-07-22 18:50 (ссылка)
Было бы здорово!

А на чём оно написано?

(Ответить) (Ветвь дискуссии)


[info]kouzdra
2005-07-22 19:35 (ссылка)
По поводу машинки я в некоторых сомнениях - совсем прозрачно
сделать это нельзя (постинги будут только от сеья или анонима).
Когда я это писал, я еще не осознал, что комментаторы с LJ редиректяться
сюди, я думал, что как в rss2lj. Так вроде актуальность проблемы
меньше.

Смотря что - тесты я писал на OCaml (мне было интересно
кроме прочего, заодно посмотреть как у него с работой с сетью),
но там все тривиально. Там на самом деле надо просто правильно
POST запрос сформировать. Для письма - все данные просто
есть в html части и regexp'ами тривиально вытаскиваются
(когда я тестировал - делал это руками, но там все просто)

В письме вся авторизация и содержательная информация (кроме
subj и body) по видимому берется их хэша, который содержится
в письме и который надо отослать обратно, влияния остальных
параметров я не заметил.

Соотвественно - я сейчас скриптик к emacs'у пишу, единственная проблема
там разобраться как это к гнусу правильно прикрутить. Сам процесс
тривиален.

Если надо постить ответ на коммент - то надо получить страничку с
формой постинга и оттуда вытаскивать примерно то же самое.
В этом варианте я не до конца разобрался с авторизацией - полчались только анонимные постинги. Но там понятно, просто руки не дошли.

Программку если соберусь писать - на перле буду (OCaml создаст
проблемы с отчуждением) кода. Вот такая штука запостила этот коммент -
open Printf
open Http_client.Convenience

let url = "http://lj.rossia.org/interface/flat"

type mode = Login | Post | Sync | Str of string
let string_of_mode = function Login -> "login" | Post -> "postevent" | Sync -> "syncitems" | Str s -> s

let lj mode ?(user="msk") ?(password="glokaya") ?(version=1) message = 
  Http_client.Convenience.http_post_message url
    (("mode", string_of_mode mode)::("user", user)::("password", password)::("version", string_of_int version)::message)

let _ = 
  printf "hello\n"; flush stdout;
  let res = Http_client.Convenience.http_post_message "http://lj.rossia.org/talkpost_do.bml" [
    "usertype", "user";
    "parenttalkid", "11";
    "itemid", "1526";
    "journal", "msk";
    "userpost", "msk";
    "ecphash",  "ecph-9710434ec833d900ea8ee0954839a93c";
    "encoding", "KOI8-R";
    "subject", "Фишка вот в чем";
    "body", 
    "Я просто тестировал LJ-шный API и пытался победить
    отсуствие возможности удаленно постить комменты.\n
    \n
    Этот ответ я тоже попробовал запостить не через браузер. Счас увидим, получилось или нет.\n\n
    А OCaml тут исключительно при том, что мне было интересно проверить насколько он
    тут будет годен заместо перла. Вполне, хотя библиотеки, конечно, куцые и вообще
    он не для этого.
    ";
  ] 
  in
  printf "Result=[%s]\n" (res#get_resp_body ())


На страничке чуть похитрее - там JS собирает их хэша и username новый
эхш и отсылает его, видимо это я как-то не так и сэмулировал, когда
пробовал - потому получилось под анонимом.

(Ответить) (Уровень выше)