polyrex-feed-reader 0.5.0 → 0.5.1

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: d2364e173da28ab14324d98fccf4b354425c0ff0
4
- data.tar.gz: 461a2e062a34e5129edfd6af447c5f804f5ea3fa
3
+ metadata.gz: 516e54704a686ab3edbe096612612f790da62c54
4
+ data.tar.gz: 28b9b26bea687eefe6fb8e0ef6379d8ca53d154e
5
5
  SHA512:
6
- metadata.gz: cce648e7b9d68215de24b57f115de5b8df4b380b31117fdff3c391f5ff019e4bf470d9c58ca98eeb1ae3ad1dec3d5e350f2dc9d18e0b6b5b38846caace16ec6c
7
- data.tar.gz: 0e9a871c24819b6df8b9d3911161c675ab3b167fa83ba74f95774ca1a3076136ae1114b2b8973233a1fdc44e716fd6d4c3f98ab52defc68518de04bfa831f2a7
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
- <xsl:apply-templates select='summary'/>
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
- <h3><xsl:value-of select='title'/></h3>
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>
@@ -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
- d.to_h[0..2].each.with_index do |x, i|
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
- #xsl_buffer = File.read('feeds.xsl')
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.update_doc
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.0
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-07 00:00:00.000000000 Z
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