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 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