narou 3.1.3 → 3.1.4

Sign up to get free protection for your applications and to get access to all the features.

Potentially problematic release.


This version of narou might be problematic. Click here for more details.

checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: ff26b299494cd78b6c52abdca045cc3f4c51cb74
4
- data.tar.gz: a917cd6b9f949ad0073a4965ee8f898a648c4fef
3
+ metadata.gz: 1f3968784d197a6d45098c0c6d60709d4d83dc27
4
+ data.tar.gz: 596ed06a2ae6c65c376186ddda343b77db83e7b1
5
5
  SHA512:
6
- metadata.gz: 6ef9404dfcc4ef5a7577261f32abe8cf1ae3be05ce62b27bf2f4c504b5c1002c9b742806df515a90d0bec778926ebd76737a719ef6af3372b09372248adb2ed3
7
- data.tar.gz: c784bd43b9f0ab584f178ecb22dbb9c1da420042ffc50d3916ced15e67b5cb7c32652cfb8813bae69364c17bdefbbd95a9926cf16701c46a5337fac1e0cecef6
6
+ metadata.gz: 9a6738055f7081d514f7749b1a063dcbbccefefa1d47fba40f3111426a915b54eeae0fac73006043c9eb5c782464935f94f54125c35e02ec3bcbd5acbd1f68e4
7
+ data.tar.gz: 478960b800e328a3330b066d383205fdc80da162f08587fe855f509ac83a45bde835d1876dcdedb457e6e03e3800fc4582a88c478a483baa743cac263bad9f4b
data/.rubocop.yml CHANGED
@@ -6,6 +6,7 @@ AllCops:
6
6
  - "小説データ/**/*"
7
7
  - "trash/**/*"
8
8
  - "narou.gemspec"
9
+ - "spec/**/*"
9
10
  DisplayCopNames: true
10
11
  TargetRubyVersion: 2.1
11
12
 
data/ChangeLog.md CHANGED
@@ -2,6 +2,19 @@
2
2
  更新履歴 - ChangeLog
3
3
  ====================
4
4
 
5
+ 3.1.4 : 2017/08/22
6
+ ------------------
7
+ #### 追加機能
8
+ - WEB UIにDigest認証の設定を追加しました。設定に server-digest-auth.* 関連の値
9
+ が追加されています。詳しくは narou s -a かWEB UIの設定画面(Globalタブ)を参照
10
+ して下さい
11
+
12
+ #### 修正内容
13
+ - 小説家になろうの目次の仕様変更に対応
14
+ - 小説家になろうのルビ仕様に追随できていなかった部分(ふりがなに空白を含む場合)
15
+ を修正
16
+
17
+
5
18
  3.1.3 : 2017/07/10
6
19
  ------------------
7
20
  #### 修正内容
data/README.md CHANGED
@@ -33,6 +33,19 @@ Narou.rb ― 「小説家になろう」「小説を読もう!」ダウンロ
33
33
  更新履歴 - ChangeLog
34
34
  --------------------
35
35
 
36
+ 3.1.4 : 2017/08/22
37
+ ------------------
38
+ #### 追加機能
39
+ - WEB UIにDigest認証の設定を追加しました。設定に server-digest-auth.* 関連の値
40
+ が追加されています。詳しくは narou s -a かWEB UIの設定画面(Globalタブ)を参照
41
+ して下さい
42
+
43
+ #### 修正内容
44
+ - 小説家になろうの目次の仕様変更に対応
45
+ - 小説家になろうのルビ仕様に追随できていなかった部分(ふりがなに空白を含む場合)
46
+ を修正
47
+
48
+
36
49
  3.1.3 : 2017/07/10
37
50
  ------------------
38
51
  #### 修正内容
@@ -515,6 +515,28 @@ module Command
515
515
  invisible: true,
516
516
  tab: :global
517
517
  },
