Alexander Nikolaev ([info]ati) wrote in [info]rulj,
@ 2003-03-19 18:44:00
Previous Entry  Add to memories!  Tell a Friend!  Next Entry
ljsm версия 2.1
Привет, люди.

Вышла версия 2.1 ljsm
Это утилита сохранения дневников на локальном диске.
скрипт на Perl-е (10 Кб), exe версия (700 Кб)
exe-версия не конвертирует из UTF-8 в локальную кодировку.

Новое в версии 2.1
Добавлено:
экспорт в XML (через /export.bml, ключик -X)
скачивание постов без комментариев (ключик -c)
скачивание иконок, юзерпиков, всей графики (ключик -i, по умолчанию скачиваются иконки)

изменения:
в индексе указывается кодировка
в индекс и сохраняемые посты добавлены ссылки на внешние CSS файлы
в разделе memories индекса указывается автор сообщения

внутренности:
к запросам добавляются usescheme=lynx, добавлена поддержка Accept-Encoding: gzip
(уменьшение трафика и ускорение загрузки)
При неудачной попытке загрузить страницу, запрос повторяется до 5 раз.
Поддерживает новую схему адресации в LiveJournal (без talkread.bml?xxx)

Пожалуйста, пишите о замеченных ошибках.
Буду рад, если вы пришлете мне свои версии index.css и post.css, я включу их в дистрибутив.
Буду особенно рад, если кто-нибудь напишет простыми словами, как этой программой пользоваться ("инструкцию для чайников") - опять-таки, включу ее в дистрибутив :)

Update 21/03/2003 Исправлено несколько ошибок, спасибо kukutz-y и btf-у. Те, кто уже скачивал новую версию (2.х) скачайте ее пожалуйста еще раз.



(Post a new comment)

Чайные вопросы
[info]runtime
2003-03-19 08:39 am UTC (link)
1. Мой прокси требует авторизации. Как быть? LWP::UserAgent это понимает?
2. Могу ли я, залогинившись, скачать чужой дневник?

(Reply to this) (Thread)

Ничего себе чайные! :)
[info]ati
2003-03-19 08:50 am UTC (link)
1. Я думаю, что LWP поддерживает авторизацию для прокси. Но проверить это мне негде.
2. Можете

(Reply to this) (Parent)(Thread)

Re: Ничего себе чайные! :)
[info]mrgatsby
2003-03-19 08:55 am UTC (link)
Поддерживает.
perldoc lwpcook

Some proxies also require that you send it a username/password in order to let requests through. You should be able to add the required header, with something like this:

use LWP::UserAgent;

$ua = LWP::UserAgent->new;
$ua->proxy(['http', 'ftp'] => 'http://username:password@proxy.myorg.com');

$req = HTTP::Request->new('GET',"http://www.perl.com");

(Reply to this) (Parent)(Thread)


[info]ati
2003-03-19 09:00 am UTC (link)
Ага. Пусть тогда товарищ попробует указать проксю в формате http://username:password@proxy.myorg.com и расскажет о результатах.

(Reply to this) (Parent)(Thread)


[info]runtime
2003-03-19 01:26 pm UTC (link)
Ага, я тоже доку глянул. Работает. Спасибо.

(Reply to this) (Parent)


[info]natarts
2005-10-26 01:48 pm UTC (link)
у меня что-то никак не получается авторизоваться на прокси :(
выдает только, что 407 Proxy Authentication Required, и все...

(Reply to this) (Parent)

Re:
[info]runtime
2003-03-19 09:07 am UTC (link)
Ясно, спасибо, разберёмся. Чудесная вещь, наверно - ещё не пользовался, но уже представляю скачанные дневники френдов, которые у меня никак не получается почитать на работе :)

(Reply to this) (Parent)


(Anonymous)
2003-03-19 12:36 pm UTC (link)
отличная вещь! спасибо!

но, нельзя ли:
- по умолчанию, отключить поход за userinfo.gif да dot.gif на http://stat.livejournal.com;
- проставлять число комментариев в index.html (это хороший ориентир сам по себе);
- забирать все комментарии (где >~50), но, как понимаю, такой serverside функции просто нет;
- не сметь стрелять по багдаду!

ps: лучше вместе ебанём по тбилиси.

(Reply to this) (Thread)


[info]ati
2003-03-19 04:02 pm UTC (link)
- насчет userinfo.gif: отключить можно, это примерно столько же работы, сколько написать в коммандной строке -i 0.
- насчет комментариев: для этого надо парсить HTML. Я не хочу этого делать. Пусть его другие парсят, а я не буду.
- насчет забирать все: да, server-side параметра для этого нет, значит надо парсить HTML и т.д.

(Reply to this) (Parent)


[info]kukutz
2003-03-20 01:11 am UTC (link)
Почему-то у меня XML только за текущий год забирает.

Кто виноват и что делать? :)

