narou 3.5.1 → 3.8.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/.circleci/config.yml +3 -3
- data/.rubocop.yml +1 -1
- data/ChangeLog.md +37 -0
- data/Gemfile.lock +74 -71
- data/README.md +4 -4
- data/lib/command/browser.rb +1 -1
- data/lib/command/diff.rb +2 -2
- data/lib/command/folder.rb +6 -1
- data/lib/command/setting.rb +2 -2
- data/lib/command/update/general_lastup_updater.rb +2 -1
- data/lib/device.rb +6 -7
- data/lib/downloader.rb +10 -3
- data/lib/helper.rb +3 -3
- data/lib/inventory.rb +2 -2
- data/lib/loadconverter.rb +3 -4
- data/lib/mailer.rb +1 -1
- data/lib/narou.rb +276 -270
- data/lib/novelconverter.rb +2 -2
- data/lib/sitesetting.rb +1 -1
- data/lib/template.rb +1 -1
- data/lib/version.rb +1 -1
- data/lib/web/appserver.rb +8 -5
- data/narou.gemspec +13 -10
- data/template/converter.rb.erb +1 -8
- metadata +78 -30
data/lib/novelconverter.rb
CHANGED
@@ -436,7 +436,7 @@ class NovelConverter
|
|
436
436
|
def load_novel_section(subtitle_info, section_save_dir)
|
437
437
|
file_subtitle = subtitle_info["file_subtitle"] || subtitle_info["subtitle"] # 互換性維持のため
|
438
438
|
path = section_save_dir.join("#{subtitle_info["index"]} #{file_subtitle}.yaml")
|
439
|
-
YAML.
|
439
|
+
YAML.unsafe_load_file(path)
|
440
440
|
rescue Errno::ENOENT => e
|
441
441
|
stream_io.puts
|
442
442
|
stream_io.error(<<~MSG.termcolor)
|
@@ -568,7 +568,7 @@ class NovelConverter
|
|
568
568
|
# 各小説用の converter.rb 変換オブジェクトを生成
|
569
569
|
#
|
570
570
|
def create_converter
|
571
|
-
load_converter(@
|
571
|
+
load_converter(@setting.archive_path).new(@setting, @inspector, @illustration)
|
572
572
|
end
|
573
573
|
|
574
574
|
#
|
data/lib/sitesetting.rb
CHANGED
data/lib/template.rb
CHANGED
@@ -50,7 +50,7 @@ class Template
|
|
50
50
|
path = dir.join(TEMPLATE_DIR, src_filename + ".erb")
|
51
51
|
next unless path.exist?
|
52
52
|
src = Helper::CacheLoader.load(path)
|
53
|
-
result = ERB.new(src,
|
53
|
+
result = ERB.new(src, trim_mode: "-").result(_binding)
|
54
54
|
return result
|
55
55
|
end
|
56
56
|
raise LoadError, "テンプレートファイルが見つかりません。(#{src_filename}.erb)"
|
data/lib/version.rb
CHANGED
data/lib/web/appserver.rb
CHANGED
@@ -187,7 +187,7 @@ class Narou::AppServer < Sinatra::Base
|
|
187
187
|
headers "Cache-Control" => "no-cache" if $development
|
188
188
|
@bootstrap_theme = case params["webui.theme"]
|
189
189
|
when nil
|
190
|
-
Narou.
|
190
|
+
Narou.theme
|
191
191
|
when "" # 環境設定画面で未設定が選択された時
|
192
192
|
nil
|
193
193
|
else
|
@@ -422,7 +422,7 @@ class Narou::AppServer < Sinatra::Base
|
|
422
422
|
postscripts_count = 0
|
423
423
|
toc["subtitles"].each do |sub|
|
424
424
|
begin
|
425
|
-
element = YAML.
|
425
|
+
element = YAML.unsafe_load_file(downloader.section_file_path(sub))["element"]
|
426
426
|
data_type = element["data_type"] || "text"
|
427
427
|
introduction = element["introduction"] || ""
|
428
428
|
postscript = element["postscript"] || ""
|
@@ -835,8 +835,10 @@ class Narou::AppServer < Sinatra::Base
|
|
835
835
|
|
836
836
|
# ダウンロード登録すると同時にグレーのボタン画像を返す
|
837
837
|
get "/api/download4ssl" do
|
838
|
+
target = params["target"] or error("need a parameter: `target'")
|
839
|
+
opt_mail = "--mail" if query_to_boolean(params["mail"])
|
838
840
|
Narou::WebWorker.push do
|
839
|
-
CommandLine.run!("download",
|
841
|
+
CommandLine.run!("download", target, opt_mail)
|
840
842
|
@@push_server.send_all(:"table.reload")
|
841
843
|
end
|
842
844
|
redirect "/resources/images/dl_button1.gif"
|
@@ -891,8 +893,9 @@ class Narou::AppServer < Sinatra::Base
|
|
891
893
|
post "/api/eject" do
|
892
894
|
do_eject = proc do
|
893
895
|
device = Narou.get_device
|
894
|
-
device
|
895
|
-
|
896
|
+
device&.eject do
|
897
|
+
puts "<bold><green>端末を取り外しました</green></bold>".termcolor
|
898
|
+
end
|
896
899
|
end
|
897
900
|
if params["enqueue"] == "true"
|
898
901
|
Narou::WebWorker.push do
|
data/narou.gemspec
CHANGED
@@ -32,12 +32,12 @@ Gem::Specification.new do |gem|
|
|
32
32
|
install_message = <<-EOS
|
33
33
|
#{"*" * 60}
|
34
34
|
|
35
|
-
3.
|
35
|
+
3.8.0: 2021/06/27
|
36
36
|
-----------------
|
37
37
|
#### 修正内容
|
38
|
-
-
|
39
|
-
|
40
|
-
-
|
38
|
+
- タイトル名もしくは作者名に特定の記号を使うことで任意のコードを実行できて
|
39
|
+
しまう問題を修正 [CVE-2021-35514]
|
40
|
+
- この問題を発見した RyotaK に感謝します
|
41
41
|
|
42
42
|
#{"*" * 60}
|
43
43
|
EOS
|
@@ -53,25 +53,28 @@ Gem::Specification.new do |gem|
|
|
53
53
|
gem.add_runtime_dependency 'mail', '~> 2.6.0', '>= 2.6.6'
|
54
54
|
gem.add_runtime_dependency 'pony', '~> 1', '>= 1.11'
|
55
55
|
gem.add_runtime_dependency 'diff-lcs', '~> 1.2', '>= 1.2.5'
|
56
|
-
gem.add_runtime_dependency 'sinatra', '~>
|
57
|
-
gem.add_runtime_dependency 'sinatra-contrib', '~>
|
56
|
+
gem.add_runtime_dependency 'sinatra', '~> 2.0', '>= 2.0.8.1'
|
57
|
+
gem.add_runtime_dependency 'sinatra-contrib', '~> 2.0', '>= 2.0.8.1'
|
58
58
|
gem.add_runtime_dependency 'tilt', '~> 2.0', '>= 2.0.10'
|
59
|
-
gem.add_runtime_dependency '
|
59
|
+
gem.add_runtime_dependency 'sassc', '~> 2.4'
|
60
|
+
gem.add_runtime_dependency 'ffi', '~> 1.4', '>= 1.4.2'
|
60
61
|
gem.add_runtime_dependency 'haml', '>= 5.1.2', '< 6'
|
61
62
|
gem.add_runtime_dependency 'memoist', '~> 0.11.0'
|
62
63
|
gem.add_runtime_dependency 'systemu', '~> 2.6', '>= 2.6.5'
|
63
64
|
gem.add_runtime_dependency 'erubis', '~> 2.7'
|
64
65
|
gem.add_runtime_dependency 'open_uri_redirections', '~> 0.2', '>= 0.2.1'
|
65
|
-
gem.add_runtime_dependency 'activesupport', '
|
66
|
+
gem.add_runtime_dependency 'activesupport', '>= 6.1', '< 8.0'
|
66
67
|
gem.add_runtime_dependency 'unicode-display_width', '~> 1.4'
|
68
|
+
gem.add_runtime_dependency 'webrick', '~> 1.7'
|
69
|
+
gem.add_runtime_dependency 'psych', '~> 4.0'
|
67
70
|
|
68
|
-
gem.add_development_dependency 'rspec', '~> 3.
|
71
|
+
gem.add_development_dependency 'rspec', '~> 3.10'
|
69
72
|
gem.add_development_dependency 'rspec-retry', '~> 0.6'
|
70
73
|
gem.add_development_dependency 'rspec_junit_formatter', '~> 0.4'
|
71
74
|
gem.add_development_dependency 'timecop', '~> 0.9'
|
72
75
|
gem.add_development_dependency 'pry', '~> 0.12'
|
73
76
|
gem.add_development_dependency 'pry-byebug', '~> 3.8'
|
74
77
|
gem.add_development_dependency 'awesome_print', '~> 1.8'
|
75
|
-
gem.add_development_dependency 'simplecov', '~> 0.
|
78
|
+
gem.add_development_dependency 'simplecov', '~> 0.20'
|
76
79
|
end
|
77
80
|
|
data/template/converter.rb.erb
CHANGED
@@ -1,15 +1,8 @@
|
|
1
1
|
# -*- coding: utf-8 -*-
|
2
2
|
<% Template.target_binary_version(1.0) -%>
|
3
3
|
|
4
|
-
#
|
5
|
-
# 対象小説情報
|
6
|
-
# タイトル: <%= @setting["title"] %>
|
7
|
-
# 作者: <%= @setting["author"] %>
|
8
|
-
# URL: <%= @setting["toc_url"] %>
|
9
|
-
#
|
10
4
|
# 詳細については http://bit.ly/1vTEH04 を参照して下さい
|
11
|
-
|
12
|
-
converter "<%= file_title.gsub('"', '\"') %>" do
|
5
|
+
converter do
|
13
6
|
# 各種変換処理がされる「前」の生データに対しての変換処理を記述
|
14
7
|
def before(io, text_type)
|
15
8
|
super
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: narou
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 3.
|
4
|
+
version: 3.8.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- whiteleaf7
|
8
|
-
autorequire:
|
8
|
+
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date:
|
11
|
+
date: 2021-06-27 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: termcolorlight
|
@@ -116,40 +116,40 @@ dependencies:
|
|
116
116
|
requirements:
|
117
117
|
- - "~>"
|
118
118
|
- !ruby/object:Gem::Version
|
119
|
-
version: '
|
119
|
+
version: '2.0'
|
120
120
|
- - ">="
|
121
121
|
- !ruby/object:Gem::Version
|
122
|
-
version:
|
122
|
+
version: 2.0.8.1
|
123
123
|
type: :runtime
|
124
124
|
prerelease: false
|
125
125
|
version_requirements: !ruby/object:Gem::Requirement
|
126
126
|
requirements:
|
127
127
|
- - "~>"
|
128
128
|
- !ruby/object:Gem::Version
|
129
|
-
version: '
|
129
|
+
version: '2.0'
|
130
130
|
- - ">="
|
131
131
|
- !ruby/object:Gem::Version
|
132
|
-
version:
|
132
|
+
version: 2.0.8.1
|
133
133
|
- !ruby/object:Gem::Dependency
|
134
134
|
name: sinatra-contrib
|
135
135
|
requirement: !ruby/object:Gem::Requirement
|
136
136
|
requirements:
|
137
137
|
- - "~>"
|
138
138
|
- !ruby/object:Gem::Version
|
139
|
-
version: '
|
139
|
+
version: '2.0'
|
140
140
|
- - ">="
|
141
141
|
- !ruby/object:Gem::Version
|
142
|
-
version:
|
142
|
+
version: 2.0.8.1
|
143
143
|
type: :runtime
|
144
144
|
prerelease: false
|
145
145
|
version_requirements: !ruby/object:Gem::Requirement
|
146
146
|
requirements:
|
147
147
|
- - "~>"
|
148
148
|
- !ruby/object:Gem::Version
|
149
|
-
version: '
|
149
|
+
version: '2.0'
|
150
150
|
- - ">="
|
151
151
|
- !ruby/object:Gem::Version
|
152
|
-
version:
|
152
|
+
version: 2.0.8.1
|
153
153
|
- !ruby/object:Gem::Dependency
|
154
154
|
name: tilt
|
155
155
|
requirement: !ruby/object:Gem::Requirement
|
@@ -171,25 +171,39 @@ dependencies:
|
|
171
171
|
- !ruby/object:Gem::Version
|
172
172
|
version: 2.0.10
|
173
173
|
- !ruby/object:Gem::Dependency
|
174
|
-
name:
|
174
|
+
name: sassc
|
175
|
+
requirement: !ruby/object:Gem::Requirement
|
176
|
+
requirements:
|
177
|
+
- - "~>"
|
178
|
+
- !ruby/object:Gem::Version
|
179
|
+
version: '2.4'
|
180
|
+
type: :runtime
|
181
|
+
prerelease: false
|
182
|
+
version_requirements: !ruby/object:Gem::Requirement
|
183
|
+
requirements:
|
184
|
+
- - "~>"
|
185
|
+
- !ruby/object:Gem::Version
|
186
|
+
version: '2.4'
|
187
|
+
- !ruby/object:Gem::Dependency
|
188
|
+
name: ffi
|
175
189
|
requirement: !ruby/object:Gem::Requirement
|
176
190
|
requirements:
|
177
191
|
- - "~>"
|
178
192
|
- !ruby/object:Gem::Version
|
179
|
-
version: '
|
193
|
+
version: '1.4'
|
180
194
|
- - ">="
|
181
195
|
- !ruby/object:Gem::Version
|
182
|
-
version:
|
196
|
+
version: 1.4.2
|
183
197
|
type: :runtime
|
184
198
|
prerelease: false
|
185
199
|
version_requirements: !ruby/object:Gem::Requirement
|
186
200
|
requirements:
|
187
201
|
- - "~>"
|
188
202
|
- !ruby/object:Gem::Version
|
189
|
-
version: '
|
203
|
+
version: '1.4'
|
190
204
|
- - ">="
|
191
205
|
- !ruby/object:Gem::Version
|
192
|
-
version:
|
206
|
+
version: 1.4.2
|
193
207
|
- !ruby/object:Gem::Dependency
|
194
208
|
name: haml
|
195
209
|
requirement: !ruby/object:Gem::Requirement
|
@@ -282,16 +296,22 @@ dependencies:
|
|
282
296
|
name: activesupport
|
283
297
|
requirement: !ruby/object:Gem::Requirement
|
284
298
|
requirements:
|
285
|
-
- - "
|
299
|
+
- - ">="
|
286
300
|
- !ruby/object:Gem::Version
|
287
|
-
version: '
|
301
|
+
version: '6.1'
|
302
|
+
- - "<"
|
303
|
+
- !ruby/object:Gem::Version
|
304
|
+
version: '8.0'
|
288
305
|
type: :runtime
|
289
306
|
prerelease: false
|
290
307
|
version_requirements: !ruby/object:Gem::Requirement
|
291
308
|
requirements:
|
292
|
-
- - "
|
309
|
+
- - ">="
|
293
310
|
- !ruby/object:Gem::Version
|
294
|
-
version: '
|
311
|
+
version: '6.1'
|
312
|
+
- - "<"
|
313
|
+
- !ruby/object:Gem::Version
|
314
|
+
version: '8.0'
|
295
315
|
- !ruby/object:Gem::Dependency
|
296
316
|
name: unicode-display_width
|
297
317
|
requirement: !ruby/object:Gem::Requirement
|
@@ -306,20 +326,48 @@ dependencies:
|
|
306
326
|
- - "~>"
|
307
327
|
- !ruby/object:Gem::Version
|
308
328
|
version: '1.4'
|
329
|
+
- !ruby/object:Gem::Dependency
|
330
|
+
name: webrick
|
331
|
+
requirement: !ruby/object:Gem::Requirement
|
332
|
+
requirements:
|
333
|
+
- - "~>"
|
334
|
+
- !ruby/object:Gem::Version
|
335
|
+
version: '1.7'
|
336
|
+
type: :runtime
|
337
|
+
prerelease: false
|
338
|
+
version_requirements: !ruby/object:Gem::Requirement
|
339
|
+
requirements:
|
340
|
+
- - "~>"
|
341
|
+
- !ruby/object:Gem::Version
|
342
|
+
version: '1.7'
|
343
|
+
- !ruby/object:Gem::Dependency
|
344
|
+
name: psych
|
345
|
+
requirement: !ruby/object:Gem::Requirement
|
346
|
+
requirements:
|
347
|
+
- - "~>"
|
348
|
+
- !ruby/object:Gem::Version
|
349
|
+
version: '4.0'
|
350
|
+
type: :runtime
|
351
|
+
prerelease: false
|
352
|
+
version_requirements: !ruby/object:Gem::Requirement
|
353
|
+
requirements:
|
354
|
+
- - "~>"
|
355
|
+
- !ruby/object:Gem::Version
|
356
|
+
version: '4.0'
|
309
357
|
- !ruby/object:Gem::Dependency
|
310
358
|
name: rspec
|
311
359
|
requirement: !ruby/object:Gem::Requirement
|
312
360
|
requirements:
|
313
361
|
- - "~>"
|
314
362
|
- !ruby/object:Gem::Version
|
315
|
-
version: '3.
|
363
|
+
version: '3.10'
|
316
364
|
type: :development
|
317
365
|
prerelease: false
|
318
366
|
version_requirements: !ruby/object:Gem::Requirement
|
319
367
|
requirements:
|
320
368
|
- - "~>"
|
321
369
|
- !ruby/object:Gem::Version
|
322
|
-
version: '3.
|
370
|
+
version: '3.10'
|
323
371
|
- !ruby/object:Gem::Dependency
|
324
372
|
name: rspec-retry
|
325
373
|
requirement: !ruby/object:Gem::Requirement
|
@@ -410,14 +458,14 @@ dependencies:
|
|
410
458
|
requirements:
|
411
459
|
- - "~>"
|
412
460
|
- !ruby/object:Gem::Version
|
413
|
-
version: '0.
|
461
|
+
version: '0.20'
|
414
462
|
type: :development
|
415
463
|
prerelease: false
|
416
464
|
version_requirements: !ruby/object:Gem::Requirement
|
417
465
|
requirements:
|
418
466
|
- - "~>"
|
419
467
|
- !ruby/object:Gem::Version
|
420
|
-
version: '0.
|
468
|
+
version: '0.20'
|
421
469
|
description: 小説家になろうで公開されている小説の管理、及び電子書籍データへの変換を支援します。縦書用に特化されており、横書き用に特化されたWEB小説を違和感なく縦書で読むことが出来るようになります。
|
422
470
|
email:
|
423
471
|
- 2nd.leaf@gmail.com
|
@@ -661,12 +709,12 @@ metadata: {}
|
|
661
709
|
post_install_message: |
|
662
710
|
************************************************************
|
663
711
|
|
664
|
-
3.
|
712
|
+
3.8.0: 2021/06/27
|
665
713
|
-----------------
|
666
714
|
#### 修正内容
|
667
|
-
-
|
668
|
-
|
669
|
-
|
715
|
+
- タイトル名もしくは作者名に特定の記号を使うことで任意のコードを実行できて
|
716
|
+
しまう問題を修正 [CVE-2021-35514]
|
717
|
+
- この問題を発見した RyotaK に感謝します
|
670
718
|
|
671
719
|
************************************************************
|
672
720
|
rdoc_options: []
|
@@ -683,8 +731,8 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
683
731
|
- !ruby/object:Gem::Version
|
684
732
|
version: '0'
|
685
733
|
requirements: []
|
686
|
-
rubygems_version: 3.
|
687
|
-
signing_key:
|
734
|
+
rubygems_version: 3.2.15
|
735
|
+
signing_key:
|
688
736
|
specification_version: 4
|
689
737
|
summary: Narou.rb ― 小説家になろうダウンローダ&縦書用整形スクリプト
|
690
738
|
test_files: []
|