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.
- data/lib/polyrex-feed-reader.rb +20 -4
- metadata +2 -2
data/lib/polyrex-feed-reader.rb
CHANGED
@@ -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
|
-
|
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.
|
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-
|
12
|
+
date: 2010-06-16 00:00:00 +01:00
|
13
13
|
default_executable:
|
14
14
|
dependencies:
|
15
15
|
- !ruby/object:Gem::Dependency
|