mymedia-pages 0.1.1 → 0.1.2
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 +4 -4
- checksums.yaml.gz.sig +0 -0
- data.tar.gz.sig +0 -0
- data/lib/mymedia-pages.rb +111 -23
- metadata +2 -2
- metadata.gz.sig +0 -0
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: a11ed7245662312bd00c2819dcbfdca0d9f7b988
|
4
|
+
data.tar.gz: 67d1a34083a0940f4724df2888cdde16c8e60d3a
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 2523bd19e79fd919921f51c30ee5739b327baa313d73157d10ae777435847980c28493e9c6647e91ccf174481a84b41be79ea4565572fa9b82c7717f8af34c0f
|
7
|
+
data.tar.gz: a99dadae12940d2e4c4bb41716666590230727644c5098a0ea67281e7e893ced5fce84ca55f16fb9f1b2416acaa8ff457769f92e287643ba3e47f3ebbfec478e
|
checksums.yaml.gz.sig
CHANGED
Binary file
|
data.tar.gz.sig
CHANGED
Binary file
|
data/lib/mymedia-pages.rb
CHANGED
@@ -6,17 +6,15 @@
|
|
6
6
|
require 'mymedia-blogbase'
|
7
7
|
|
8
8
|
|
9
|
-
class MyMediaPages <
|
9
|
+
class MyMediaPages < MyMedia::Base
|
10
10
|
|
11
11
|
def initialize(config: nil)
|
12
12
|
|
13
|
-
super(media_type: 'pages', public_type: @public_type='pages', ext: '.(html|md)', config: config)
|
13
|
+
super(media_type: 'pages', public_type: @public_type='pages', ext: '.(html|md|txt)', config: config)
|
14
14
|
@media_src = "%s/media/pages" % @home
|
15
|
-
|
16
|
-
|
17
|
-
|
18
|
-
msg = super(src_path, raw_msg)
|
19
|
-
end
|
15
|
+
@target_ext = '.html'
|
16
|
+
|
17
|
+
end
|
20
18
|
|
21
19
|
def copy_publish(filename, raw_msg='')
|
22
20
|
|
@@ -32,18 +30,19 @@ class MyMediaPages < MyMediaBlogBase
|
|
32
30
|
#FileUtils.cp src_path, destination
|
33
31
|
#FileUtils.cp src_path, raw_destination
|
34
32
|
|
35
|
-
|
36
|
-
|
33
|
+
ext = File.extname(src_path)
|
34
|
+
|
35
|
+
if ext[/\.(?:md|txt)/] then
|
36
|
+
|
37
37
|
raw_dest_xml = raw_destination.sub(/html$/,'xml')
|
38
|
-
|
39
|
-
FileUtils.cp src_path,
|
38
|
+
x_destination = raw_destination.sub(/html$/,ext)
|
39
|
+
FileUtils.cp src_path, x_destination
|
40
40
|
|
41
|
-
source =
|
41
|
+
source = x_destination[/\/r\/#{@public_type}.*/]
|
42
42
|
s = @website + source
|
43
|
-
|
43
|
+
relative_path = s[/https?:\/\/[^\/]+([^$]+)/,1]
|
44
44
|
|
45
|
-
doc = xml(File.open(src_path, 'r').read,
|
46
|
-
absolute_path, filename)
|
45
|
+
doc = xml(File.open(src_path, 'r').read, relative_path, filename)
|
47
46
|
|
48
47
|
modify_xml(doc, raw_dest_xml)
|
49
48
|
|
@@ -57,19 +56,23 @@ class MyMediaPages < MyMediaBlogBase
|
|
57
56
|
|
58
57
|
File.write destination,
|
59
58
|
Nokogiri::XSLT(xsl).transform(Nokogiri::XML(File.read raw_dest_xml))
|
60
|
-
|
61
|
-
|
62
|
-
|
59
|
+
|
60
|
+
else
|
61
|
+
FileUtils.cp src_path, destination
|
62
|
+
FileUtils.cp src_path, raw_destination
|
63
63
|
end
|
64
|
-
|
65
64
|
|
66
|
-
if not File.basename(src_path)[/[pw]\d{6}T\d{4}\.(?:html|md)/] then
|
67
|
-
|
65
|
+
if not File.basename(src_path)[/[pw]\d{6}T\d{4}\.(?:html|md|txt)/] then
|
66
|
+
|
67
|
+
html_filename = File.basename(src_path).sub(/(?:md|txt)$/,'html')
|
68
68
|
|
69
69
|
FileUtils.cp destination, @home + "/#{@public_type}/" + html_filename
|
70
|
+
|
70
71
|
html_filepath = @home + "/#{@public_type}/static.xml"
|
71
72
|
target_url = [@website, @public_type, html_filename].join('/')
|
73
|
+
|
72
74
|
publish_dynarex(html_filepath, {title: html_filename, url: target_url })
|
75
|
+
|
73
76
|
tags = doc.root.xpath('summary/tags/tag/text()')
|
74
77
|
|
75
78
|
raw_msg = "%s %s" % [doc.root.text('summary/title'),
|
@@ -82,15 +85,100 @@ class MyMediaPages < MyMediaBlogBase
|
|
82
85
|
|
83
86
|
end
|
84
87
|
|
88
|
+
|
85
89
|
private
|
86
90
|
|
91
|
+
def htmlize(raw_buffer)
|
92
|
+
|
93
|
+
buffer = Martile.new(raw_buffer).to_html
|
94
|
+
|
95
|
+
lines = buffer.strip.lines.to_a
|
96
|
+
raw_title = lines.shift.chomp
|
97
|
+
raw_tags = lines.pop[/[^>]+$/].split
|
98
|
+
|
99
|
+
s = lines.join.gsub(/(?:^\[|\s\[)[^\]]+\]\((https?:\/\/[^\s]+)/) do |x|
|
100
|
+
|
101
|
+
next x if x[/#{@domain}/]
|
102
|
+
s2 = x[/https?:\/\/([^\/]+)/,1].split(/\./)
|
103
|
+
r = s2.length >= 3 ? s2[1..-1] : s2
|
104
|
+
"%s [%s]" % [x, r.join('.')]
|
105
|
+
end
|
106
|
+
|
107
|
+
html = RDiscount.new(s).to_html
|
108
|
+
[raw_title, raw_tags, html]
|
109
|
+
|
110
|
+
end
|
111
|
+
|
112
|
+
def microblog_title(doc)
|
113
|
+
|
114
|
+
summary = doc.root.element('summary')
|
115
|
+
title = summary.text('title')
|
116
|
+
tags = summary.xpath('tags/tag/text()').map{|x| '#' + x}.join ' '
|
117
|
+
|
118
|
+
url = "%s/%s/yy/mm/dd/hhmmhrs.html" % [@website, @media_type]
|
119
|
+
full_title = (url + title + ' ' + tags)
|
120
|
+
|
121
|
+
if full_title.length > 140 then
|
122
|
+
extra = full_title.length - 140
|
123
|
+
title = title[0..-(extra)] + ' ...'
|
124
|
+
end
|
125
|
+
|
126
|
+
title + ' ' + tags
|
127
|
+
|
128
|
+
end
|
129
|
+
|
130
|
+
|
87
131
|
def modify_xml(doc, filepath)
|
88
132
|
|
89
|
-
raw_msg =
|
133
|
+
raw_msg = microblog_title(doc)
|
90
134
|
doc.instructions.push %w(xml-stylesheet title='XSL_formatting' type='text/xsl') + ["href='#{@website}/r/xsl/#{@public_type}.xsl'"]
|
91
135
|
doc = yield(doc) if block_given?
|
92
136
|
File.write filepath, doc.xml(pretty: true)
|
93
137
|
end
|
94
|
-
|
138
|
+
|
139
|
+
def xml(raw_buffer, filename, original_file)
|
140
|
+
|
141
|
+
begin
|
142
|
+
|
143
|
+
raw_title, raw_tags, html = htmlize(raw_buffer)
|
144
|
+
|
145
|
+
doc = Rexle.new("<body>%s</body>" % html)
|
146
|
+
|
147
|
+
doc.root.xpath('//a').each do |x|
|
148
|
+
|
149
|
+
next unless x.attributes[:href].empty?
|
150
|
+
|
151
|
+
new_link = x.text.gsub(/\s/,'_')
|
152
|
+
|
153
|
+
x.attributes[:href] = "#{@dynamic_website}/do/#{@public_type}/new/" + new_link
|
154
|
+
x.attributes[:class] = 'new'
|
155
|
+
x.attributes[:title] = x.text + ' (page does not exist)'
|
156
|
+
end
|
157
|
+
|
158
|
+
body = doc.root.children.join
|
159
|
+
|
160
|
+
|
161
|
+
xml = RexleBuilder.new
|
162
|
+
|
163
|
+
a = xml.page do
|
164
|
+
xml.summary do
|
165
|
+
xml.title raw_title
|
166
|
+
xml.tags { raw_tags.each {|tag| xml.tag tag }}
|
167
|
+
xml.source_url filename
|
168
|
+
xml.source_file File.basename(filename)
|
169
|
+
xml.original_file original_file
|
170
|
+
xml.published Time.now.strftime("%d-%m-%Y %H:%M")
|
171
|
+
end
|
172
|
+
|
173
|
+
xml.body body
|
174
|
+
end
|
175
|
+
|
176
|
+
rescue
|
177
|
+
@logger.debug "mymedia-blogbase.rb: html: " + ($!).to_s
|
178
|
+
end
|
179
|
+
|
180
|
+
return Rexle.new(a)
|
181
|
+
end
|
182
|
+
|
95
183
|
|
96
184
|
end
|
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.1.
|
4
|
+
version: 0.1.2
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- James Robertson
|
@@ -31,7 +31,7 @@ cert_chain:
|
|
31
31
|
R8qQYTqUH5uyN1gXTamDXNnXrSWNIRgATqBFU0Rk4ia1O2X6/oMnJctbKR+A3n78
|
32
32
|
zZLvJwXE0u524g==
|
33
33
|
-----END CERTIFICATE-----
|
34
|
-
date: 2014-10-
|
34
|
+
date: 2014-10-12 00:00:00.000000000 Z
|
35
35
|
dependencies:
|
36
36
|
- !ruby/object:Gem::Dependency
|
37
37
|
name: mymedia-blogbase
|
metadata.gz.sig
CHANGED
Binary file
|