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 +4 -4
- data/.rubocop.yml +1 -0
- data/ChangeLog.md +13 -0
- data/README.md +13 -0
- data/lib/command/setting.rb +22 -0
- data/lib/converterbase.rb +21 -13
- data/lib/inventory.rb +13 -0
- data/lib/version.rb +1 -1
- data/lib/web/appserver.rb +18 -0
- data/lib/web/settingmessages.rb +5 -1
- data/narou.gemspec +7 -28
- data/webnovel/ncode.syosetu.com.yaml +3 -1
- data/webnovel/novel18.syosetu.com.yaml +3 -1
- metadata +9 -30
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 1f3968784d197a6d45098c0c6d60709d4d83dc27
|
4
|
+
data.tar.gz: 596ed06a2ae6c65c376186ddda343b77db83e7b1
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 9a6738055f7081d514f7749b1a063dcbbccefefa1d47fba40f3111426a915b54eeae0fac73006043c9eb5c782464935f94f54125c35e02ec3bcbd5acbd1f68e4
|
7
|
+
data.tar.gz: 478960b800e328a3330b066d383205fdc80da162f08587fe855f509ac83a45bde835d1876dcdedb457e6e03e3800fc4582a88c478a483baa743cac263bad9f4b
|
data/.rubocop.yml
CHANGED
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
|
#### 修正内容
|
data/lib/command/setting.rb
CHANGED
@@ -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
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
|
# ===================================================================
|
data/lib/web/settingmessages.rb
CHANGED
@@ -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.
|
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
|
-
-
|
58
|
-
|
59
|
-
|
60
|
-
+ Other ボタンと、個別メニューに追加されます
|
38
|
+
- WEB UIにDigest認証の設定を追加しました。設定に server-digest-auth.* 関連の値
|
39
|
+
が追加されています。詳しくは narou s -a かWEB UIの設定画面(Globalタブ)を参照
|
40
|
+
して下さい
|
61
41
|
|
62
42
|
#### 修正内容
|
63
|
-
-
|
64
|
-
-
|
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"
|
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"
|
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.
|
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-
|
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.
|
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
|
-
-
|
513
|
-
|
514
|
-
|
515
|
-
+ Other ボタンと、個別メニューに追加されます
|
493
|
+
- WEB UIにDigest認証の設定を追加しました。設定に server-digest-auth.* 関連の値
|
494
|
+
が追加されています。詳しくは narou s -a かWEB UIの設定画面(Globalタブ)を参照
|
495
|
+
して下さい
|
516
496
|
|
517
497
|
#### 修正内容
|
518
|
-
-
|
519
|
-
-
|
520
|
-
|
521
|
-
- WEB UI から「凍結済みでも更新」が使用出来ずにエラーが出ていたのを修正
|
498
|
+
- 小説家になろうの目次の仕様変更に対応
|
499
|
+
- 小説家になろうのルビ仕様に追随できていなかった部分(ふりがなに空白を含む場合)
|
500
|
+
を修正
|
522
501
|
|
523
502
|
************************************************************
|
524
503
|
rdoc_options: []
|