[ ljsm.pl (at offtopia.net) | ljsm-strip.pl | ljdir.pl | lj-index.pl ] |
В отличие от ljsm.pl, эти скрипты не будут работать не под Юниксом. Для их работы требуется Perl и довольно много модулей к нему (те же самые модули, которые нужны для ljsm.pl, плюс Date::Manip). Модули к Перлу проще всего устанавливать с помощью модуля CPAN, зайдя как root и сделав
perl -MCPAN -e shell(CPAN должен быть уже установлен). Ошибки при установке модулей для Unicode следует игнорировать (делать установку неправильных модулей с -force).
Для работы lj-index.pl надо создать файл forindex.txt в главной директории архива; в этом файле содержится заголовок к главной странице сайта.
Программа ljdir.pl считает, что сайт создается локально в директории $PATH (в данный момент это /LJ/). Создайте софт-линк с вашей директории на /LJ/ либо измените переменную.
root# ln -s <vasha_direktoriya> /LJПрограммы ljdir.pl и lj-index.pl считают, что архив лежит на вашем сервере в директории
http://vash_server/LJ/Измените /LJ на что вам нужно посредством global replace.
Во всех трех программах содержатся переменные $HEADER и $FOOTER. Измените их как вам нравится.
Чтобы создать архив индивидуального пользователя, вы делаете
ljsm-strip.pl -d2001/02:2002/10 -a <imya> ljdir.pl <imya> lj-index.pl <imya>Чтобы создать архив нескольких, пишите
ljsm-strip.pl -d2001/02:2002/10 -a <imya1>, <imya2>, ... ljdir.pl lj-index.plВнимательно следите за работой ljsm-strip.pl - как и ljsm.pl, он имеет тенденцию недогружать дневник пользователя, когда сервер livejournal.com ломается (что случается весьма часто). Если это произошло, пишите
ljsm-strip.pl -d2001/02:год/месяц -O <imya>если оно сломалось, когда загружали год/месяц. Если сломалось, когда загружали memories, пишите
ljsm-strip.pl -d2001/02:2002/10 -a -O <imya>В программах ljdir.pl и lj-index.pl жестко прописан период с 2001/02 по 2002/10. Чтобы его изменить, нужно немножко разобраться с текстом программы. Это нетрудно, если вы знаете Perl.
(Собственно говоря, между выходом версии 1.51 ljsm.pl и серединой ноября 2002 года, когда я стал писать ljsm-strip.pl, такие изменения в сервере livejournal.com были сделаны; в связи с чем ljsm.pl пришлось исправлять).
ljsm.pl качает сообщение со всеми комментариями; мой собственный дневник занял 17 мегабайт, а мои сообщения комментируются не очень обильно (в среднем - примерно по 5 комментариев к сообщению). Есть пользователи, у которых комментариев по 40-50 (рекорсменом тут является Dodododo).
Основное отличие ljsm-strip.pl - эта программа не скачивает комментариев; в результате объем моего дневника, скачанного ljsm-strip.pl, оказался всего 3 мегабайта. Кроме того, ljsm-strip.pl находит в каталоге сообщений пользователя дату сообщения и количество комментариев; в конец каждого сообщения добавляется "n replies", а в к названию файла добавляется в начало дата. Это нужно для удобного составления хронологической ленты сообщений.
Процедура parse_entry берет сообщение и выдает хэш с полями ->{mood}, ->{music} ->{body} ->{date} ->{name} ->{username} ->{picture} ->{subject} ->{url} ->{pic} ->{replies_num} ->{error}.
Процедура strip берет сообщение, пропускает через parse_entry и выдает это сообщение в форме, пригодной для включения в ленту. Если вам не нравится форма ленты, производимой ljdir.pl, перепишите strip.
Процедура lj_dir берет директорию с архивом сообщений, сделанным ljsm-strip.pl. Все файлы в этой директории подвергаются воздействию strip и загоняются последовательно в index1.html, index2.html и так далее. Создается софт-линк index1.html к index.html. В начало и в конец каждого индекса всобачивается значение переменной $HEAD и $FOOT (это заголовок и хвост файла).
Процедура lj_user берет имя пользователя, изучает содержимое его директорий, создает таблицы с заголовком и хвостом, записывает их в $HEAD и $FOOT, затем сохраняет эти переменные в файлы <user>/.header и <user>/.footer.
После этого lj_user запускает lj_dir во всех директориях пользователя.
Процедура friends_copy копирует все сообщения из всех пользовательских архивов в директорию для френд-ленты, а lj_lenta создает потребный для этой ситуации $HEAD и $FOOT и запускает lj_dir.
Индивидуальный заголовок (процедура get_info) получается из User's Info пользователя на livejournal.com и файлов .header и .footer, производимых ljdir.pl. Чтобы скачать User's Info, используются версии процедур ljsm.pl.
Процедура index_ljsm есть адаптация build_index из ljsm.pl; она строит файл с заголовками ко всем сообщениям и памятным записям пользователя и пишет его в index-ljsm.html. В дополнение к функциям build_index, index_ljsm добавляет число комментариев к сообщению пользователя, а также читает .header и .footer и использует их в качестве заголовка и хвоста. Все линки index_ljsm.html имеют вид index10.html#2002082904:03:00_9177.html, т.е. на индивидуальное сообщение линков больше не ставится (и его можно, для экономии места, удалить).
Процедура main_index читает forindex.txt, изучает содержимое пользовательской директории и ленты, а затем пишет таблицу с линками на пользовательские директории и на сообщения общей ленты.
Во всех программах огромное количество ошибок.
[ ljsm.pl (at offtopia.net) | ljsm-strip.pl | ljdir.pl | lj-index.pl ] |