Por causa de uma mini funcionalidade num blog, precisei gerar um feed que agregasse vários feeds de diferentes origens (RDF, RSS ou Atom).
Os requisitos eram simples: ser configurável, flexível, dispôr de uma interface para edição da lista de feeds e a habitual "estar pronto ontem".
Antes de pôr as mãos na massa fui dar uma olhada pelo que já existia na comunidade e fiquei agradavelmente surpreendido. Afinal esta modinha dos planetas sempre gerou algumas linhas de código úteis. Encontrei P's para todos os gostos.
P. de PHP, Perl e Python.
Comecemos pelo
PHPChama-se
Gregarius e é completamente dumb proof. Fazendo bom uso do
magpie, um parser de RSS muito completo, o gregarius cumpre inteiramente os requisitos e vai muito mais longe, com uma interface web que implementa muitas funcionalidades de um web-based RSS Reader. Suporta vários plugins e temas/templates e tem um nível de actividade apreciável.
Folgo muito em ver que o Google Reader não matou a vontade de se fazer alguma coisa nesta área.
O storage suportado é mysql ou sqlite.
Em Perl
O fabuloso
Plagger, claro.
Bem. As dependências nunca mais acabam. É um chorrilho de módulos do CPAN que precisam de outros módulos de CPAN que precisam de mais módulos e uma bica.
Mas há uma razão. A flexibilidade deste monstrinho é total. Vai ao ponto de podermos construir RSS on-the-fly fazendo scraping de páginas HTML com a ajuda de algumas expressões regulares.
O output por sua vez pode ser "routed" para onde quisermos. Por exemplo, via SMTP para uma conta de mail. Genial.
A melhor descrição está na introdução do projecto no trac.
"Ray Ozzie said
RSS can be Unix Pipe of the Internet and that way Plagger is an Unix shell for Web 2.0!"
Por falar em trac, há várias receitas prontas a pôr no forno com os respectivos ficheiros YAML de configuração.
Falta-lhe a interface de gestão/configuração para dumbs. Dado o poder disto até é estranho não existir já algo feito. (Será ?)
A melhor quote que vi:
Yahoo Pipes? Isso é um Plagger bem vestido de fatinho e gravata.
Eu prefiro dizer que o Perl foi inventado para alguém fazer o Plagger.
P de Python
Planetplanet. É a receita que encontrei em Python. Muito simples de configurar, completamente straightforward, (em OSX queixa-se da inexistência do bsddb aparentemente não vem com a distribuição de Python do OSX).
Suporta templating mas (again), a configuração não tem qualquer interface para dummies.