?

Log in

No account? Create an account

Предыдущая запись | Следующая запись

Краткая инструкция для тех, кто хочет уметь самостоятельно сохранять свой раздел на Самиздате вместе со всеми комментариями.


Предполагается, что человек, читающий это краткое руководство, достаточно хорошо дружен с Un*x, чтобы установить wget и perl (версии не ниже 5), необходимые для выполнения инструкций.


Вам потребуется небольшой скрипт на Perl для сохранения комментариев. Вы можете взять его из репозитория (выполнив следующую команду — предполагается, что у вас установлен Subversion, svn):


$ svn checkout http://sitools.googlecode.com/svn/trunk/ sitools

В каталоге sitools/getcomments будет файл getcomments.pl — то, что вам нужно. Это идеальный способ, потому что я планирую дорабатывать файл, и, выполнив в каталоге sitools, созданном, как указано выше, команду


$ svn update

вы всегда будете располагать свежей версией. Как альтернатива, возьмите файл, прицепленный к этому тексту — он не будет меняться автоматически, но я постараюсь это делать достаточно регулярно.


Теперь, когда у вас есть wget и getcomments.pl (не забудьте дать последнему права на исполнение, например командой chmod +x getcomments.pl), можно приступать к копированию раздела и всех каталогов в нём. Команды ниже приведены в предположении, что getcomments.pl скопирован в каталог ~/bin (каталог bin в вашем домашнем каталоге), и что вы создали каталог ~/mirrors для хранения архивных копий раздела. Далее я также предполагаю, что имя раздела (адрес), который мы архивируем, такое: http://zhurnal.lib.ru/p/pupkin_v_t/


1. Копируем все файлы из раздела:


$ cd ~/mirrors
$ wget -np -nv -r -c \
 --user-agent="Mozilla/5.0 (X11; U; Linux i686; ru; rv:1.9.0.7) Fedora/3.0.7-1.fc9 Firefox/3.0.7" \
http://zhurnal.lib.ru/p/pupkin_v_t/

В качестве строки user-agent вы можете передать идентификатор любого другого браузера, главное — чтобы такой идентификатор был похож на что-то реальное.


Теперь переходим в каталог, где хранятся все файлы раздела и запускаем там getcomments.pl:


$ cd ~/mirrors/zhurnal.lib.ru/p/pupkin_v_t
$ ~/bin/getcomments.pl

Собственно, это всё. В вашем реальном случае подставляйте имя другого раздела и вызывайте getcomments.pl оттуда, откуда вам удобнее. Важно: сайт «Самиздата» часто перегружен и иногда может не справиться с сохранением той или иной страницы (обычно HTTP код 503). В этом случае решение простое: повторно запустите getcomments.pl — он скачает заново только отсутствующие файлы.


Правила именования комментариев таковы: если произведение хранится в файле
abc.shtml
то ленты комментариев к нему записываются в файлы с именами
abc.comment.A.C.html, где
A — номер архива (0, если это текущая лента, ещё не перешедшая в архивы)
C — номер страницы комментариев.


Если вы не владеете навыками и/или доступом к Un*x серверу, где возможно использовать упомянутое выше ПО, оставьте «заявку» на выполнение архивирования здесь или напишите мне письмом список разделов и — нужно ли сохранять их комментарии.


Нынешние ограничения скрипта сохранения комментариев, их ликвидация — планы для следующего релиза:

  • Не заменяет в теле произведений и сохранённых лент комментариев ссылки на локально сохранённые ленты комментариев. Вам придётся выбирать очередную сохранённую ленту вручную.
  • Не обрабатывает такие сбои сервера, как код 503 — вам придётся самостоятельно проверять, всё ли скачалось и, при необходимости, перепрогонять скрипт.
  • Не умеет выполнять скачивание раздела и комментариев «одним щелчком» — одной командой, одним запуском собственно скрипта
  • Не умеет присваивать сохранённой странице комментариев дату и время самого последнего в ней обновлённого комментария.
  • Не умеет работать с разделами на других сайтах на том же двигателе (world.lib.ru, fan.lib.ru и т.д.) — имя домена zhurnal.lib.ru жёстко прошито в теле скрипта


Принимаются предложения и идеи по модернизации скрипта.


Если не сказано иначе, все записи в этом журнале подпадают под следующую лицензию:
Creative Commons Attribution-Noncommercial-No Derivative Works 3.0 Unported License
О распространении моих произведений в электронном виде

Профиль

2012, Осень
temmokan
Константин Бояндин
Проза жизни

Метки

За последний месяц

Август 2017
Вс Пн Вт Ср Чт Пт Сб
  12345
6789101112
13141516171819
20212223242526
2728293031  

Статистика


Разработано LiveJournal.com
Designed by Lilia Ahner