[Ror-es] Añadiendo datos automáticamente
Juan Pablo
juanpare at gmail.com
Sat Dec 30 10:16:53 GMT 2006
Por lo que entiendo lo que quieres es leer el feed para ver si hay post
nuevos.. yo hice esto con crontab, ejecutando cada cierto tiempo un método
de una clase ruby.
0,5,10,15,20,25,30,35,40,45,50,55 * * * * /usr/bin/ruby script/runner '
Notice.cargar_feeds' -e development
este código era de mi crontab, corría cada 5 minutos y ejecutaba el método
cargar_feeds de la clase Notice mientras estaba en desarrollo.
Aquí [1] hay algo de info sobre esto.
espero que te sirva.
saludos,
[1] http://ryandaigle.com/articles/2005/12/21/1135178266137.html#comments
El día 30/12/06, Imobach González Sosa <imobachgs at banot.net> escribió:
>
> El Sábado, 30 de Diciembre de 2006 01:44, Coquito Zen escribió:
> > 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.
>
> No conozco el resto de tu aplicación, así que la solución que se me ocurre
> a
> lo mejor no la puedes llevar a cabo en tu caso. Pero bueno, espero que te
> sirva.
>
> Yo empezaría por crear un par de modelos Feed y FeedItem (que supongo que
> tú
> ya tienes algo parecido). El primero representa una fuente RSS (un feed) y
> el
> segundo cada elemento que podamos leer.
>
> El siguiente paso sería simplificar el controlador, quitando el código
> referente a la lectura de los RSS. ¿Dónde lo ponemos? Pues siguiendo la
> propuesta[1] de Jamis Buck y Michael Koziarsky, podríamos crear una clase
> FeedImporter (que pondríamos en lib/). Así, el modelo Feed sería algo
> como:
>
> class Feed < ActiveRecord::Base
> has_many :feed_items
>
> def import!
> FeedImporter.import!(self)
> end
> end
>
> La clase FeedImporter se encargará de instanciar los nuevos FeedItem según
> sea
> necesario. Si quieres, puedes prescindir de esta clase (FeedImporter) e
> implementar esta funcionalidad en Feed, pero el enfoque de Koziarsky y
> Jamis
> hace que tus modelos permanezcan simples.
>
> En cuanto al controlador, podrías hacer algo como:
>
> app/controllers/feed_controller.rb
>
> def view_feed
> @feed = Feed.find(params[:id])
> @feed.import!
> @items = feed.items
> end
>
> Y en la vista, sólo tienes que recorrer los elementos (@items):
>
> app/feeds/view_feed.rhtml:
>
> <%= render :partial => "item", :collection => @items %>
>
> app/feeds/_item.rhtml
>
> <%=h item.title %>
> <%=h item.body %>
>
> > Gracias a todos por la ayuda y el tiempo que podais tomar al leer esto.
>
> Espero que te haya servido de algo.
>
> > Saludos,
>
> Un saludo.
>
> [1] http://www.therailsway.com/2006/12/18/importing-files
>
> --
> _o) Imobach González Sosa
> //\ email: imobachgs at banot dot net
> V_/_ jid: osoh at jabberes dot org
> url: http://www.banot.net/~osoh/
> blog: http://devnull.blogs.banot.net
>
>
> _______________________________________________
> Ror-es mailing list
> Ror-es at lists.simplelogica.net
> http://lists.simplelogica.net/mailman/listinfo/ror-es
>
>
>
>
--
Juan Pablo Re.
blog: http://ururails.wordpress.com/
web: http://translate20.com
-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://lists.simplelogica.net/pipermail/ror-es/attachments/20061230/4f18a24e/attachment.htm
More information about the Ror-es
mailing list