narou 3.5.1 → 3.8.0

Sign up to get free protection for your applications and to get access to all the features.
@@ -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.load_file(path)
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(@novel_title, @setting.archive_path).new(@setting, @inspector, @illustration)
571
+ load_converter(@setting.archive_path).new(@setting, @inspector, @illustration)
572
572
  end
573
573
 
574
574
  #
data/lib/sitesetting.rb CHANGED
@@ -72,7 +72,7 @@ class SiteSetting
72
72
 
73
73
  def initialize(path)
74
74
  @match_values = {}
75
- @yaml = YAML.load_file(path)
75
+ @yaml = YAML.unsafe_load_file(path)
76
76
  @path = path
77
77
  end
78
78
 
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, nil, "-").result(_binding)
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
@@ -5,5 +5,5 @@
5
5
  #
6
6
 
7
7
  module Narou
8
- VERSION = "3.5.1"
8
+ VERSION = "3.8.0"
9
9
  end
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.get_theme
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.load_file(downloader.section_file_path(sub))["element"]
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", params["target"])
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.eject if device
895
- puts "<bold><green>端末を取り外しました</green></bold>".termcolor
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.5.1: 2020/03/21
35
+ 3.8.0: 2021/06/27
36
36
  -----------------
37
37
  #### 修正内容
38
- - 小説家になろう系列の挿絵をダウンロード時に、サムネイル画像を取得するように
39
- なってしまっていたのを修正
40
- - Ruby 2.7 で narou setting -l を実行時に警告が大量に出ていたのを修正
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', '~> 1.4', '>= 1.4.5'
57
- gem.add_runtime_dependency 'sinatra-contrib', '~> 1.4', '>= 1.4.2'
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 'sass', '~> 3.4', '>= 3.4.18'
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', '~> 5.2'
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.9'
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.18'
78
+ gem.add_development_dependency 'simplecov', '~> 0.20'
76
79
  end
77
80
 
@@ -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.5.1
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: 2020-03-21 00:00:00.000000000 Z
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: '1.4'
119
+ version: '2.0'
120
120
  - - ">="
121
121
  - !ruby/object:Gem::Version
122
- version: 1.4.5
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: '1.4'
129
+ version: '2.0'
130
130
  - - ">="
131
131
  - !ruby/object:Gem::Version
132
- version: 1.4.5
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: '1.4'
139
+ version: '2.0'
140
140
  - - ">="
141
141
  - !ruby/object:Gem::Version
142
- version: 1.4.2
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: '1.4'
149
+ version: '2.0'
150
150
  - - ">="
151
151
  - !ruby/object:Gem::Version
152
- version: 1.4.2
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: sass
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: '3.4'
193
+ version: '1.4'
180
194
  - - ">="
181
195
  - !ruby/object:Gem::Version
182
- version: 3.4.18
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: '3.4'
203
+ version: '1.4'
190
204
  - - ">="
191
205
  - !ruby/object:Gem::Version
192
- version: 3.4.18
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: '5.2'
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: '5.2'
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.9'
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.9'
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.18'
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.18'
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.5.1: 2020/03/21
712
+ 3.8.0: 2021/06/27
665
713
  -----------------
666
714
  #### 修正内容
667
- - 小説家になろう系列の挿絵をダウンロード時に、サムネイル画像を取得するように
668
- なってしまっていたのを修正
669
- - Ruby 2.7 で narou setting -l を実行時に警告が大量に出ていたのを修正
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.1.2
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: []