RSS-редактор для гика

Оказывается, найти в Интернете редактор RSS-лент не так-то и просто. Встречаются или платные варианты, или кривые, или под Windows. Оно и понятно: для большинства блогов и движков RSS-фиды генерируются автоматически, на основе топиков. И всё-таки иногда возникает потребность создавать rss-потоки в ручном или полуавтоматическом режиме.

Поскольку найти готовое решение не удалось, решил написать самостоятельно. Нашел Java-библиотеку для генерации RSS (старенькая, но вполне адекватная, легкая и простая). С GUI решил не связываться, а парсить из текстового файла, особым образом размеченного, например, на основе синтаксиса wiki или asciidoc. Обрабатывать текстовой файл решил с помощью Groovy-скрипта. И вдруг такая идея: а зачем два файла, если внутри Groovy-программ можно прекрасно размещать многострочные текстовые блоки? Получилось вот что:

#!/usr/bin/groovy

import viecili.jrss.generator.*;
import viecili.jrss.generator.elem.*;

format = new java.text.SimpleDateFormat("yyyy-MM-dd HH:mm")
rss = new RSS(RSS.VERSION_2_0)
chan = new Channel('Новостная лента "Голос Мухославска"', "http://example.ru", 
'''
Блог содержит актуальные новости из жизни российских регионов. Освещается широкий круг
политических, экономических и культурных проблем. 
''') 
[

'''Новости животноводства---

У попа была собака. Он ее любил. Она съела кусок мяса - Он ее убил. В землю
закопал, надпись написал: У попа была собака. Он ее любил. Она съела кусок мяса - 
Он ее убил. В землю закопал, надпись написал: У попа была собака. Он ее любил. 
Она съела кусок мяса - Он ее убил. В землю закопал, надпись написал...

--- http://example.ru/sobaka.html
--- 2011-05-20 01:35''', 

'''Модернизация на марше---

В небо спутник запустили из села Кукуево. Ох, и здорово летает 
железяка хренова. Сидит Ваня на заборе в алюминевых штанах. А кому какое дело,
что ширинка на болтах. Летела ракета, упала в болото: какая зарплата - 
такая работа.

--- http://example.ru/kosmos.html
--- 2011-05-20 01:30''', 

].each{
 sa = it.split(/\s*-{3,}\s*/)	
 item = new Item(sa[0], sa[2], sa[1]) 
 if(sa.size() > 3)item.setPubDate(format.parse(sa[3].trim()))
 chan.addItem(item)
} 
	
rss.addChannel(chan) 
RSSFeedGeneratorFactory.getDefault().generateToFile(rss, new File ("blog.rss"))



Сохранив такой код в файл RssBlog.groovy и сделав его исполняемым, можно править его любым текстовым редактором, а после правки запускать на исполнение. В результате должен сформироваться файл blog.rss в формате RSS-2.0. Можно даже дописать в конце автоматическую выгрузку посредством ftp.

Конечно, это не очень изящно, зато быстро написано (за полчаса, включая отладку) и надежно работает, если усвоить нехитрые принципы синтаксиса. В заключение добавлю, что библиотеки, скачанные по вышеприведенной ссылке, нужно поместить в каталог ~/.groovy/lib.

Комментарии (2)

RSS свернуть / развернуть
+
0
Вполне кстати нормальная библиотека
avatar

Sergei_T

  • 21 мая 2011, 14:01
+
0
Да, библиотека создана по всем правилам, снабжена достаточно подробной документацией и лишена избыточности. А то, что не обновлялась с 2005 года — не весть какой недостаток. Видимо, автор остался доволен качеством своей работы.
avatar

yababay

  • 21 мая 2011, 22:46

Только зарегистрированные и авторизованные пользователи могут оставлять комментарии.