О сложности и простоте

На прошлой неделе мне потребовалось автоматически постить RSS в Твиттер.

Первая мысль была — использовать Plagger. Тем более, что именно эту программу ребята использовали на январском хакмите в Москве.

Plagger — это такой механизм, где с помощью конфигурации (в YAML) формируется цепочка, через которую проходят новости, собираемые из разных источников. Всю обработку ведут отдельные плагины: один забирает RSS, другой фильтрует данные, третий размещает их в Твиттере, отправляет по почте или складывает в XML-файлы. Конфигурация может быть самой замысловатой, а отдельных плагинов больше сотни.

Установка оказалась весьма муторной, заняла часа полтора и скачала пол-спана. К тому же, не очень понятно (а документации — кот наплакал), как не пропускать дубликаты записей и как заставить плагины сохранять результаты в базе данных. Необъятное число необходимых модулей заставило задуматься о том, насколько сложно будет переносить скрипты на другой сервер.

В итоге я расчехлил архивы трехлетней давности и все приложение свелось к последовательному вызову нескольких методов:

my $feeds_ref = FeedCrawl::Register::getFeeds();

foreach my $feed (@$feeds_ref) {
    print $feed->id . ' ' . $feed->uri . "\n";
    $feed->fetch();
    $feed->save();
}

Признак старинной архивной копии — вызов print 🙂

Ну а пост в Твиттер — тривиальная операция. Все сразу заработало, а через несколько часов окончательно вышел из строя жесткий диск на арендованном у «Мастерхоста» сервере, поэтому скрипт переехал жить и работать во Франкфурт.

Добавить комментарий

Ваш e-mail не будет опубликован. Обязательные поля помечены *

Retype the CAPTCHA code from the image
Change the CAPTCHA codeSpeak the CAPTCHA code