Продолжаем упражняться

| Comments (5) | No TrackBacks
Тутбалин не так давно мизантропировал на предмет плагина Crossposter.

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

Что оказалось насчет левых <br>. Путем вдумчивого чтения сорцов ЖЖ было обнаружено следующее. Livejournal думает, что ему дают не настоящий html, а нечто, что ему нужно отформатировать самостоятельно. Вылечивается установкой флага convertLineBreaks в false. Логика, по которой это не есть установка по умолчанию, от меня ускользает. Как вылечить замену честного юникода на &#xNNNN-style порнуху, пока не ясно. Известно только, что на livejournal контент уходит в нормальном виде, а извращается уже на той стороне. До этого места в ЖЖ-шнух сорцах я еще не дочитал. Но это не сильно мешает.

Что оказалось насчет апдейтов кростпостнутых entries. Тут интересней.
Как положено, плагин Crossposter вытягивает entry к себе, меняет что нужно, и кладет обратно. Вот на этапе вытягивания возникает проблема: 401 Authentication Failed. Как же так? Что ж такое?

Причина вот в чем.
http://code.sixapart.com/trac/livejournal/browser/trunk/cgi-bin/Apache/LiveJournal/Interface/AtomAPI.pm#L576
# let's authenticate.
#
# if wsse information is supplied, use it.
# if not, fall back to digest.
my $wsse = $r->header_in('X-WSSE');
my $nonce_dup;
my $u = $wsse ? auth_wsse($wsse, \$nonce_dup) : LJ::auth_digest($r);
return respond( $r, 401, "Authentication failed for this AtomAPI request.")
    unless $u;

return respond( $r, 401, "Authentication failed for this AtomAPI request.")
    if $nonce_dup && $action && $action ne 'post';

Удивительные люди в этом ЖЖ. Почему post можно по WSSE, а остально нельзя? Загадка. Почему, если уж нельзя edit, не выдать нужные заголовки для digest auth? Еще загадочней.

Чего делать? Хакнуть XML::Atom::Client или засабмитить багу в суп?

А вот запрет на коменты к кростпостнутой entry, судя по всему, сделать не получится через atom. И ручками проставлять лень. Ну и фиг с ним, комментируйте меня где удобно.

No TrackBacks

TrackBack URL: http://net-geek.org/cgi-bin/mt/mt-tb.cgi/2

5 Comments

ну, поупражняемся что ли :)

Я продолжаю жить под MTLJPost

Несмотря на то, что настройка его под 4-м MT - это нечто удивительное.

Я правильно понимаю, что MTLJPost использует XML-RPC, а не Atom? Как я понимаю, Atom сломан на стороне ЖЖ. Хотя я могу и ошибаться.

Еще веселее. MTLJPost использует LJ::Simple, а тот - flat interface.

Ох. Будущее за мирным атомом :)

Я подточил кросспостер слегка, теперь типа работает: http://net-geek.org/dbg/2007/12/lj-is-fucked.html. В общем, на этом и остановлюсь пока. Все равно это все только на переходный период, пока читатели не перешли на чтение трансляции в ЖЖ или фида своими ридерами.

Leave a comment

About this Entry

This page contains a single entry by Daniel Ginsburg published on December 9, 2007 10:39 PM.

Ну, попробуем was the previous entry in this blog.

Опять кросспостнинг is the next entry in this blog.

Find recent content on the main index or look in the archives to find all content.

Archives