mymedia-pages 0.3.1 → 0.4.0

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
  SHA256:
3
- metadata.gz: b73bbe8ccbfca9c049ebafb8920245647980534923ae57c9da9985e38e1cfb42
4
- data.tar.gz: 00f5c19e76daa03134c8bcd72c72e501638db8293f02d2f7e7ee85a4dc169ecc
3
+ metadata.gz: b0c08643b6ed8f8d1d995683aaa991064cd2257a3f1dec07025f26d0536e281d
4
+ data.tar.gz: 1e75399e2f80fef5212540d456e7ac905cd91a14de65ed77d6d401d0bc83db2c
5
5
  SHA512:
6
- metadata.gz: 30ea1ee77cc43b186c7b71e6318b62e5f2a09d7de8749f2078d39d0fe4cbc71c14640454a94c7939c960893c14e717ba7b59a7d00e0b97f9f19891e4f91c4870
7
- data.tar.gz: 975df95d7e5725ef13da16ff2740307c4171b4754f3cc4f6e92a5e35ffdae2cee83c3dfddbc1eede264cf494297139da432a68ea108a69e1dbd5caec934016ce
6
+ metadata.gz: 23195bd7994a9f2cdb40c2eab3373c89e8e20708e4f5ff055fa0def6ff7c93f178ba426aa1374a07cc5ca217e04d0905e9416d0e523611fae2c87ee989a9045a
7
+ data.tar.gz: 5acb6b674ce42dd2857d4316918c979ab5fab6ce419aee51b0ce15b321cd0c8a9320cb8719104577a4a1f072d5cfb9c9c8cc238e5da8ff068c0adcd2feb1eb5e
checksums.yaml.gz.sig CHANGED
Binary file
data/lib/mymedia-pages.rb CHANGED
@@ -8,40 +8,57 @@ require 'martile'
8
8
  require 'kramdown'
9
9
 
10
10
 
11
+ module PageReader
12
+
13
+ # read the source file
14
+ #
15
+ def read(filename)
16
+ File.read File.join(@media_src, escape(filename))
17
+ end
18
+
19
+ # view the published file
20
+ #
21
+ def view(filename)
22
+ File.read File.join(@home, @public_type, filename)
23
+ end
24
+
25
+ end
26
+
11
27
  class MyMediaPagesError < Exception
12
28
  end
13
29
 
14
30
  class MyMediaPages < MyMedia::Base
31
+ include MyMedia::IndexReader
32
+ include PageReader
15
33
 
16
34
  def initialize(media_type: media_type='pages',
17
35
  public_type: @public_type=media_type, ext: '.(html|md|txt)',
18
- config: nil, log: log, debug: false)
19
-
36
+ config: nil, log: nil, debug: false)
37
+
20
38
  super(media_type: media_type, public_type: @public_type=media_type,
21
39
  ext: '.(html|md|txt)', config: config, log: log)
22
40
 
23
- @media_src = "%s/media/%s" % [@home, media_type]
24
41
  @target_ext = '.html'
25
42
  @static_html = true
26
43
  @debug = debug
27
-
28
- end
29
-
44
+
45
+ end
46
+
30
47
  def copy_publish(filename, raw_msg='')
31
48
 
32
49
  @log.info 'MyMediaPagesinside copy_publish' if @log
33
50
  @filename = filename
34
51
  src_path = File.join(@media_src, filename)
35
52
 
36
- if File.basename(src_path)[/[a-z]\d{6}T\d{4}\.(?:html)/] then
53
+ if File.basename(src_path)[/[a-z]\d{6}T\d{4}\.(?:html)/] then
37
54
  return file_publish(src_path, raw_msg)
38
55
  end
39
56
 
40
57
  file_publish(src_path, raw_msg) do |destination, raw_destination|
41
58
 
42
59
  ext = File.extname(src_path)
43
-
44
- if ext[/\.(?:md|txt)/] then
60
+
61
+ if ext[/\.(?:md|txt)/] then
45
62
 
46
63
  raw_dest_xml = raw_destination.sub(/html$/,'xml')
47
64
  dest_xml = destination.sub(/html$/,'xml')
