polyrex-feed-reader 0.5.2 → 0.5.3

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: a5f27be6e4a44e01988e983f8cf6cc98259db56d
4
- data.tar.gz: c4c86e0c350b1d798aaac6bc71d629f0655e1301
3
+ metadata.gz: 47a7aace6f3d7cc60230f93bf1a384a62dbfa7b4
4
+ data.tar.gz: eaa4c3d079ff38c22c86a3bd7c4af409173a1147
5
5
  SHA512:
6
- metadata.gz: c4f574865daf5c87601a154a4c384ccd05f6d85ddedf0886c51bef39f9307960321730981ee765594250f78461606572fdc1026367b081ebc59235a75196e621
7
- data.tar.gz: fd1f313fb46361bab4bafd7d39b57aac70983891902fa8201c67e8b81ffd1c3d9c15cd244bfecd57dd87f7b7d832f88262f264157ab5fbe13585812de9a4c1df
6
+ metadata.gz: 08b16d48dcad4f15803b6eeac7a09621cac5aad686d6a879b17d7a0316c5811e9d96e42f10f124efee83fb9f68bcab7ead6e6d2f58305d544b2fa670619b6ed3
7
+ data.tar.gz: da59709a80a748fbe1b832d48f72aac8ecfb0c4cfe6398ffff7176ed0ff33816dc456b68c56cc6ad661372cd65560314dc70f0bfceaa7086b08b2ab17b1f97c7
checksums.yaml.gz.sig CHANGED
Binary file
data.tar.gz.sig CHANGED
Binary file
data/lib/feeds.css ADDED
@@ -0,0 +1,26 @@
1
+ body {background-color: #39a}
2
+
3
+ body>div {
4
+ background-color: #19b;
5
+ float: left;
6
+ width: 200px;
7
+ }
8
+
9
+ body div div {
10
+ background-color: #9fa;
11
+ }
12
+
13
+ div div>ul {
14
+ background-color: #eba;
15
+ list-style-type: none;
16
+ margin: 0.1em; padding: 0.2em;
17
+ }
18
+
19
+ div div>ul>li {
20
+ background-color: #efa;
21
+ }
22
+
23
+ div div>ul>li a {
24
+ background-color: #aaa;
25
+ text-decoration: none;
26
+ }
data/lib/feeds.xsl CHANGED
@@ -3,29 +3,52 @@
3
3
  <xsl:output method="html" indent="yes" />
4
4
 
5
5
  <xsl:template match='feeds'>
6
- <xsl:element name="div">
6
+
7
+ <html>
8
+ <head>
9
+ <title><xsl:value-of select="summary/title" /></title>
10
+ <link rel="stylesheet" type="text/css" href="feeds.css" />
11
+ </head>
12
+
13
+ <body onload="" style="font-family:helvetica,arial;">
14
+
7
15
  <xsl:apply-templates select='summary'/>
8
16
  <xsl:apply-templates select='records'/>
9
- </xsl:element>
17
+ </body>
18
+ </html>
10
19
  </xsl:template>
11
20
 
21
+
22
+
12
23
  <xsl:template match='feeds/summary'>
13
24
  <h1><xsl:value-of select='title'/></h1>
14
25
  </xsl:template>
15
26
 
16
27
  <xsl:template match='records/column'>
28
+ <div id="{summary/id}">
29
+ <xsl:apply-templates select='summary'/>
30
+ <xsl:apply-templates select='records/section'/>
31
+ </div>
32
+ </xsl:template>
33
+
34
+ <xsl:template match='column/summary'>
35
+ <h2><xsl:value-of select='id'/></h2>
36
+ </xsl:template>
17
37
 
38
+ <xsl:template match='records/section'>
39
+ <div>
18
40
  <xsl:apply-templates select='summary'/>
19
41
  <xsl:apply-templates select='records/feed'>
20
42
  <xsl:sort select="summary/recent" order="ascending"/>
21
43
  </xsl:apply-templates>
22
-
44
+ </div>
23
45
  </xsl:template>
24
46
 
25
- <xsl:template match='column/summary'>
26
- <h2><xsl:value-of select='id'/></h2>
47
+ <xsl:template match='section/summary'>
48
+ <h2><xsl:value-of select='title'/></h2>
27
49
  </xsl:template>
28
50
 
51
+
29
52
  <xsl:template match='records/feed'>
30
53
 
31
54
  <xsl:apply-templates select='summary'>
@@ -47,7 +70,7 @@
47
70
  </xsl:template>
48
71
 
49
72
  <xsl:template match='item/summary'>
50
- <h4><xsl:value-of disable-output-escaping="yes" select='title'/></h4>
73
+ <a href="{link}" target="_blank"><h4><xsl:value-of disable-output-escaping="yes" select='title'/></h4></a>
51
74
  <p><xsl:value-of disable-output-escaping="yes" select='description'/></p>
52
75
  </xsl:template>
53
76
 
@@ -34,75 +34,75 @@ class PolyrexFeedReader
34
34
 
35
35
  def fetch_feeds()
36
36
 
37
- feeds = @polyrex.xpath('//column/records/feed/summary')
37
+ feeds = @polyrex.xpath('//column/records/section/records/feed/summary')
38
38
 
39
39
  feeds.each do |feed|
40
40
 
41
- puts "fetching %s ..." % feed.text('rss_url').inspect
41
+ puts "fetching %s " % feed.text('rss_url').inspect
42
42
 
43
43
  rtd = RSStoDynarex.new feed.text('rss_url')
44
44
  dynarex = rtd.to_dynarex
45
45
  dynarex.save "%s.xml" % feed.text('title')\
46
- .downcase.gsub(/\s/,'').gsub('-','_')
46
+ .downcase.gsub(/\s/,'').gsub(/\W/,'_')
47
47
  end
48
48
  end
49
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
-
58
50
  def refresh
59
51
 
60
52
  @polyrex.records.each do |column|
61
53
 
62
- column.records.each do |feed|
54
+ column.records.each do |section|
55
+
56
+ section.records.each do |feed|
63
57
 
64
- filename = "%s.xml" % feed.title\
65
- .downcase.gsub(/\s/,'').gsub('-','_')
58
+ filename = "%s.xml" % feed.title\
59
+ .downcase.gsub(/\s/,'').gsub(/\W/,'_')
66
60
 
67
- d = Dynarex.new filename
68
- feed.last_accessed = datetimestamp()
69
- feed.last_modified = datetimestamp() if feed.last_modified.empty?
61
+ d = Dynarex.new filename
62
+ feed.last_accessed = datetimestamp()
63
+ feed.last_modified = datetimestamp() if feed.last_modified.empty?
70
64
 
71
- items = d.to_h[0..2]
65
+ items = d.to_h[0..2]
72
66
 
73
- puts 'items.first[:title] ' + items.first[:title].inspect
74
- puts 'feed.item[0].title ' + feed.item[0].title.inspect
67
+ if feed.records.length > 0 and \
68
+ items.first[:title] == feed.item[0].title then
69
+ feed.recent = recency(feed.last_modified)
70
+ next
71
+ end
75
72
 
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
73
+ feed.recent = '1hot'
74
+ feed.records.remove_all
75
+ items.each.with_index do |x, i|
81
76
 
82
- feed.recent = '1hot'
83
- feed.records.remove_all
84
- items.each.with_index do |x, i|
77
+ h = {title: x[:title], link: x[:link]}
85
78
 
86
- h = {title: x[:title]}
79
+ if i == 0 then
87
80
 
88
- if i == 0 then
81
+ raw_desc = CGI.unescapeHTML(x[:description]).gsub(/<\/?[^>]*>/, "")
82
+ desc = raw_desc.length > 300 ? raw_desc[0..296] + ' ...' : raw_desc
83
+ h[:description] = desc
84
+ end
89
85
 
90
- raw_desc = CGI.unescapeHTML(x[:description]).gsub(/<\/?[^>]*>/, "")
91
- desc = raw_desc.length > 300 ? raw_desc[0..296] + ' ...' : raw_desc
92
- h[:description] = desc
86
+ feed.create.item h
93
87
  end
94
88
 
95
- feed.create.item h
89
+ feed.last_modified = datetimestamp()
96
90
  end
97
-
98
- feed.last_modified = datetimestamp()
99
-
100
91
  end
101
92
  end
102
93
  end
103
94
 
104
95
  alias update_doc refresh
105
96
 
97
+ def save_css(filepath='feeds.css')
98
+
99
+ lib = File.dirname(__FILE__)
100
+ css_buffer = File.read(lib + '/feeds.css')
101
+ #css_buffer = File.read('feeds.css')
102
+
103
+ File.write filepath, css_buffer
104
+ end
105
+
106
106
  def save_html(filepath='feeds.html')
107
107
 
108
108
  lib = File.dirname(__FILE__)
@@ -120,6 +120,14 @@ class PolyrexFeedReader
120
120
 
121
121
  private
122
122
 
123
+ def datetimestamp()
124
+
125
+ hour, minutes, day, year = Time.now.to_a.values_at 2,1,3,5
126
+ meridian, month = Time.now.strftime("%p %b").split
127
+ "%d:%02d%s %s %s %s" % [hour, minutes, meridian.downcase, \
128
+ day.ordinal, month, year]
129
+ end
130
+
123
131
  def recency(time)
124
132
 
125
133
  case (Time.now - Time.parse(time))
@@ -139,7 +147,8 @@ if __FILE__ == $0 then
139
147
  pfr = PolyrexFeedReader.new(px)
140
148
  pfr.fetch_feeds
141
149
  pfr.refresh
142
- pfr.save_xml 'feeds.xml'
150
+ pfr.save_xml 'feeds.xml'
143
151
  pfr.save_html 'feeds.html'
152
+ pfr.save_css 'feeds.css'
144
153
 
145
154
  end
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.2
4
+ version: 0.5.3
5
5
  platform: ruby
6
6
  authors:
7
7
  - James Robertson
@@ -81,6 +81,7 @@ extra_rdoc_files: []
81
81
  files:
82
82
  - lib/polyrex-feed-reader.rb
83
83
  - lib/feeds.xsl
84
+ - lib/feeds.css
84
85
  homepage: https://github.com/jrobertson/polyrex-feed-reader
85
86
  licenses:
86
87
  - MIT
metadata.gz.sig CHANGED
Binary file