Sha256: bf894110d3d4bb0059c1b28fb52beb397b11e6b58dcbbdc645999cf35eb893a7
Contents?: true
Size: 1.04 KB
Versions: 2
Compression:
Stored size: 1.04 KB
Contents
require 'rss' require 'open-uri' require 'open_uri_redirections' require 'parallel' module RRImm class Fetcher attr_accessor :config def initialize(config) @config = config end def parallel_fetch(concurrency) Parallel.map(@config.feeds, :in_threads => concurrency) do |name,feed_config| fetch_feed(name, feed_config) end end def fetch @config.feeds.map do |name,feed_config| fetch_feed(name, feed_config) end end def fetch_feed(name, feed_config) last_read = Time.at(@config.get_cache.read(feed_config)) puts name open(feed_config.uri, :allow_redirections => :safe) do |rss| feed = RSS::Parser.parse(rss) feed = GenericFeed.new feed items = feed.items.select { |item| item.date > last_read } last_read = items.collect { |item| item.date }.max unless items.empty? items.each do |item| feed_config.format(feed, item) end end @config.get_cache.save(feed_config, last_read.to_i) end end end
Version data entries
2 entries across 2 versions & 1 rubygems
Version | Path |
---|---|
rrimm-0.1.1 | lib/rrimm/fetcher.rb |
rrimm-0.1.0 | lib/rrimm/fetcher.rb |