[Ror-es] Añadiendo datos automáticamente

Manuel González Noriega manuel.gonzalez.noriega at gmail.com
Sat Dec 30 14:35:24 GMT 2006


On 30/12/06, Coquito Zen <ruby-forum-incoming at andreas-s.net> wrote:
> Buenas noches a todos!
>
>
> La cuestión es la siguiente, tengo un pequeño codigo que coje los datos
> de un RSS y los presenta en pantalla (un muy simple lector RSS). La
> cuestión es que me gustaría que automáticamente cada cierto tiempo, o
> almenos cada vez que accediera al action, tomara los datos del RSS
> (título y contenido) y los agregara a la base de datos, exactamente a la
> tabla news (id, title, content).
>

Hola,

para persistir los ítems y los feeds en base de datos, como te han
comentado, basicamente solo tienes que crear los modelos
correspondientes  y luego importar con un cron y una estructura
elegante.

Ahora, si vas a manejar varios feeds tienes q tener en cuenta un poco
como enfocar el tema. Yo creo que lo ideal para cualquier cosa que no
sea muy pequeña es crear dos aplicaciones independientes: un agregador
y un lector. El lector solo hace vistas de tus feeds e ítems, y
cualquier operación adicional (comentarios, etc.). El agregador se
encarga de la recolección de ítems y de la gestión (CRUD) de feeds.

Después tienes que tener en cuenta que a menos que el agregador vaya a
ser realmente mínimo tienes que tener en cuenta varios temas
importantes. Por ejemplo,

- el encoding de los feeds (Latin-1/utf-8 basicamente)
- la gestión de ancho de banda con GET condicional
- los distintos tipos de feeds (atom/rss1/rss2)
- la gestión de códigos HTTP (como mínimo atender a los 301,302 y 404,410)
- el cacheado de ítems
- la gestión de ítems duplicados (un problema curiosamente de muy mala
solución para lo simple que se plantea)

Lo mejor es que prescindas de algo escrito por tí a tan bajo nivel y
utilices alguna librería de sindicación. Tienes varias opciones entre
las que se pueden destacar:

- En Ruby, Feedtools. Aunque a mi personalmente me parece que tienen
un rendimiento bastante malo. Lo bueno es que están pensadas para
integrarse en Rails.

- En Python, el Universal Feed Parser de los maestros Mark Pilgrim y
Sam Ruby, lo mejorcito.

- En PHP, el clásico Magpie y una un poco más reciente, SimplePie que
está bastante curiosa.

Me da pereza recolectar URLs, pero Google te dará acceso inmediata a
cada nombre.

Es un tema muy chulo, suerte.

-- 
Manuel
http://linkja.com * un agregador de tendencias
http://simplelogica.net
http://simplelogica.net/logicola


More information about the Ror-es mailing list