(Reply to this) (Thread)


[info]ati
2003-03-20 06:51 am UTC (link)
Скачать еще раз
Виновные найдены и оставлены без компота на обед.

(Reply to this) (Parent)(Thread)


[info]kukutz
2003-03-20 07:36 am UTC (link)
Спасибо, работает!

(Reply to this) (Parent)


[info]ex_innin997
2003-03-20 04:04 am UTC (link)
Всё очень здорово, только одно -- при создании pod-документации делайте, пожалуйста, правильно переводы строк после директив (пустую строку надо), а то трансляторы кашу делают :)

(Reply to this) (Thread)


[info]ati
2003-03-20 04:46 am UTC (link)
Спасибо, обязательно буду :)

(Reply to this) (Parent)


[info]btf
2003-03-20 11:23 am UTC (link)
Неполадки :)

Попробовал стянуть свой журнал, и вот что получилось.

1) Не стягивает юзерпики и картинки. Стянул одну пикчу с mood'ом и успокоился.
2) Сворачивает крышу при скачивании мемориз с ключевыми словами на русском.
3) Постоянные АшИпКи вида
Bad second byte of utf8 encoded char at /usr/lib/perl5/site_perl/5.6.1/Unicode/MapUTF8.pm line 458.
Bad 2nd or 3rd byte of utf8 encoded char at /usr/lib/perl5/site_perl/5.6.1/Unicode/MapUTF8.pm line 458.
Bad 2nd, 3rd or 4th byte of utf8 encoded char at /usr/lib/perl5/site_perl/5.6.1/Unicode/MapUTF8.pm line 458.
Bad 2nd, 3rd or 4th byte of utf8 encoded char at /usr/lib/perl5/site_perl/5.6.1/Unicode/MapUTF8.pm line 458.
Bad 2nd or 3rd byte of utf8 encoded char at /usr/lib/perl5/site_perl/5.6.1/Unicode/MapUTF8.pm line 458.

Запускалось: командой "perl ljsm.pl -a -i 3 -I btf", без авторизации, без прокси; перекодировка включена (в cp1251).
Операционка: SlackwareLinux 7.0, perl 5.6.1, все свежие модули проставлены из cpan.

Куда копнуть, чего отследить? :)

(Reply to this) (Thread)


[info]btf
2003-03-20 11:28 am UTC (link)
Да, результаты содеянного тут: http://home.btf.ru/:-)/btf/

В частности, можно глянуть на список мемориз и сравнить его с этим: http://www.livejournal.com/tools/memories.bml?user=btf

(Reply to this) (Parent)


[info]btf
2003-03-20 11:40 am UTC (link)
Еще одна бага :)

Ткнитесь здесь: http://home.btf.ru/:-)/btf/2002/6/49517.html в ссылку "post a new comment".

(Reply to this) (Parent)(Thread)


[info]ati
2003-03-20 11:59 am UTC (link)
какая версия ljsm-a?

(Reply to this) (Parent)(Thread)


[info]btf
2003-03-20 12:04 pm UTC (link)
Надо думать, самая последняя :)) Скачана минут 40 назад.

Видимо, эти глюки с MapUTF8 таки мешают нормальному функционированию :-/

(Reply to this) (Parent)


[info]btf
2003-03-20 12:06 pm UTC (link)
Замечание про глюки с MapUTF8 относилось, понятно, к Вашему ответу ниже и к моему комменту выше - к тому, что таки да, не совпадает список скачанных меморизов с исходным.

(Reply to this) (Parent)(Thread)


[info]ati
2003-03-20 12:23 pm UTC (link)
я понял. насчет неправильных ссылок - я загрузил исправленный вариант скрипта, скачайте пожалуйста его еще раз.

(Reply to this) (Parent)(Thread)


[info]btf
2003-03-20 12:45 pm UTC (link)
Спасибо :) Сейчас повертим еще раз. Если чего еще найду - отпишу.

(Reply to this) (Parent)


[info]ati
2003-03-20 12:57 pm UTC (link)
По-моему, исправил багу с ругательством MapUTF8

(Reply to this) (Parent)(Thread)


[info]btf
2003-03-20 03:15 pm UTC (link)
Ну... почти :))) взгляните на результат (http://home.btf.ru/:-)/btf/)
по крайней мере, на разделы правильно биться стало... но а) по прежнему не показываются русские ключевые слова, и б) надо откусить &filter=all

(Reply to this) (Parent)(Thread)


[info]ati
2003-03-20 10:21 pm UTC (link)
Поправил :)
И еще там по мелочи.

(Reply to this) (Parent)

Да, есть такое дело :-/
[info]ati
2003-03-20 11:57 am UTC (link)
MapUTF8 ругается на keywords в меморисах, да. Почему - я пока не понимаю.
Workaround - запретить перекодирование (UTF8_DECODE => 0 в скрипте)
Но это вроде бы не мешает работе - просто вылезает куча мусора на экран.

