polyrex-feed-reader 0.1.3 → 0.2.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 +35 -23
  2. metadata +2 -2
@@ -31,7 +31,7 @@ class PolyrexFeedReader
31
31
  if File.exists? @file_path then
32
32
  @feeds = Polyrex.new @file_path
33
33
  else
34
- schema = 'feeds/column[id]/feed[rss_url,title,important,occurrence,recent,url, xhtml, xhtml_mobile, last_modified]/item[title,link,description]'
34
+ schema = 'feeds/column[id]/feed[rss_url,title,important,occurrence,recent,url, xhtml, xhtml_mobile, last_modified, last_accessed]/item[title,link,description]'
35
35
  @feeds = Polyrex.new schema
36
36
  @feeds.save @file_path
37
37
  end
@@ -44,27 +44,7 @@ class PolyrexFeedReader
44
44
  def read()
45
45
  @feeds.records.each do |col|
46
46
  col.records.each do |feed|
47
-
48
- if scheduled? feed.occurrence and recency(feed.last_modified) != 'hot' then
49
-
50
- rss_doc = Document.new(open(feed.rss_url, 'UserAgent' => 'PolyrexFeedReader').read)
51
- rss_items = XPath.match(rss_doc.root, '//item')[0..2]
52
-
53
- if feed.records.length <= 0 then
54
- # create the items
55
- k = 3 - feed.records.length
56
- k.times {|x| feed.create.item}
57
-
58
- fetch_items(rss_items, feed)
59
-
60
- else
61
- if REXML::Text::unnormalize(feed.item[0].title) != rss_items[0].text('title').to_s then
62
- fetch_items(rss_items, feed)
63
- else
64
- feed.recent = recency(feed.last_modified)
65
- end
66
- end
67
- end
47
+ fetch_feed(item)
68
48
  end
69
49
  col.records.sort_by!{|x| -Time.parse(x.text('summary/last_modified').to_s).to_i}
70
50
 
@@ -109,8 +89,39 @@ class PolyrexFeedReader
109
89
 
110
90
  buffer
111
91
  end
92
+
93
+ def read_feed(feed_name)
94
+ feed = @feeds.find_by_feed_title(feed_name)
95
+ fetch_feed(feed)
96
+ @feeds.save @file_path
97
+ end
98
+
99
+ private
100
+
101
+ def fetch_feed(feed)
102
+ if scheduled? feed.occurrence and recency(feed.last_accessed) != 'hot' then
112
103
 
113
- private
104
+ rss_doc = Document.new(open(feed.rss_url, 'UserAgent' => 'PolyrexFeedReader').read)
105
+ rss_items = XPath.match(rss_doc.root, '//item')[0..2]
106
+
107
+ if feed.records.length <= 0 then
108
+ # create the items
109
+ k = 3 - feed.records.length
110
+ k.times {|x| feed.create.item}
111
+
112
+ fetch_items(rss_items, feed)
113
+
114
+ else
115
+
116
+ if REXML::Text::unnormalize(feed.item[0].title) != rss_items[0].text('title').to_s then
117
+
118
+ fetch_items(rss_items, feed)
119
+ else
120
+ feed.recent = recency(feed.last_modified)
121
+ end
122
+ end
123
+ end
124
+ end
114
125
 
115
126
  def recency(time)
116
127
  case (Time.now - Time.parse(time))
@@ -157,3 +168,4 @@ class PolyrexFeedReader
157
168
  end
158
169
 
159
170
  end
171
+
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.1.3
4
+ version: 0.2.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-14 00:00:00 +01:00
12
+ date: 2010-06-15 00:00:00 +01:00
13
13
  default_executable:
14
14
  dependencies:
15
15
  - !ruby/object:Gem::Dependency