296: def run(uri)
297: begin
298: xmlstr = Net::HTTP.get(URI.parse(uri))
299: rescue SocketError, Errno::ETIMEDOUT
300: Rudy::Huxtable.le "Connection Error. Check your internets!"
301: end
302:
303: xml = REXML::Document.new xmlstr
304:
305: data = { :items => [] }
306: xml.elements.each '//channel' do |item|
307: item.elements.each do |e|
308: n = e.name.downcase.gsub(/^dc:(\w)/,"\1").to_sym
309: next if n == :item
310: data[n] = e.text
311: end
312: end
313:
314:
315:
316:
317:
318:
319:
320:
321:
322:
323: xml.elements.each '//item' do |item|
324: new_items = {} and item.elements.each do |e|
325: n = e.name.downcase.gsub(/^dc:(\w)/,"\1").to_sym
326: new_items[n] = e.text
327: end
328: data[:items] << new_items
329: end
330: data
331: end