518
+ "server-digest-auth.enable" => {
519
+ type: :boolean, help: "WEBサーバでDigest認証を使用するかどうか",
520
+ invisible: true,
521
+ tab: :global
522
+ },
523
+ "server-digest-auth.user" => {
524
+ type: :string, help: "WEBサーバでDigest認証をするユーザ名",
525
+ invisible: true,
526
+ tab: :global
527
+ },
528
+ "server-digest-auth.password" => {
529
+ type: :string, help: "WEBサーバのDigest認証のパスワード。hashed-passwordも設定した場合はそちらが優先される",
530
+ invisible: true,
531
+ tab: :global
532
+ },
533
+ "server-digest-auth.hashed-password" => {
534
+ type: :string,
535
+ help: "WEBサーバのDigest認証のパスワードを、Realmを\"narou.rb\"としてハッシュにしたもの。下記のようなコマンドで生成できる\n" \
536
+ "$ ruby -r 'digest/md5' -e 'puts Digest::MD5.hexdigest \"\#{$*[0]}:narou.rb:\#{$*[1]}\"' user password",
537
+ invisible: true,
538
+ tab: :global
539
+ },
518
540
  "server-ws-add-accepted-domains" => {
519
541
  type: :string, help: "PushServer の accepted_domains に追加するホストのリスト(カンマ区切り)",
520
542
  invisible: true,
data/lib/converterbase.rb CHANGED
@@ -302,7 +302,7 @@ class ConverterBase
302
302
  def insert_separate_space(data)
303
303
  data.gsub!(/([!?!?]+)([^!?!?])/) do
304
304
  m1, m2 = $1, $2
305
- m2 = " " if m2 == " "
305
+ m2 = " " if m2 =~ /[ 、。]/
306
306
  if m2 =~ /[^」]}\]\}』】〉》〕>>≫))"”’〟 ☆★♪[―]/
307
307
  "#{m1} #{m2}"
308
308
  else
@@ -491,8 +491,6 @@ class ConverterBase
491
491
  end
492
492
  # たまに見かける誤字対策
493
493
  data.gsub!(/。 /, "。")
494
- data.gsub!(/([?!])。/, "\\1")
495
- data.gsub!(/([?!])、/, "\\1")
496
494
  end
497
495
 
498
496
  #
@@ -933,23 +931,33 @@ class ConverterBase
933
931
  if openclose_symbols[0] == "≪" && m2 !~ /^#{AUTO_RUBY_CHARACTERS}$/
934
932
  # 《 》タイプのルビであっても、|が存在しない場合の自動ルビ化対象はひらがな等だけである
935
933
  match
934
+ elsif m2 =~ /^([ぁ-んァ-ヶーゝゞ・]+)[  ]?([ぁ-んァ-ヶーゝゞ・]*)$/
935
+ build_ruby(m1, m2, $1, $2)
936
936
  else
