polyrex-feed-reader 0.2.1 → 0.3.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (2) hide show
  1. data/lib/polyrex-feed-reader.rb +20 -4
  2. metadata +2 -2
@@ -9,7 +9,7 @@ require 'builder'
9
9
  require 'time'
10
10
  require 'date'
11
11
  require 'chronic'
12
-
12
+ require 'pathname'
13
13
 
14
14
  class Fixnum
15
15
  def seconds() self end
@@ -92,16 +92,28 @@ class PolyrexFeedReader
92
92
 
93
93
  def read_feed(feed_name)
94
94
  feed = @feeds.find_by_feed_title(feed_name)
95
- fetch_feed(feed)
95
+ fetch_feed(feed, save_rss: true)
96
96
  @feeds.save @file_path
97
+
98
+ File.open(rss_file(feed),'r').read
97
99
  end
98
100
 
99
101
  private
100
102
 
101
- def fetch_feed(feed)
103
+ def fetch_feed(feed, opts={})
104
+ o = {save_rss: false}.merge opts
105
+
102
106
  if scheduled? feed.occurrence and recency(feed.last_accessed) != 'hot' then
103
107
 
104
- rss_doc = Document.new(open(feed.rss_url, 'UserAgent' => 'PolyrexFeedReader').read)
108
+ buffer = open(feed.rss_url, 'UserAgent' => 'PolyrexFeedReader').read
109
+ if o[:save_rss] == true then
110
+
111
+ pathname = Pathname.new(rss_file(feed))
112
+ pathname.dirname.mkdir unless pathname.dirname.exist?
113
+ File.open(rss_file(feed),'w'){|f| f.write buffer}
114
+
115
+ end
116
+ rss_doc = Document.new(buffer)
105
117
  rss_items = XPath.match(rss_doc.root, '//item')[0..2]
106
118
 
107
119
  if feed.records.length <= 0 then
@@ -167,6 +179,10 @@ class PolyrexFeedReader
167
179
 
168
180
  dates.detect{|x| Time.now.between? *x} ? true : false
169
181
  end
182
+
183
+ def rss_file(feed)
184
+ "%s/%s/%s.rss" % [File.dirname(@file_path), feed.parent.id, feed.title]
185
+ end
170
186
 
171
187
  end
172
188
 
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: polyrex-feed-reader
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.2.1
4
+ version: 0.3.0
5
5
  platform: ruby
6
6
  authors: []
7
7
 
@@ -9,7 +9,7 @@ autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
11
 
12
- date: 2010-06-15 00:00:00 +01:00
12
+ date: 2010-06-16 00:00:00 +01:00
13
13
  default_executable:
14
14
  dependencies:
15
15
  - !ruby/object:Gem::Dependency