polyrex-feed-reader 0.2.1 → 0.3.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
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