937
- # なろうのルビ対象文字を辿って|を挿入する(青空文庫となろうのルビ仕様の差異吸収のため)
938
- # 空白もルビ対象文字に含むのはなろうの仕様である
939
- m1.sub(/([#{CHARACTER_OF_RUBY}  ]+)$/) {
940
- match_target = $1
941
- if match_target =~ /^( +)/
942
- "#{$1}[#ルビ用縦線]#{match_target[$1.length..-1]}"
943
- else
944
- "[#ルビ用縦線]#{match_target}"
945
- end
946
- } + "《#{ruby_youon_to_big(m2)}》"
937
+ match
947
938
  end
948
939
  else
949
940
  match
950
941
  end
951
942
  end
952
943
 
944
+ #
945
+ # なろうのルビ対象文字を辿って|を挿入する(青空文庫となろうのルビ仕様の差異吸収のため)
946
+ # 空白もルビ対象文字に含むのはなろうの仕様である
947
+ def build_ruby(m1, m2, f1, f2)
948
+ if m1 =~ /([#{CHARACTER_OF_RUBY}]+)([  ])([#{CHARACTER_OF_RUBY}]+)$/
949
+ m1.sub(/([#{CHARACTER_OF_RUBY}]+)([  ])([#{CHARACTER_OF_RUBY}]+)$/) {
950
+ if f2 == ""
951
+ "#{$1}#{$2}[#ルビ用縦線]#{$3}《#{ruby_youon_to_big(m2)}》"
952
+ else
953
+ "[#ルビ用縦線]#{$1}《#{ruby_youon_to_big(f1)}》#{$2}[#ルビ用縦線]#{$3}《#{ruby_youon_to_big(f2)}》"
954
+ end
955
+ }
956
+ else
957
+ m1.sub(/([#{CHARACTER_OF_RUBY}]+)$/, "[#ルビ用縦線]\\1") + "《#{ruby_youon_to_big(m2)}》"
958
+ end
959
+ end
960
+
953
961
  #
954
962
  # ルビの拗音(ぁ、ぃ等)を商業書籍のように大きくする
955
963
  #
data/lib/inventory.rb CHANGED
@@ -4,6 +4,7 @@
4
4
  #
5
5
 
6
6
  require "yaml"
7
+ require "ostruct"
7
8
  require_relative "narou"
8
9
 
9
10
  #
@@ -68,5 +69,17 @@ module Inventory
68
69
  FileUtils.copy(backup_path, path)
69
70
  true
70
71
  end
72
+
73
+ def group(group_name)
74
+ result = {}
75
+ each do |name, value|
76
+ next unless name =~ /^#{group_name}\.(.+)$/
77
+ child_name = $1
78
+ result[child_name] = value
79
+ lodashed_name = child_name.tr("-", "_")
80
+ result[lodashed_name] = value if child_name != lodashed_name
81
+ end
82
+ OpenStruct.new(result)
83
+ end
71
84
  end
72
85
 
data/lib/version.rb CHANGED
@@ -3,4 +3,4 @@
3
3
  # Copyright 2013 whiteleaf. All rights reserved.
4
4
  #
5
5
 
6
- Version = "3.1.3"
6
+ Version = "3.1.4"
data/lib/web/appserver.rb CHANGED
@@ -231,6 +231,7 @@ class Narou::AppServer < Sinatra::Base
231
231
  puts_hello_messages
232
232
  start_device_ejectable_event
233
233
  fill_general_all_no_in_database
234
+ setup_server_authentication
234
235
  end
235
236
 
236
237
  def puts_hello_messages
@@ -268,6 +269,23 @@ class Narou::AppServer < Sinatra::Base
268
269
  Database.instance.save_database if modified
269
270
  end
270
271
 
272
+ # サーバーの認証の設定
273
+ # とりあえずDigest認証のみ
274
+ def setup_server_authentication
275
+ auth = Inventory.load("global_setting", :global).group("server-digest-auth")
276
+ return unless auth.enable
277
+
278
+ user = auth.user
279
+ hashed = auth.hashed_password
280
+ passwd = hashed || auth.password
281
+
282
+ self.class.class_exec do
283
+ use Rack::Auth::Digest::MD5, { realm: "narou.rb", opaque: "", passwords_hashed: hashed } do |username|
284
+ passwd if username == user
285
+ end
286
+ end
287
+ end
288
+
271
289
  # ===================================================================
272
290
  # ルーティング
273
291
  # ===================================================================
@@ -19,7 +19,11 @@ module Narou
19
19
  "<b>%OLD</b> : 古い方の差分用ファイルパス",
20
20
  "no-color" => "コンソールのカラー表示を無効にする\n※要WEB UIサーバ再起動",
21
21
  "economy" => "容量節約に関する設定",
22
- "send.without-freeze" => "一括送信時に凍結された小説は対象外にする。(個別送信時は凍結済みでも送信可能)"
22
+ "send.without-freeze" => "一括送信時に凍結された小説は対象外にする。(個別送信時は凍結済みでも送信可能)",
23
+ "server-digest-auth.enable" => "WEBサーバでDigest認証を使用するかどうか\n" \
24
+ "※digest-auth関連の設定を変更した場合WEB UIサーバの再起動が必要",
25
+ "server-digest-auth.hashed-password" => "WEBサーバのDigest認証のパスワードを、Realmを\"narou.rb\"としてハッシュにしたもの。\n" \
26
+ "https://tgws.plus/app/digest/ などで生成できる",
23
27
  }
24
28
  end
25
29
 
data/narou.gemspec CHANGED
@@ -32,38 +32,17 @@ Gem::Specification.new do |gem|
32
32
  install_message = <<-EOS
33
33
  #{"*" * 60}
34
34
 
35
- 3.1.3 : 2017/07/10
36
- ------------------
37
- #### 修正内容
38
- - hotentry.auto-mail を有効にしても、更新時に hotentry がメールで送信されなく
39
- なっていた
40
-
41
-
42
- 3.1.2 : 2017/06/10
43
- ------------------
44
- #### 追加機能
45
- - WEB UIにおいて、フィルターに入力されている状況をアドレスバーに反映するように
46
- しました。(ブックマークなどをすることでフィルターの状況を記憶・再現出来ます)
47
-
48
- #### 修正内容
49
- - WEB UIにおいて、凍結状態の表示状態に関わらず小説データを内部で取得していた事
50
- により、表示速度が低下していたのを修正しました
51
- - 暁の常時 https 化に対応
52
-
53
-
54
- 3.1.1 : 2017/04/05
35
+ 3.1.4 : 2017/08/22
55
36
  ------------------
56
37
  #### 追加機能
57
- - `clean` コマンドを実装しました。サブタイトルの変更等により参照されなくなった
58
- ゴミファイルを削除することが出来ます。詳細は `narou clean -h`を参照して下さい
59
- - WEB UI からメールを送信する機能を追加しました
60
- + Other ボタンと、個別メニューに追加されます
38
+ - WEB UIにDigest認証の設定を追加しました。設定に server-digest-auth.* 関連の値
39
+ が追加されています。詳しくは narou s -a かWEB UIの設定画面(Globalタブ)を参照
40
+ して下さい
61
41
 
62
42
  #### 修正内容
63
- - Ruby 2.4 対応
64
- - WEB UI のアバウトダイアログで、最新バージョンチェックが正しく動かなくなる場合
65
- があったのを修正
66
- - WEB UI から「凍結済みでも更新」が使用出来ずにエラーが出ていたのを修正
43
+ - 小説家になろうの目次の仕様変更に対応
44
+ - 小説家になろうのルビ仕様に追随できていなかった部分(ふりがなに空白を含む場合)
45
+ を修正
67
46
 
68
47
  #{"*" * 60}
69
48
  EOS
@@ -18,7 +18,9 @@ subtitles: |-
18
18
  (?:<div class="chapter_title">(?<chapter>.+?)</div>
19
19
 
20
20
  )?<dl class="novel_sublist2">
21
- <dd class="subtitle"><a href="(?<href>/.+?/(?<index>\d+?)/)">(?<subtitle>.+?)</a></dd>
21
+ <dd class="subtitle">
22
+ <a href="(?<href>/.+?/(?<index>\d+?)/)">(?<subtitle>.+?)</a>
23
+ </dd>
22
24
  <dt class="long_update">
23
25
  (?<subdate>.+?)(?:
24
26
  <span title="(?<subupdate>.+?) 改稿">
@@ -18,7 +18,9 @@ subtitles: |-
18
18
  (?:<div class="chapter_title">(?<chapter>.+?)</div>
19
19
 
20
20
  )?<dl class="novel_sublist2">
21
- <dd class="subtitle"><a href="(?<href>/.+?/(?<index>\d+?)/)">(?<subtitle>.+?)</a></dd>
21
+ <dd class="subtitle">
22
+ <a href="(?<href>/.+?/(?<index>\d+?)/)">(?<subtitle>.+?)</a>
23
+ </dd>
22
24
  <dt class="long_update">
23
25
  (?<subdate>.+?)(?:
24
26
  <span title="(?<subupdate>.+?) 改稿">
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.1.3
4
+ version: 3.1.4
5
5
  platform: ruby
6
6
  authors:
7
7
  - whiteleaf7
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2017-07-10 00:00:00.000000000 Z
11
+ date: 2017-08-22 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: termcolorlight
@@ -487,38 +487,17 @@ metadata: {}
487
487
  post_install_message: |
488
488
  ************************************************************
489
489
 
490
- 3.1.3 : 2017/07/10
491
- ------------------
492
- #### 修正内容
493
- - hotentry.auto-mail を有効にしても、更新時に hotentry がメールで送信されなく
494
- なっていた
495
-
496
-
497
- 3.1.2 : 2017/06/10
498
- ------------------
499
- #### 追加機能
500
- - WEB UIにおいて、フィルターに入力されている状況をアドレスバーに反映するように
501
- しました。(ブックマークなどをすることでフィルターの状況を記憶・再現出来ます)
502
-
503
- #### 修正内容
504
- - WEB UIにおいて、凍結状態の表示状態に関わらず小説データを内部で取得していた事
505
- により、表示速度が低下していたのを修正しました
506
- - 暁の常時 https 化に対応
507
-
508
-
509
- 3.1.1 : 2017/04/05
490
+ 3.1.4 : 2017/08/22
510
491
  ------------------
511
492
  #### 追加機能
512
- - `clean` コマンドを実装しました。サブタイトルの変更等により参照されなくなった
513
- ゴミファイルを削除することが出来ます。詳細は `narou clean -h`を参照して下さい
514
- - WEB UI からメールを送信する機能を追加しました
515
- + Other ボタンと、個別メニューに追加されます
493
+ - WEB UIにDigest認証の設定を追加しました。設定に server-digest-auth.* 関連の値
494
+ が追加されています。詳しくは narou s -a かWEB UIの設定画面(Globalタブ)を参照
495
+ して下さい
516
496
 
517
497
  #### 修正内容
518
- - Ruby 2.4 対応
519
- - WEB UI のアバウトダイアログで、最新バージョンチェックが正しく動かなくなる場合
520
- があったのを修正
521
- - WEB UI から「凍結済みでも更新」が使用出来ずにエラーが出ていたのを修正
498
+ - 小説家になろうの目次の仕様変更に対応
499
+ - 小説家になろうのルビ仕様に追随できていなかった部分(ふりがなに空白を含む場合)
500
+ を修正
522
501
 
523
502
  ************************************************************
524
503
  rdoc_options: []