tl1

PHP-код для чтения закрытых постов в ЖЖ через RSS

Apr 18, 2015 22:15

Ищу способ снова читать ЖЖ и массу других блогов в одном централизованном приложении. Естественно, это возможно только через RSS. Как оказалось, у ЖЖ есть возможность читать защищённые записи через RSS, но не всё так просто, т.к. отдавалка RSS требует определённых уговоров и, например, Tiny Tiny RSS не справляется с получением защищённых фидов. В ( Read more... )

программирование, ЖЖ

Leave a comment

Comments 9

o19k April 18 2015, 17:37:27 UTC
Вот что пишет при открытии URL: "This XML file does not appear to have any style information associated with it. The document tree is shown below."
Ну и дальше все плейнтекстом. Это нормально?

Reply

tl1 April 19 2015, 11:13:59 UTC
А чем ты открываешь? Firefox у меня нормально показывает фиды и предлагает подписаться на них прямо браузером.

Reply

o19k April 19 2015, 13:14:01 UTC
А у меня Хром, и он вот так показывает. Можно еще попробовать в IE, но будет очень долго...

Reply


yurikhan April 19 2015, 05:57:26 UTC
Чисто теоретически, Tiny Tiny RSS должен мочь делать то же самое, если в настройках фида написать URL с ?auth=digest в конце и прописать логин-пароль.

Reply

tl1 April 19 2015, 11:11:36 UTC
Он не может. Я уже посмотрел ему в исходники, там не хватает пары из магических опций.
Так что надо либо пропатчить его, либо сделать прокси скрипт.

Самое главное, кажется:
curl_setopt($ch, CURLOPT_UNRESTRICTED_AUTH, true);
Потому что ЖЖ перепинывает на пару перенаправлений, пока RSS отдаст.

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

Reply

yurikhan April 19 2015, 14:07:06 UTC

Хм. А я потыкал curl’ом с командной строки.

Если запрашиваю http://tl1.livejournal.com/data/atom?auth=digest, то получаю сразу 200 OK со списком публичных постов. Это обидно, потому что Atom идеологически более правильный формат, чем RSS.

Если запрашиваю http://tl1.livejournal.com/data/rss?auth=digest, то получаю сначала 401 Authorization Required с заголовком WWW-Authenticate с нонсом, затем curl делает второй запрос по тому же url’у с заголовком Authorization и получает ответ 200 OK со списком публичных и подзамочных постов. Выглядит как нормальный процесс HTTP Digest Authentication.

А вот на http://www.livejournal.com/users/tl1/data/rss/?auth=digest, действительно, дают 302 Found, Location: http://tl1.livejournal.com/data/rss/?auth=digest... )

Reply

tl1 April 19 2015, 15:03:53 UTC
Во, отлично, спасибо, как минимум эта инфа немного ускорит скачку.
Вообще у меня идея сделать прокси фид, который всю френдленту в один RSS собирает, потому что врукопашную забивать френдов очень утомительно.
У ЖЖ ещё есть ограничения типа не более 5 запросов в секунду и т.д., т.е. если TTRSS подписать сразу на несколько десятков отдельных RSS, то теоретически можно попасть в блокировку. Плюс, очень медленно это работает. Поэтому напрашивается cron или тому подобная мутотень, которая будет неторопливо собирать ленту 1-2 раза в день в одну колбасу

Reply


Leave a comment

Up