ljmirror (Зеркалировалка и многое другое для LJ)

Полезные советы и программы от пользователей нашего форума.

Модератор: Модераторы разделов

Ответить
Аватара пользователя
Bolverk
Бывший модератор
Сообщения: 1571
ОС: Cygwin
Контактная информация:

ljmirror

Сообщение Bolverk »

Эпиграф.

Диалог между мной (Я) - начинающим копателем внутренностей винды - и одним
знакомым (З) - более продвинутого в компьютерном плане человеке. Время -
2000-2001 год. Беседа велась вживую, логов не сохранилось, воспроизводится по
памяти.
(З): - А вот у меня есть друг, который в компах рубит просто как бог.
(Я): - А софт у него какой, купленный или ворованный?
(З): - Ты знаешь, у него в основном самописный...

Однажды я понял, что ни лента друзей, ни rss-читалки мне не нравятся тем, что
они не могут отлавливать появление новых комментариев.
Прошло время, я долго думал в фоновом режиме, прочесал существующие скрипты для
бэкапов и программы для чтения журналов. После того как несколько раз
самоликвидировались друзья, понял, что я еще и хочу сохранять нравившиеся мне
журналы для избежания подобных ситуаций в будущем, а также для чтения offline
долгими зимними вечерами в случае (тьфу-тьфу) отключения моей машинки от сети.
То ли описания были так плохо составлены, то ли еще что, но инкрементарный
бэкап - конечно, я не собираюсь каждый раз пересохранять все записи в журнале -
был упомянут кажется только в ljsm.pl. Однако нигде не было упомянуто
отслеживание новых комментариев.
Честно признаюсь, пробовал только пресловутый ljsm.pl. Убедился, что новые
комментарии он не видит, а его "инкрементарность" означает, что он сохраняет
файлы с новыми записями, не более того - а как известно, "камменты рулят". Да и
вообще, в силу неизвестных мне причин питаю какие-то неприятные чувства к
перлу.
После чего, вдохновившись бессмертным "Спасение утопающих - дело рук самих
утопающих", стал придумывать алгоритм реализации нужных мне функций.
В результате получился скрипт на bash с использование wget и других стандартных
юниксовых утилит. Сам скрипт с примером конфига лежит тут:
http://212.192.241.170/~pobelov/projects/sh/ljmirror/
ljmirror-latest.tar.bz2 представляет собой символическую ссылку на последнюю
версию скрипта.
Возможности:
Сохранение журналов (users/community) с livejournal.com или сайтов на этом
движке начиная с заданного года и месяца. Текст получается и хранится в
компрессированном виде (gzip), что сильно уменьшает трафик, время получения и
занимаемый объем зеркала. Скрипт выводит имя пользователя, название записи и
ссылку на локальную копию, что удобно для запуска по cron.
Скрипт принимает только одну опцию - файл конфига, по умолчанию ~/.ljmirror
Пример конфига приложен.
Опции можно задавать глобально, для пользователя, для года и для месяца.
(Опционально) Авторизация через cookies
(Опционально) Получение записи без комментариев (через форму добавления
комментариев)
(Опционально) Пересохранение записей с изменившимся числом комментариев
(Опционально) Ведение "истории" - сохранение записей с временной отметкой, так
что можно найти старые версии записи. Смысл применения вижу только в одном -
против журналов, в которых имеют привычку удалять комментарии.
(Опционально) Не сохранять записи, только извещать об изменения
(Опционально) Вставление текста записи в вывод

Если вы решитесь использовать этот скрипт, внимательно прочитайте файл конфига
и поправьте его в соответствии с вашей системой. В идеале необходимости
изменять скрипт не должно возникать и все должно настраиваться через конфиг.
Замечания, сообщения об ошибках и особенно исправления/дополнения
всячески приветствуются.
Спасибо сказали:
Ответить