liveblog 0.8.9 → 0.9.0

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: 2a8bd9395329d9f09be3114d3970694166b24070
4
- data.tar.gz: 3d6abc5e7f655f378a0473ab802b8faba6f3617a
3
+ metadata.gz: 33c53e82127667a413e45929401e58109ff74124
4
+ data.tar.gz: 9930c0e34ab16183448268038141a08e539966d4
5
5
  SHA512:
6
- metadata.gz: 468168a13da1f08e29450cf8a65e6e76c225a3130266bf31149b7a55030a83827fd1a5711638689a6b90dabe44f471392b91bbc4f054e73aa8c4d9df24150f72
7
- data.tar.gz: c655368390171c445b035a22141a71137a311b2f7686b52443a2fe14d5dbc5617969dca3eb90cb6a9d5cc1702fd5c0e64019e6d677fadf82b831505c35c46eb3
6
+ metadata.gz: 1b216c8fe6e62cbb61b929a22762fa9baca399efa038e9242775f0cc8bed6418426133dcae9c8b192ee1dd93bed27ab5133d657882fec89bf4c56c085403326b
7
+ data.tar.gz: 68c10823048b75b103ffa8979f48299db547e99ffc1fd22e91bc93613cf9ba98adb2ccad26048dcbc2061c7f5ef3b5004f996c68b8506d51ecbaf78040364940
checksums.yaml.gz.sig CHANGED
Binary file
data.tar.gz.sig CHANGED
@@ -1 +1,3 @@
1
- �Bڿ[��w�1j��IN���Gjo��������(eE�U~i��bq���������B|�����t�$��� h7����ӆ��TY�5����p�D��Q99�&
1
+ %'3��?��[�밬)?f ��Izl.O-��-k��7bV��$F_|s�4U��
2
+ �N3��\5�$85�k�#���Jո���� ~&��;�7�m
3
+ ���޻�ܺ}��=�\���tt��zI�ZI�*yl@T8��1�� �U5hH�U�q��!)��{)99X>�j�<� ��{iW��q���C'��,]@hUW������cȷ���P�_@G8�� ����=�H �c�(��sO�� �eٝ�0t�ۨ�=�"�C
data/lib/liveblog.rb CHANGED
@@ -32,8 +32,10 @@ class LiveBlog
32
32
 
33
33
  h = SimpleConfig.new(config).to_h
34
34
 
35
- dir, @urlbase, @edit_url, @css_url, @xsl_path, @xsl_url, @bannertext = \
36
- %i(dir urlbase edit_url css_url xsl_path xsl_url bannertext).map{|x| h[x]}
35
+ dir, @urlbase, @edit_url, @css_url, @xsl_path, \
36
+ @xsl_url, @bannertext, @rss_title = \
37
+ %i(dir urlbase edit_url css_url xsl_path xsl_url bannertext rss_title)\
38
+ .map{|x| h[x]}
37
39
 
38
40
 
39
41
  Dir.chdir dir
@@ -147,6 +149,65 @@ EOF
147
149
 
148
150
  alias import new_file
149
151
 
152
+ def save_rss()
153
+
154
+ buffer = File.read File.join(path(), 'raw_formatted.xml')
155
+ doc = Rexle.new buffer
156
+
157
+ summary = doc.root.element 'summary'
158
+
159
+ dx = Dynarex.new 'liveblog[title,desc,link, pubdate, '\
160
+ + 'lastbuild_date, lang]/entry(title, desc, created_at, uri, guid)'
161
+
162
+ dx.title = @rss_title || 'LiveBlog'
163
+ dx.desc = 'Latest LiveBlog posts fetched from ' + @urlbase
164
+ dx.link = @urlbase
165
+ dx.order = 'descending'
166
+ dx.pubdate = rss_timestamp(summary.text('published'))
167
+ dx.lastbuild_date = Time.now.strftime("%a, %-d %b %Y %H:%M:%S %Z")
168
+ dx.lang = 'en-gb'
169
+
170
+ doc.root.xpath('records/section/section/details').each do |x|
171
+
172
+ a = x.elements.to_a
173
+ h1 = a.shift.element('h1')
174
+ hashtag = h1.text[/#\w+$/]
175
+ created_at = rss_timestamp(h1.attributes[:created])
176
+
177
+ a.each do |node|
178
+
179
+ node.attributes.delete :created
180
+ node.attributes.delete :last_modified
181
+
182
+ node.traverse do |x|
183
+
184
+ x.attributes.delete :created
185
+ x.attributes.delete :last_modified
186
+
187
+ end
188
+ end
189
+
190
+ uri = doc.root.element('summary/link/text()') + hashtag
191
+
192
+ record = {
193
+ title: h1.text,
194
+ desc: a.map(&:xml).join("\n"),
195
+ created_at: created_at,
196
+ uri: uri,
197
+ guid: uri
198
+ }
199
+
200
+ dx.create record
201
+ end
202
+
203
+ dx.xslt_schema = 'channel[title:title,description:desc,link:link,'\
204
+ + 'pubDate:pubdate,lastBuildDate:lastbuild_date,language:lang]/'\
205
+ + 'item(title:title,link:uri,description:desc,pubDate:created_at,'\
206
+ + 'guid:guid)'
207
+ File.write 'rss.xml', dx.to_rss
208
+
209
+ end
210
+
150
211
  private
151
212
 
152
213
 
@@ -177,7 +238,8 @@ EOF
177
238
  css_url: '/liveblog/liveblog.css',
178
239
  xsl_path: File.join(dir, 'liveblog.xsl'),
179
240
  xsl_url: '/liveblog/liveblog.xsl',
180
- bannertext: ''
241
+ bannertext: '',
242
+ rss_title: "John Smith's LiveBlog"
181
243
  }
182
244
  end
183
245
 
@@ -199,6 +261,7 @@ EOF
199
261
  @dx.save File.join(path(), 'index.xml')
200
262
  File.write File.join(path(), 'index.txt'), @dx.to_s
201
263
  save_html()
264
+ save_rss()
202
265
  end
203
266
 
204
267
  def save_html()
@@ -219,7 +282,8 @@ EOF
219
282
  add summary, 'published', Time.now.strftime("%d-%m-%Y %H:%M")
220
283
  add summary, 'prev_day', static_urlpath(@d-1)
221
284
  add summary, 'next_day', @d == Date.today ? '' : static_urlpath(@d+1)
222
- add summary, 'bannertext', @bannertext
285
+ add summary, 'bannertext', @bannertext
286
+ add summary, 'link', static_urlpath(@d)
223
287
 
224
288
  tags = Rexle::Element.new('tags')
225
289
 
@@ -260,9 +324,7 @@ EOF
260
324
  ]
