polyrex-feed-reader 0.5.0 → 0.5.1
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.
- checksums.yaml +4 -4
- checksums.yaml.gz.sig +0 -0
- data/lib/feeds.xsl +10 -4
- data/lib/polyrex-feed-reader.rb +61 -4
- data.tar.gz.sig +0 -0
- metadata +2 -2
- metadata.gz.sig +0 -0
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 516e54704a686ab3edbe096612612f790da62c54
|
4
|
+
data.tar.gz: 28b9b26bea687eefe6fb8e0ef6379d8ca53d154e
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: e21bd473b420e0ddd536c25dd571614371d1c95242e5174c77ca712bdf35df6a5aa86a114a021978f0a51b1600cc40af82a2dfb36a02820b5b1c33ea9ea66e8a
|
7
|
+
data.tar.gz: 792b98b3fd475e300907e960be83229a239bf247799f6eab6958a460212dc133c84f0920bcd47cb49c2b399633395d4531315b1b1238614dea9dd27d113907e3
|
checksums.yaml.gz.sig
CHANGED
Binary file
|
data/lib/feeds.xsl
CHANGED
@@ -16,7 +16,9 @@
|
|
16
16
|
<xsl:template match='records/column'>
|
17
17
|
|
18
18
|
<xsl:apply-templates select='summary'/>
|
19
|
-
<xsl:apply-templates select='records'
|
19
|
+
<xsl:apply-templates select='records/feed'>
|
20
|
+
<xsl:sort select="summary/recent" order="ascending"/>
|
21
|
+
</xsl:apply-templates>
|
20
22
|
|
21
23
|
</xsl:template>
|
22
24
|
|
@@ -25,12 +27,16 @@
|
|
25
27
|
</xsl:template>
|
26
28
|
|
27
29
|
<xsl:template match='records/feed'>
|
28
|
-
|
30
|
+
|
31
|
+
<xsl:apply-templates select='summary'>
|
32
|
+
|
33
|
+
</xsl:apply-templates>
|
29
34
|
<ul><xsl:apply-templates select='records'/></ul>
|
30
35
|
</xsl:template>
|
31
36
|
|
32
37
|
<xsl:template match='feed/summary'>
|
33
|
-
|
38
|
+
<h3><xsl:value-of select='title'/></h3>
|
39
|
+
<span><xsl:value-of select='last_modified'/></span>
|
34
40
|
</xsl:template>
|
35
41
|
|
36
42
|
<xsl:template match='records/item'>
|
@@ -45,4 +51,4 @@
|
|
45
51
|
<p><xsl:value-of disable-output-escaping="yes" select='description'/></p>
|
46
52
|
</xsl:template>
|
47
53
|
|
48
|
-
</xsl:stylesheet>
|
54
|
+
</xsl:stylesheet>
|
data/lib/polyrex-feed-reader.rb
CHANGED
@@ -6,6 +6,24 @@ require 'nokogiri'
|
|
6
6
|
require 'rss_to_dynarex'
|
7
7
|
require 'polyrex'
|
8
8
|
|
9
|
+
class Fixnum
|
10
|
+
|
11
|
+
def ordinal
|
12
|
+
self.to_s + ( (10...20).include?(self) ? 'th' :
|
13
|
+
%w{ th st nd rd th th th th th th }[self % 10] )
|
14
|
+
end
|
15
|
+
|
16
|
+
def seconds() self end
|
17
|
+
def minutes() self * 60 end
|
18
|
+
def hours() self * seconds * 60 end
|
19
|
+
def days() self * hours * 24 end
|
20
|
+
def weeks() self * days * 7 end
|
21
|
+
def months() self * days * 30 end
|
22
|
+
alias second seconds; alias hour hours; alias minute minutes
|
23
|
+
alias day days; alias week weeks; alias month months
|
24
|
+
|
25
|
+
end
|
26
|
+
|
9
27
|
class PolyrexFeedReader
|
10
28
|
|
11
29
|
def initialize(polyrex)
|
@@ -29,6 +47,14 @@ class PolyrexFeedReader
|
|
29
47
|
end
|
30
48
|
end
|
31
49
|
|
50
|
+
def datetimestamp()
|
51
|
+
|
52
|
+
hour, minutes, day, year = Time.now.to_a.values_at 2,1,3,5
|
53
|
+
meridian, month = Time.now.strftime("%p %b").split
|
54
|
+
"%d:%s%s %s %s %s" % [hour, minutes, meridian.downcase, \
|
55
|
+
day.ordinal, month, year]
|
56
|
+
end
|
57
|
+
|
32
58
|
def refresh
|
33
59
|
|
34
60
|
@polyrex.records.each do |column|
|
@@ -39,8 +65,23 @@ class PolyrexFeedReader
|
|
39
65
|
.downcase.gsub(/\s/,'').gsub('-','_')
|
40
66
|
|
41
67
|
d = Dynarex.new filename
|
68
|
+
feed.last_accessed = datetimestamp()
|
69
|
+
feed.last_modified = datetimestamp() if feed.last_modified.empty?
|
70
|
+
|
71
|
+
items = d.to_h[0..2]
|
42
72
|
|
43
|
-
|
73
|
+
puts 'items.first[:title] ' + items.first[:title].inspect
|
74
|
+
puts 'feed.item[0].title ' + feed.item[0].title.inspect
|
75
|
+
|
76
|
+
if feed.records.length > 0 and \
|
77
|
+
items.first[:title] == feed.item[0].title then
|
78
|
+
feed.recent = recency(feed.last_modified)
|
79
|
+
next
|
80
|
+
end
|
81
|
+
|
82
|
+
feed.recent = '1hot'
|
83
|
+
feed.records.remove_all
|
84
|
+
items.each.with_index do |x, i|
|
44
85
|
|
45
86
|
h = {title: x[:title]}
|
46
87
|
|
@@ -54,6 +95,8 @@ class PolyrexFeedReader
|
|
54
95
|
feed.create.item h
|
55
96
|
end
|
56
97
|
|
98
|
+
feed.last_modified = datetimestamp()
|
99
|
+
|
57
100
|
end
|
58
101
|
end
|
59
102
|
end
|
@@ -63,8 +106,8 @@ class PolyrexFeedReader
|
|
63
106
|
def save_html(filepath='feeds.html')
|
64
107
|
|
65
108
|
lib = File.dirname(__FILE__)
|
66
|
-
xsl_buffer = File.read(lib + '/feeds.xsl')
|
67
|
-
|
109
|
+
#xsl_buffer = File.read(lib + '/feeds.xsl')
|
110
|
+
xsl_buffer = File.read('feeds.xsl')
|
68
111
|
|
69
112
|
xslt = Nokogiri::XSLT(xsl_buffer)
|
70
113
|
html = xslt.transform(Nokogiri::XML(@polyrex.to_xml)).to_s
|
@@ -75,13 +118,27 @@ class PolyrexFeedReader
|
|
75
118
|
@polyrex.save filepath, pretty: true
|
76
119
|
end
|
77
120
|
|
121
|
+
private
|
122
|
+
|
123
|
+
def recency(time)
|
124
|
+
|
125
|
+
case (Time.now - Time.parse(time))
|
126
|
+
when 1.second..5.minutes then '1hot'
|
127
|
+
when 5.minutes..4.hours then '2warm'
|
128
|
+
when 4.hours..1.week then '3cold'
|
129
|
+
when 1.week..1.month then '4coldx1week'
|
130
|
+
when 1.month..6.months then '5coldx1month'
|
131
|
+
else '6coldx6months'
|
132
|
+
end
|
133
|
+
end
|
134
|
+
|
78
135
|
end
|
79
136
|
|
80
137
|
if __FILE__ == $0 then
|
81
138
|
|
82
139
|
pfr = PolyrexFeedReader.new(px)
|
83
140
|
pfr.fetch_feeds
|
84
|
-
pfr.
|
141
|
+
pfr.refresh
|
85
142
|
pfr.save_xml 'feeds.xml'
|
86
143
|
pfr.save_html 'feeds.html'
|
87
144
|
|
data.tar.gz.sig
CHANGED
Binary file
|
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.5.
|
4
|
+
version: 0.5.1
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- James Robertson
|
@@ -29,7 +29,7 @@ cert_chain:
|
|
29
29
|
LxhpHfLSRfOWDFimU0YGVs8dISSHOneULhblAYTTb7tvv2Zr8wG/bdlLhWuwoz23
|
30
30
|
L5EDjzznPMmVNG60mdktue6PKdOEFp7N
|
31
31
|
-----END CERTIFICATE-----
|
32
|
-
date: 2013-12-
|
32
|
+
date: 2013-12-08 00:00:00.000000000 Z
|
33
33
|
dependencies:
|
34
34
|
- !ruby/object:Gem::Dependency
|
35
35
|
name: polyrex
|
metadata.gz.sig
CHANGED
Binary file
|