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

Mauro Pompilio [w3revolt.com] mauro at w3revolt.com
Sat Dec 30 22:41:01 GMT 2006


Coquito Zen wrote:
> Buenas noches a todos!
>
> Llevo un rato probando y probando, y ni San Google ni los cientos de
> cafés que he tomado ya, me han hecho encontrar la solución a estre
> problema que tengo delante. Si alguno pudiera aconsejarme con lo que
> hacer, estaría eternamente agradecido.
>
> 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).
>
> El codigo del lector es el siguiente:
>
>   def index
>     feed_url = 'http://rss.elmundo.es/rss/descarga.htm?data2=4'
>     output = "<h1>My RSS Reader</h1>"
>     open(feed_url) do |http|
>       response = http.read
>       result = RSS::Parser.parse(response, false)
>       result.output_encoding = "iso-8859-1"
>       output += "Feed Title: #{result.channel.title}<br />"
>       result.items.each_with_index do |item, i|
>         output += "<p><b>#{i+1}. #{item.title}</b><br
> />#{item.description}<p>" if i < 10
>       end
>     end
>     render_text output
>   end
>
> Supongo que para hacerlo, es tomar las strings de item.title y de
> item.description de cada post y irlas guardando progresivamente. Lo que
> sucede con esto, es que no se como aplicarlo, ahora mismo tengo un
> enorme "cacao" en la cabeza que no me deja ni razonar.
>
> Gracias a todos por la ayuda y el tiempo que podais tomar al leer esto.
>
> Saludos,
> Coquito.
>
>   
Salute Coquito,

Te cuento, yo tengo in-progress una aplicación que es un  planet hecho 
en Rails, no se si es exactamente lo que estas buscando pero creo que 
soluciona varios de los problemas que planteas.

Yo lo que hago es chequear los feeds cada X horas a través de un script 
en el Cron y guardar las nuevas entradas en una BBDD local. Lo hago por 
horas porque lo tengo puesto en un server en producción que tiene un 
ancho de banda limitado pero podes establecer los periodos que quieras, 
claro está.
Uso FeedTools para la recogida de los feeds, es multiusuario, tiene una 
mini panel de admin. para que cada usuario puede agregar más feeds, 
borrar contenidos cacheados de cada feed o ponerse un avatar y tiene un 
sistema de sign-up via web.
Si lo querés ver funcionando, está colgado en http://planet.assl-site.net

Si te interesa te paso el código (es GPL) o lo cuelgo en algún lado.

Saludosss y Buen Año!

Mauro.


More information about the Ror-es mailing list