Насчет картинок.
быстрый фикс - строчку 541
%images = map {$_ => 1} $extor->img();
заменить на
%images = (%images, map {$_ => 1} $extor->img());

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

(Reply to this) (Parent)(Thread)

Re: Да, есть такое дело :-/
[info]btf
2003-03-20 12:04 pm UTC (link)
Спасибо :))) пока что ограничусь быстрым фиксом :))

(Reply to this) (Parent)


[info]btf
2003-03-20 04:03 pm UTC (link)
Продолжаем разговор :)))
1) в ссылках, которые ведут на оригинальный пост (закрывающая "лапка") - они ведут на ?usescheme=lynx. Фича?
2) не столько...гм... бага, сколько рацпредложение. В моем случае (когда архив стягивается не в локал, а на сервер) юзерпики заливаются без расширений... и отдаются сервером (в моём случае - rus_apache) радостно перекодированными и, соответственно, битыми. Может быть, имеет смысл запихивать в каталог $user/userpics файл .htaccess со строчкой "CharsetDisable on"?

(Reply to this)


[info]_twelve
2003-03-27 03:37 am UTC (link)
Ещё кое-что:
в сохранённом постинге в ссылке на привязанную таблицу стилей (<link rel="stylesheet" href="../../../post.css" type="text/css">) один лишний переход "на папку выше".

post.css приходится класть в папку с LJsm, что неудобно, если есть несколько дневников с разными таблицами стилей.

LJsm последней версии (от 21/03/2003), .exe-вариант.

(Reply to this) (Thread)


[info]ati
2003-03-27 02:06 pm UTC (link)
Спасибо, исправлю в ближайшей версии.
Если у Вас красивый стиль получился пришлите может его?

(Reply to this) (Parent)(Thread)


[info]_twelve
2003-03-27 09:58 pm UTC (link)
Спасибо!
Если что-нибудь получится -- обязательно.

(Reply to this) (Parent)

По-моему, что-то сломалось...
[info]_twelve
2003-04-15 06:26 am UTC (link)
Примерно с 10 апреля LJsm (exe-версия от 21.03.2003) начала работать в следующем режиме:

getting pictures...
<< http:http://www.livejournal.com/http://www.livejournal.com/www.livejournal.comhttp://www.livejournal.com/imghttp://www.livejournal.com/btn_scr.gif
Failed...

Что самое ужасное, сохраняемые страницы выглядят не лучше:
<!DOCTYPE HTML PUBLIC "-http://www.livejournal.com/http://www.livejournal.com/W3Chttp://www.livejournal.com/http://www.livejournal.com/DTD HTML 4.0 Transitionalhttp://www.livejournal.com/http://www.livejournal.com/EN" "http:http://www.livejournal.com/http://www.livejournal.com/www.w3.orghttp://www.livejournal.com/TRhttp://www.livejournal.com/REC-html40http://www.livejournal.com/loose.dtd"><html>
<head>
<title><http://www.livejournal.com/title>

<http://www.livejournal.com/head>

<body>

<p><table><tr valign='middle'><td><img src='../../../_twelve/img/http_http_//www.livejournal.com/http_//www.livejournal.com/userpic.livejournal.comhttp_//www.livejournal.com/3631052http_//www.livejournal.com/569907' width='80' height='100' align='absmiddle' hspace='3' title='Roman: kaonashi' alt=''>
и т.д.
Возникают два вечных вопроса: кто виноват и что делать?

(Reply to this) (Thread)

Re: По-моему, что-то сломалось...
[info]ati
2003-04-16 04:43 am UTC (link)
уже должно было починиться.
версия 2.3.2 должна быть хорошей

(Reply to this) (Parent)(Thread)


[info]_twelve
2003-04-16 05:05 am UTC (link)
Ага, действительно починилось. :) Спасибо!!!

Только теперь в скачанные постинги не вставляются заголовки:
<link rel="stylesheet" href="../../post.css" type="text/css">
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">

(Reply to this) (Parent)

лыжи не едут&trade;
[info]fli
2003-09-07 12:26 pm UTC (link)
он как-то у меня отказывается кушать -d 2003/09:2003/09, чтоб один месяц качать
и, похоже, логин-пароль тоже не приемлет, только паблик скачивает.
и еще ругался на our в 91 строчке. Я-то дурак, перла толком не знаю, заменил на my, перестал ругаться. Может, от этого все беды?

Попробовал стареньким скачать (типа, год назад все работало), но получил отличную фразу -
logging in to http://www.livejournal.com/...
got login page http://www.livejournal.com/login.bml but found no login form on it.

ljsm 2.4 и 1.3, perl 5.005_03, FreeBSD, о это уж пофиг

(Reply to this)


Create an Account
Forgot your login or password?
Login w/ OpenID
English • Español • Deutsch • Русский…