jekyll-import 0.15.0 → 0.16.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 +4 -4
- data/lib/jekyll-import/importers/blogger.rb +1 -3
- data/lib/jekyll-import/importers/drupal_common.rb +5 -5
- data/lib/jekyll-import/importers/marley.rb +1 -3
- data/lib/jekyll-import/importers/roller.rb +74 -51
- data/lib/jekyll-import/importers/s9y.rb +1 -3
- data/lib/jekyll-import/importers/s9y_database.rb +2 -6
- data/lib/jekyll-import/importers/wordpress.rb +2 -2
- data/lib/jekyll-import/version.rb +1 -1
- metadata +4 -4
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 6130f83944ddf0b9014aadff407cbd2645a7fd3af8ffff14f8a07f951ca36b1d
|
4
|
+
data.tar.gz: f1a0359e7d7edce0dcfbca231febe10df7459cba5f2af3ad0a2cb8f63c2fc1bc
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 3650b1cc1cedfa296c5bb0b8db5fe172d32d8f67168554280a5674deb25a0595e5005288a3a2faefb01cbc109c994f41ee7477cd09c3947f4e3db68782b924ab
|
7
|
+
data.tar.gz: 3cd40ad126a4890d2dde5b84f2bef3dc6be9d4f07465a42669fe5c4e3137ac57965e32a2182ddbdc8ab1847082a166a6462e4d53675682383991f23968ba8219
|
@@ -139,9 +139,7 @@ module JekyllImport
|
|
139
139
|
if attrs["rel"] == "alternate" && attrs["type"] == "text/html"
|
140
140
|
@in_entry_elem[:meta][:original_url] = attrs["href"]
|
141
141
|
elsif attrs["rel"] == "replies" && attrs["type"] == "text/html"
|
142
|
-
unless @in_entry_elem[:meta][:original_url]
|
143
|
-
@in_entry_elem[:meta][:original_url] = attrs["href"].sub(%r!\#comment-form$!, "")
|
144
|
-
end
|
142
|
+
@in_entry_elem[:meta][:original_url] = attrs["href"].sub(%r!\#comment-form$!, "") unless @in_entry_elem[:meta][:original_url]
|
145
143
|
end
|
146
144
|
end
|
147
145
|
when "media:thumbnail"
|
@@ -56,11 +56,11 @@ module JekyllImport
|
|
56
56
|
prefix = options.fetch("prefix", DEFAULTS["prefix"])
|
57
57
|
types = options.fetch("types", DEFAULTS["types"])
|
58
58
|
|
59
|
-
if engine == "postgresql"
|
60
|
-
|
61
|
-
|
62
|
-
|
63
|
-
|
59
|
+
db = if engine == "postgresql"
|
60
|
+
Sequel.postgres(dbname, :user => user, :password => pass, :host => host, :encoding => "utf8")
|
61
|
+
else
|
62
|
+
Sequel.mysql2(dbname, :user => user, :password => pass, :host => host, :port => port, :encoding => "utf8")
|
63
|
+
end
|
64
64
|
|
65
65
|
query = build_query(prefix, types, engine)
|
66
66
|
|
@@ -7,9 +7,7 @@ module JekyllImport
|
|
7
7
|
if options["marley_data_dir"].nil?
|
8
8
|
Jekyll.logger.abort_with "Missing mandatory option --marley_data_dir."
|
9
9
|
else
|
10
|
-
unless File.directory?(options["marley_data_dir"])
|
11
|
-
raise ArgumentError, "marley dir '#{options["marley_data_dir"]}' not found"
|
12
|
-
end
|
10
|
+
raise ArgumentError, "marley dir '#{options["marley_data_dir"]}' not found" unless File.directory?(options["marley_data_dir"])
|
13
11
|
end
|
14
12
|
end
|
15
13
|
|
@@ -96,36 +96,30 @@ module JekyllImport
|
|
96
96
|
:port => options[:port],
|
97
97
|
:encoding => "utf8")
|
98
98
|
|
99
|
-
|
100
|
-
|
101
|
-
|
102
|
-
|
103
|
-
|
104
|
-
|
105
|
-
|
106
|
-
|
107
|
-
|
108
|
-
|
109
|
-
|
110
|
-
|
111
|
-
|
112
|
-
|
113
|
-
|
114
|
-
|
115
|
-
ON weblogentry.creator = roller_user.username
|
116
|
-
LEFT JOIN weblog AS `weblog`
|
117
|
-
ON weblogentry.websiteid = weblog.id"
|
99
|
+
select = ["weblogentry.id AS `id`",
|
100
|
+
"weblogentry.status AS `status`",
|
101
|
+
"weblogentry.title AS `title`",
|
102
|
+
"weblogentry.anchor AS `slug`",
|
103
|
+
"weblogentry.updatetime AS `date`",
|
104
|
+
"weblogentry.text AS `content`",
|
105
|
+
"weblogentry.summary AS `excerpt`",
|
106
|
+
"weblogentry.categoryid AS `categoryid`",
|
107
|
+
"roller_user.fullname AS `author`",
|
108
|
+
"roller_user.username AS `author_login`",
|
109
|
+
"roller_user.emailaddress AS `author_email`",
|
110
|
+
"weblog.handle AS `site`",]
|
111
|
+
table = "weblogentry AS `weblogentry`"
|
112
|
+
join = ["roller_user AS `roller_user` ON weblogentry.creator = roller_user.username",
|
113
|
+
"weblog AS `weblog` ON weblogentry.websiteid = weblog.id",]
|
114
|
+
condition = []
|
118
115
|
|
119
116
|
if options[:status] && !options[:status].empty?
|
120
|
-
|
121
|
-
|
122
|
-
WHERE weblogentry.status = '#{status}'"
|
123
|
-
options[:status][1..-1].each do |stat|
|
124
|
-
posts_query += " OR
|
125
|
-
weblogentry.status = '#{stat}'"
|
117
|
+
options[:status].each do |stat|
|
118
|
+
condition.push("weblogentry.status = '#{stat}'")
|
126
119
|
end
|
127
120
|
end
|
128
121
|
|
122
|
+
posts_query = gen_db_query(select, table, condition, join, "OR")
|
129
123
|
db[posts_query].each do |post|
|
130
124
|
process_post(post, db, options)
|
131
125
|
end
|
@@ -154,13 +148,10 @@ module JekyllImport
|
|
154
148
|
tags = []
|
155
149
|
|
156
150
|
if options[:categories]
|
157
|
-
|
158
|
-
|
159
|
-
|
160
|
-
|
161
|
-
weblogcategory AS `weblogcategory`
|
162
|
-
WHERE
|
163
|
-
weblogcategory.id = '#{post[:categoryid]}'"
|
151
|
+
select = "weblogcategory.name AS `name`"
|
152
|
+
table = "weblogcategory AS `weblogcategory`"
|
153
|
+
condition = "weblogcategory.id = '#{post[:categoryid]}'"
|
154
|
+
cquery = gen_db_query(select, table, condition, "", "")
|
164
155
|
|
165
156
|
db[cquery].each do |term|
|
166
157
|
categories << (options[:clean_entities] ? clean_entities(term[:name]) : term[:name])
|
@@ -168,13 +159,10 @@ module JekyllImport
|
|
168
159
|
end
|
169
160
|
|
170
161
|
if options[:tags]
|
171
|
-
|
172
|
-
|
173
|
-
|
174
|
-
|
175
|
-
roller_weblogentrytag AS `roller_weblogentrytag`
|
176
|
-
WHERE
|
177
|
-
roller_weblogentrytag.entryid = '#{post[:id]}'"
|
162
|
+
select = "roller_weblogentrytag.name AS `name`"
|
163
|
+
table = "roller_weblogentrytag AS `roller_weblogentrytag`"
|
164
|
+
condition = "roller_weblogentrytag.entryid = '#{post[:id]}'"
|
165
|
+
cquery = gen_db_query(select, table, condition, "", "")
|
178
166
|
|
179
167
|
db[cquery].each do |term|
|
180
168
|
tags << (options[:clean_entities] ? clean_entities(term[:name]) : term[:name])
|
@@ -184,17 +172,14 @@ module JekyllImport
|
|
184
172
|
comments = []
|
185
173
|
|
186
174
|
if options[:comments]
|
187
|
-
|
188
|
-
|
189
|
-
|
190
|
-
|
191
|
-
|
192
|
-
|
193
|
-
|
194
|
-
|
195
|
-
WHERE
|
196
|
-
entryid = '#{post[:id]}' AND
|
197
|
-
status = 'APPROVED'"
|
175
|
+
select = ["id AS `id`",
|
176
|
+
"name AS `author`",
|
177
|
+
"email AS `author_email`",
|
178
|
+
"url AS `author_url`",
|
179
|
+
"posttime AS `date`",
|
180
|
+
"content AS `content`",]
|
181
|
+
condition = ["entryid = '#{post[:id]}'", "status = 'APPROVED'"]
|
182
|
+
cquery = gen_db_query(select, "roller_comment", condition, "", "AND")
|
198
183
|
|
199
184
|
db[cquery].each do |comment|
|
200
185
|
comcontent = comment[:content].to_s
|
@@ -210,6 +195,7 @@ module JekyllImport
|
|
210
195
|
"id" => comment[:id].to_i,
|
211
196
|
"author" => comauthor,
|
212
197
|
"author_email" => comment[:author_email].to_s,
|
198
|
+
"author_url" => comment[:author_url].to_s,
|
213
199
|
"date" => comment[:date].to_s,
|
214
200
|
"content" => comcontent,
|
215
201
|
}
|
@@ -221,7 +207,7 @@ module JekyllImport
|
|
221
207
|
# Get the relevant fields as a hash, delete empty fields and
|
222
208
|
# convert to YAML for the header.
|
223
209
|
data = {
|
224
|
-
"layout" => post
|
210
|
+
"layout" => "post",
|
225
211
|
"status" => post[:status].to_s,
|
226
212
|
"published" => post[:status].to_s == "DRAFT" ? nil : (post[:status].to_s == "PUBLISHED"),
|
227
213
|
"title" => title.to_s,
|
@@ -272,6 +258,43 @@ module JekyllImport
|
|
272
258
|
def self.page_path(_page_id)
|
273
259
|
""
|
274
260
|
end
|
261
|
+
|
262
|
+
def self.gen_db_query(select, table, condition, join, condition_join)
|
263
|
+
condition_join_string = if condition_join.empty?
|
264
|
+
"AND"
|
265
|
+
else
|
266
|
+
condition_join
|
267
|
+
end
|
268
|
+
select_string = if select.is_a?(Array)
|
269
|
+
select.join(",")
|
270
|
+
else
|
271
|
+
select
|
272
|
+
end
|
273
|
+
condition_string = if condition.is_a?(Array)
|
274
|
+
condition.join(" #{condition_join_string} ")
|
275
|
+
else
|
276
|
+
condition
|
277
|
+
end
|
278
|
+
join_string = if join.is_a?(Array)
|
279
|
+
join.join(" LEFT JOIN ")
|
280
|
+
else
|
281
|
+
join
|
282
|
+
end
|
283
|
+
query_select = "SELECT #{select_string}"
|
284
|
+
table_string = " FROM #{table}"
|
285
|
+
query_join = if join_string.empty?
|
286
|
+
""
|
287
|
+
else
|
288
|
+
" LEFT JOIN #{join_string}"
|
289
|
+
end
|
290
|
+
query_condition = if condition_string.empty?
|
291
|
+
""
|
292
|
+
else
|
293
|
+
" WHERE #{condition_string}"
|
294
|
+
end
|
295
|
+
query = "#{query_select}#{table_string}#{query_join}#{query_condition}"
|
296
|
+
query
|
297
|
+
end
|
275
298
|
end
|
276
299
|
end
|
277
300
|
end
|
@@ -8,9 +8,7 @@ module JekyllImport
|
|
8
8
|
end
|
9
9
|
|
10
10
|
def self.validate(options)
|
11
|
-
if options["source"].nil?
|
12
|
-
abort "Missing mandatory option --source, e.g. --source \"http://blog.example.com/rss.php?version=2.0&all=1\""
|
13
|
-
end
|
11
|
+
abort "Missing mandatory option --source, e.g. --source \"http://blog.example.com/rss.php?version=2.0&all=1\"" if options["source"].nil?
|
14
12
|
end
|
15
13
|
|
16
14
|
def self.require_deps
|
@@ -84,13 +84,9 @@ module JekyllImport
|
|
84
84
|
:permalinks => opts.fetch("permalinks", false),
|
85
85
|
}
|
86
86
|
|
87
|
-
if options[:clean_entities]
|
88
|
-
options[:clean_entities] = require_if_available("htmlentities", "clean_entities")
|
89
|
-
end
|
87
|
+
options[:clean_entities] = require_if_available("htmlentities", "clean_entities") if options[:clean_entities]
|
90
88
|
|
91
|
-
if options[:markdown]
|
92
|
-
options[:markdown] = require_if_available("reverse_markdown", "markdown")
|
93
|
-
end
|
89
|
+
options[:markdown] = require_if_available("reverse_markdown", "markdown") if options[:markdown]
|
94
90
|
|
95
91
|
FileUtils.mkdir_p("_posts")
|
96
92
|
FileUtils.mkdir_p("_drafts") if options[:drafts]
|
@@ -163,10 +163,10 @@ module JekyllImport
|
|
163
163
|
|
164
164
|
if options[:status] && !options[:status].empty?
|
165
165
|
status = options[:status][0]
|
166
|
-
posts_query << "
|
166
|
+
+posts_query << "
|
167
167
|
WHERE posts.post_status = '#{status}'"
|
168
168
|
options[:status][1..-1].each do |post_status|
|
169
|
-
posts_query << " OR
|
169
|
+
+posts_query << " OR
|
170
170
|
posts.post_status = '#{post_status}'"
|
171
171
|
end
|
172
172
|
end
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: jekyll-import
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.
|
4
|
+
version: 0.16.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Tom Preston-Werner
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2018-
|
11
|
+
date: 2018-11-04 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: fastercsv
|
@@ -128,14 +128,14 @@ dependencies:
|
|
128
128
|
requirements:
|
129
129
|
- - "~>"
|
130
130
|
- !ruby/object:Gem::Version
|
131
|
-
version: '0.
|
131
|
+
version: '0.3'
|
132
132
|
type: :development
|
133
133
|
prerelease: false
|
134
134
|
version_requirements: !ruby/object:Gem::Requirement
|
135
135
|
requirements:
|
136
136
|
- - "~>"
|
137
137
|
- !ruby/object:Gem::Version
|
138
|
-
version: '0.
|
138
|
+
version: '0.3'
|
139
139
|
- !ruby/object:Gem::Dependency
|
140
140
|
name: shoulda
|
141
141
|
requirement: !ruby/object:Gem::Requirement
|