261
325
 
262
326
  File.write formatted2_filepath, doc.xml(pretty: true)
263
-
264
-
265
-
327
+
266
328
  # save the related CSS file locally if the file doesn't already exist
267
329
  if not File.exists? 'liveblog.css' then
268
330
  FileUtils.cp File.join(File.dirname(__FILE__), 'liveblog.css'),\
@@ -344,4 +406,8 @@ EOF
344
406
  t.strftime "<time>%-I:%M%P</time>"
345
407
  end
346
408
 
409
+ def rss_timestamp(s)
410
+ Time.parse(s).strftime("%a, %-d %b %Y %H:%M:%S %Z")
411
+ end
412
+
347
413
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: liveblog
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.8.9
4
+ version: 0.9.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - James Robertson
@@ -31,7 +31,7 @@ cert_chain:
31
31
  WoOSxvsTN7qoA8F0W4mkDpf+HhHxBOLTPykcHMIlx2gILLnNraaZ1rJlZAqWABGj
32
32
  v8lGgeeqqjd5QA==
33
33
  -----END CERTIFICATE-----
34
- date: 2015-03-29 00:00:00.000000000 Z
34
+ date: 2015-03-30 00:00:00.000000000 Z
35
35
  dependencies:
36
36
  - !ruby/object:Gem::Dependency
37
37
  name: dynarex
@@ -42,7 +42,7 @@ dependencies:
42
42
  version: '1.5'
43
43
  - - ">="
44
44
  - !ruby/object:Gem::Version
45
- version: 1.5.11
45
+ version: 1.5.13
46
46
  type: :runtime
47
47
  prerelease: false
48
48
  version_requirements: !ruby/object:Gem::Requirement
@@ -52,7 +52,7 @@ dependencies:
52
52
  version: '1.5'
53
53
  - - ">="
54
54
  - !ruby/object:Gem::Version
55
- version: 1.5.11
55
+ version: 1.5.13
56
56
  - !ruby/object:Gem::Dependency
57
57
  name: martile
58
58
  requirement: !ruby/object:Gem::Requirement
@@ -62,7 +62,7 @@ dependencies:
62
62
  version: '0.5'
63
63
  - - ">="
64
64
  - !ruby/object:Gem::Version
65
- version: 0.5.10
65
+ version: 0.5.11
66
66
  type: :runtime
67
67
  prerelease: false
68
68
  version_requirements: !ruby/object:Gem::Requirement
@@ -72,7 +72,7 @@ dependencies:
72
72
  version: '0.5'
73
73
  - - ">="
74
74
  - !ruby/object:Gem::Version
75
- version: 0.5.10
75
+ version: 0.5.11
76
76
  - !ruby/object:Gem::Dependency
77
77
  name: simple-config
78
78
  requirement: !ruby/object:Gem::Requirement
metadata.gz.sig CHANGED
@@ -1 +1 @@
1
- ]XӰ iA%W��6oL��H��'�����w�޼ �Oǂ�2����s�hZf��ob����P��ğ{�� G`���X�9N�r����)�kx���49�����D�u�0)U�m��L�s����VH���a�J�=��e�iš�9sǹ5�
1
+ ���j 00��^���ɖwtf�|�=?g