@@ -49,7 +66,7 @@ class MyMediaPages < MyMedia::Base
49
66
 
50
67
 
51
68
  FileUtils.cp src_path, x_destination
52
-
69
+
53
70
  source = x_destination[/\/r\/#{@public_type}.*/]
54
71
  s = @website + source
55
72
 
@@ -69,8 +86,8 @@ class MyMediaPages < MyMedia::Base
69
86
  File.write destination, xsltproc("#{@home}/#{@www}/xsl/#{@public_type}.xsl", dest_xml)
70
87
 
71
88
  html_filename = basename(@media_src, src_path).sub(/(?:md|txt)$/,'html')
72
-
73
-
89
+
90
+
74
91
  xml_filename = html_filename.sub(/html$/,'xml')
75
92
 
76
93
  FileUtils.mkdir_p File.dirname(File.join(File.dirname(destination), html_filename))
@@ -80,66 +97,68 @@ class MyMediaPages < MyMedia::Base
80
97
  FileUtils.cp dest_xml, File.join(File.dirname(dest_xml), xml_filename)
81
98
 
82
99
  tags = doc.root.xpath('summary/tags/tag/text()')
83
- raw_msg = "%s %s" % [doc.root.text('summary/title'),
100
+ raw_msg = "%s %s" % [doc.root.text('summary/title'),
84
101
  tags.map {|x| "#%s" % x }.join(' ')]
85
-
86
-
102
+
103
+
87
104
  @log.info "msg: %s tags: %s" % [raw_msg, tags.inspect]if @log
88
105
 
89
106
 
90
107
  else
91
-
108
+
92
109
  html_filename = basename(@media_src, src_path)
93
-
110
+
94
111
  if html_filename =~ /\// then
95
112
  FileUtils.mkdir_p File.dirname(html_filename)
96
- end
97
-
113
+ end
114
+
98
115
  FileUtils.cp src_path, destination
99
- FileUtils.cp src_path, raw_destination
100
-
116
+ FileUtils.cp src_path, raw_destination
117
+
101
118
  raw_msg = File.read(destination)[/<title>([^<]+)<\/title>/,1]
102
119
  end
103
-
120
+
104
121
  if not File.basename(src_path)[/[a-z]\d{6}T\d{4}\.(?:html|md|txt)/] then
105
-
122
+
106
123
  @log.info 'MyMediaPages::copy_publish before FileUtils' if @log
107
124
  FileUtils.mkdir_p File.dirname(@home + "/#{@public_type}/" + html_filename)
108
125
  FileUtils.cp destination, @home + "/#{@public_type}/" + html_filename
109
126
 
110
127
  if xml_filename then
111
- FileUtils.cp dest_xml, @home + "/#{@public_type}/" + xml_filename
128
+ FileUtils.cp dest_xml, @home + "/#{@public_type}/" + xml_filename
112
129
  end
113
130
 
114
- static_filepath = @home + "/#{@public_type}/static.xml"
115
- x_filename = @static_html == true ? html_filename : xml_filename
131
+ static_filepath = @home + "/#{@public_type}/static.xml"
132
+ x_filename = @static_html == true ? html_filename : xml_filename
116
133
  target_url = [@website, @public_type, x_filename].join('/')
117
-
134
+
118
135
  if @log then
119
136
  @log.info 'MyMediaPages::copy_publish ->file_publish ' +
120
137
  'before publish_dynarex'
121
138
  end
122
-
123
- publish_dynarex(static_filepath, {title: raw_msg, url: target_url })
139
+
140
+ publish_dynarex(static_filepath, {title: raw_msg, url: target_url })
124
141
 
125
142
  end
126
143
 
127
144
  [raw_msg, target_url]
128
- end
145
+ end
129
146
 
130
147
  end
131
-
132
-
148
+
149
+
133
150
  private
134
-
151
+
135
152
  def htmlize(raw_buffer)
136
153
 
137
154
  buffer = Martile.new(raw_buffer, ignore_domainlabel: @domain).to_s
138
-
139
155
  lines = buffer.strip.lines.to_a
140
156
  puts 'lines: ' + lines.inspect if @debug
141
157
 
142
158
  raw_title = lines.shift.chomp
159
+ puts 'lines 2): ' + lines.inspect if @debug
160
+
161
+ raise MyMediaPagesError, 'invalid input file' if lines.empty?
143
162
  raw_tags = lines.pop[/[^>]+$/].split
144
163
 
145
164
  s = lines.join
@@ -147,7 +166,7 @@ class MyMediaPages < MyMedia::Base
147
166
  html = Kramdown::Document.new(s).to_html
148
167
  [raw_title, raw_tags, html]
149
168
 
150
- end
169
+ end
151
170
 
152
171
  def microblog_title(doc)
153
172
 
@@ -155,7 +174,7 @@ class MyMediaPages < MyMedia::Base
155
174
 
156
175
  title = summary.text('title')
157
176
  tags = summary.xpath('tags/tag/text()').map{|x| '#' + x}.join(' ')
158
-
177
+
159
178
  url = "%s/%s/yy/mm/dd/hhmmhrs.html" % [@website, @media_type]
160
179
  full_title = (url + title + ' ' + tags)
161
180
 
@@ -166,17 +185,17 @@ class MyMediaPages < MyMedia::Base
166
185
 
167
186
  title + ' ' + tags
168
187
 
169
- end
170
-
171
-
188
+ end
189
+
190
+
172
191
  def modify_xml(docx, filepath, xslpath='r/')
173
192
 
174
193
  if @log then
175
194
  @log.info 'mymedia_pages: inside modify_xml: docx.xml: ' + docx.xml.inspect
176
195
  end
177
-
196
+
178
197
  doc = Rexle.new docx.xml pretty: false
179
-
198
+
180
199
  if @log then
181
200
  @log.info 'doc.xml: ' + doc.xml.inspect if @log
182
201
  end
@@ -189,38 +208,39 @@ class MyMediaPages < MyMedia::Base
189
208
  yield(doc) if block_given?
190
209
  File.write filepath, doc.xml(declaration: true, pretty: false)
191
210
  end
192
-
211
+
193
212
  def xml(raw_buffer, filename, original_file)
194
213
 
195
214
  begin
196
215
 
197
-
216
+ puts 'before htmlize'
198
217
  raw_title, raw_tags, html = htmlize(raw_buffer)
218
+ puts 'after htmlize'
199
219
 
200
- doc = Rexle.new("<body>%s</body>" % html)
220
+ doc = Rexle.new("<body>%s</body>" % html)
201
221
 
202
222
  doc.root.xpath('//a').each do |x|
203
223
 
204
224
  next unless x.attributes[:href] and x.attributes[:href].empty?
205
-
225
+
206
226
  new_link = x.text.gsub(/\s/,'_')
207
227
 
208
228
  x.attributes[:href] = "#{@dynamic_website}/do/#{@public_type}/new/" + new_link
209
229
  x.attributes[:class] = 'new'
210
230
  x.attributes[:title] = x.text + ' (page does not exist)'
211
231
  end
212
-
232
+
213
233
  body = doc.root.children.join
214
234
 
215
- # A special tag can be used to represent a metatag which indicates if
216
- # the document access is to be made public. The special tag can either
235
+ # A special tag can be used to represent a metatag which indicates if
236
+ # the document access is to be made public. The special tag can either
217
237
  # be a 'p' or 'public'
218
238
 
219
239
  access = raw_tags.last[/^(?:p|public)$/] ? raw_tags.pop : nil
220
-
240
+
221
241
  xml = RexleBuilder.new
222
-
223
- a = xml.page do
242
+
243
+ a = xml.page do
224
244
  xml.summary do
225
245
  xml.title raw_title
226
246
  xml.tags { raw_tags.each {|tag| xml.tag tag }}
@@ -231,20 +251,20 @@ class MyMediaPages < MyMedia::Base
231
251
  xml.published Time.now.strftime("%d-%m-%Y %H:%M")
232
252
  xml.filetitle original_file[/.*(?=\.\w+$)/]
233
253
  end
234
-
254
+
235
255
  xml.body body
236
256
  end
237
-
238
-
257
+
258
+
239
259
  rescue
240
260
  raise MyMediaPagesError, 'xml(): ' + ($!).inspect
241
261
  end
242
262
 
243
263
  return Rexle.new(a)
244
- end
245
-
246
- def xsltproc(xslpath, xmlpath)
247
-
264
+ end
265
+
266
+ def xsltproc(xslpath, xmlpath)
267
+
248
268
  Nokogiri::XSLT(File.open(xslpath))\
249
269
  .transform(Nokogiri::XML(File.open(xmlpath))).to_xhtml(indent: 0)
250
270
  end
data.tar.gz.sig CHANGED
@@ -1,4 +1,2 @@
1
- ���2
2
- ��^�Sl��u�����O揈�!����HU"<�R���$�Π�����&zPMf�<��B���#/�JrCz���lsc��ؙ��v�hG"tj�uE
3
- /7Dn����/
4
- &3G�S9���
1
+ 7��-��ҽ� !����LM�Br�y
2
+ ��'C>2�u�؎Q��Zb�h�xMc�[{+�l��mo"/b�q�l��xqkG��L� y�ށk�
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: mymedia-pages
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.3.1
4
+ version: 0.4.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - James Robertson
@@ -35,48 +35,48 @@ cert_chain:
35
35
  jSG8iFV4kJofCyHyfW6zyZy0d22o23Syxam2rIESaal2RPL7gADDTc8XBe/sFeWr
36
36
  A7Ido2/5qg5YDVloSOHTfzZj
37
37
  -----END CERTIFICATE-----
38
- date: 2021-12-13 00:00:00.000000000 Z
38
+ date: 2022-02-03 00:00:00.000000000 Z
39
39
  dependencies:
40
40
  - !ruby/object:Gem::Dependency
41
41
  name: mymedia
42
42
  requirement: !ruby/object:Gem::Requirement
43
43
  requirements:
44
- - - "~>"
45
- - !ruby/object:Gem::Version
46
- version: '0.2'
47
44
  - - ">="
48
45
  - !ruby/object:Gem::Version
49
- version: 0.2.14
46
+ version: 0.3.0
47
+ - - "~>"
48
+ - !ruby/object:Gem::Version
49
+ version: '0.3'
50
50
  type: :runtime
51
51
  prerelease: false
52
52
  version_requirements: !ruby/object:Gem::Requirement
53
53
  requirements:
54
- - - "~>"
55
- - !ruby/object:Gem::Version
56
- version: '0.2'
57
54
  - - ">="
58
55
  - !ruby/object:Gem::Version
59
- version: 0.2.14
56
+ version: 0.3.0
57
+ - - "~>"
58
+ - !ruby/object:Gem::Version
59
+ version: '0.3'
60
60
  - !ruby/object:Gem::Dependency
61
61
  name: martile
62
62
  requirement: !ruby/object:Gem::Requirement
63
63
  requirements:
64
64
  - - ">="
65
65
  - !ruby/object:Gem::Version
66
- version: 1.1.0
66
+ version: 1.5.0
67
67
  - - "~>"
68
68
  - !ruby/object:Gem::Version
69
- version: '1.1'
69
+ version: '1.5'
70
70
  type: :runtime
71
71
  prerelease: false
72
72
  version_requirements: !ruby/object:Gem::Requirement
73
73
  requirements:
74
74
  - - ">="
75
75
  - !ruby/object:Gem::Version
76
- version: 1.1.0
76
+ version: 1.5.0
77
77
  - - "~>"
78
78
  - !ruby/object:Gem::Version
79
- version: '1.1'
79
+ version: '1.5'
80
80
  - !ruby/object:Gem::Dependency
81
81
  name: kramdown
82
82
  requirement: !ruby/object:Gem::Requirement
@@ -98,7 +98,7 @@ dependencies:
98
98
  - !ruby/object:Gem::Version
99
99
  version: 2.3.1
100
100
  description:
101
- email: james@jamesrobertson.eu
101
+ email: digital.robertson@gmail.com
102
102
  executables: []
103
103
  extensions: []
104
104
  extra_rdoc_files: []
metadata.gz.sig CHANGED
Binary file