narou 3.2.5.1 → 3.3.0

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.

Files changed (131) hide show
  1. checksums.yaml +4 -4
  2. data/.gitignore +2 -5
  3. data/.haml-lint.yml +7 -0
  4. data/.rubocop.yml +23 -5
  5. data/.scss-lint.yml +9 -0
  6. data/ChangeLog.md +86 -0
  7. data/Gemfile.lock +35 -35
  8. data/README.md +80 -64
  9. data/lib/backtracer.rb +2 -2
  10. data/lib/color.rb +5 -1
  11. data/lib/command.rb +7 -2
  12. data/lib/command/alias.rb +3 -5
  13. data/lib/command/backup.rb +3 -5
  14. data/lib/command/browser.rb +3 -5
  15. data/lib/command/clean.rb +5 -1
  16. data/lib/command/console.rb +33 -0
  17. data/lib/command/convert.rb +143 -117
  18. data/lib/command/csv.rb +2 -1
  19. data/lib/command/diff.rb +20 -18
  20. data/lib/command/download.rb +25 -14
  21. data/lib/command/folder.rb +3 -5
  22. data/lib/command/freeze.rb +3 -5
  23. data/lib/command/help.rb +20 -18
  24. data/lib/command/init.rb +4 -3
  25. data/lib/command/inspect.rb +2 -1
  26. data/lib/command/list.rb +10 -8
  27. data/lib/command/list/novel_decorator.rb +2 -1
  28. data/lib/command/log.rb +100 -0
  29. data/lib/command/log/tail.rb +76 -0
  30. data/lib/command/mail.rb +20 -17
  31. data/lib/command/remove.rb +7 -6
  32. data/lib/command/send.rb +23 -20
  33. data/lib/command/setting.rb +74 -40
  34. data/lib/command/tag.rb +16 -15
  35. data/lib/command/trace.rb +2 -2
  36. data/lib/command/update.rb +78 -128
  37. data/lib/command/update/general_lastup_updater.rb +3 -2
  38. data/lib/command/update/hotentry_manager.rb +2 -1
  39. data/lib/command/update/interval.rb +2 -1
  40. data/lib/command/version.rb +2 -1
  41. data/lib/command/web.rb +17 -3
  42. data/lib/commandbase.rb +34 -7
  43. data/lib/commandline.rb +54 -35
  44. data/lib/converterbase.rb +21 -15
  45. data/lib/database.rb +3 -2
  46. data/lib/device.rb +5 -4
  47. data/lib/device/epub.rb +2 -1
  48. data/lib/device/ibooks.rb +2 -1
  49. data/lib/device/ibunko.rb +2 -1
  50. data/lib/device/kindle.rb +2 -1
  51. data/lib/device/kobo.rb +2 -1
  52. data/lib/device/library/cygwin.rb +2 -1
  53. data/lib/device/library/linux.rb +2 -1
  54. data/lib/device/library/mac.rb +2 -1
  55. data/lib/device/library/windows.rb +2 -1
  56. data/lib/device/library/windows/eject.rb +2 -1
  57. data/lib/device/reader.rb +2 -1
  58. data/lib/diffviewer.rb +8 -11
  59. data/lib/downloader.rb +159 -151
  60. data/lib/eventable.rb +2 -1
  61. data/lib/extension.rb +16 -14
  62. data/lib/extensions/jruby.rb +2 -1
  63. data/lib/extensions/monkey_patches.rb +7 -0
  64. data/lib/extensions/monkey_patches/pathname.rb +22 -0
  65. data/lib/extensions/windows.rb +2 -1
  66. data/lib/extensions/windows_write_color.rb +2 -1
  67. data/lib/helper.rb +35 -20
  68. data/lib/html.rb +2 -1
  69. data/lib/illustration.rb +2 -1
  70. data/lib/ini.rb +2 -1
  71. data/lib/input.rb +2 -1
  72. data/lib/inspector.rb +3 -2
  73. data/lib/inventory.rb +3 -3
  74. data/lib/mailer.rb +3 -2
  75. data/lib/mixin/all.rb +8 -0
  76. data/lib/mixin/locker.rb +40 -0
  77. data/lib/mixin/output_error.rb +28 -0
  78. data/lib/narou.rb +69 -51
  79. data/lib/narou/api.rb +2 -4
  80. data/lib/narou_logger.rb +236 -108
  81. data/lib/novelconverter.rb +77 -69
  82. data/lib/novelinfo.rb +4 -2
  83. data/lib/novelsetting.rb +15 -12
  84. data/lib/progressbar.rb +13 -9
  85. data/lib/sitesetting.rb +39 -18
  86. data/lib/template.rb +5 -4
  87. data/lib/version.rb +3 -2
  88. data/lib/web/all.rb +2 -1
  89. data/lib/web/appserver.rb +83 -65
  90. data/lib/web/helper4web.rb +10 -5
  91. data/lib/web/progressbar4web.rb +8 -4
  92. data/lib/web/public/resources/default-style.css +2 -3
  93. data/lib/web/public/resources/narou.library.js +86 -60
  94. data/lib/web/public/resources/narou.queue.js +24 -30
  95. data/lib/web/public/resources/narou.ui.js +22 -3
  96. data/lib/web/public/theme/Cerulean/style.css +5 -5
  97. data/lib/web/public/theme/Darkly/style.css +5 -5
  98. data/lib/web/public/theme/Readable/style.css +5 -5
  99. data/lib/web/public/theme/Slate/style.css +2 -3
  100. data/lib/web/public/theme/Superhero/style.css +2 -3
  101. data/lib/web/public/theme/United/style.css +5 -5
  102. data/lib/web/pushserver.rb +10 -7
  103. data/lib/web/server_helpers.rb +16 -1
  104. data/lib/web/settingmessages.rb +10 -7
  105. data/lib/web/streaminginput.rb +2 -1
  106. data/lib/web/streaminglogger.rb +45 -32
  107. data/lib/web/views/_about.haml +6 -3
  108. data/lib/web/views/_header.haml +2 -3
  109. data/lib/web/views/_move_to_top.haml +2 -0
  110. data/lib/web/views/_queue.haml +7 -0
  111. data/lib/web/views/bookmarklet/insert_button.js.erb +1 -1
  112. data/lib/web/views/index.haml +30 -27
  113. data/lib/web/views/layout.haml +2 -0
  114. data/lib/web/views/novels/setting.haml +3 -4
  115. data/lib/web/views/settings.haml +22 -8
  116. data/lib/web/views/style.scss +54 -3
  117. data/lib/web/views/widget/download.haml +9 -3
  118. data/lib/web/views/widget/drag_and_drop.haml +10 -4
  119. data/lib/web/web_worker.rb +132 -0
  120. data/lib/worker.rb +142 -0
  121. data/narou.gemspec +80 -45
  122. data/narou.rb +6 -4
  123. data/template/novel.txt.erb +1 -0
  124. data/webnovel/kakuyomu.jp.yaml +9 -13
  125. data/webnovel/ncode.syosetu.com.yaml +3 -1
  126. data/webnovel/novel18.syosetu.com.yaml +8 -1
  127. data/webnovel/syosetu.org.yaml +3 -1
  128. data/webnovel/www.akatsuki-novels.com.yaml +4 -2
  129. data/webnovel/www.mai-net.net.yaml +3 -1
  130. metadata +109 -48
  131. data/lib/web/worker.rb +0 -126
@@ -32,62 +32,96 @@ Gem::Specification.new do |gem|
32
32
  install_message = <<-EOS
33
33
  #{"*" * 60}
34
34
 
35
- 3.2.5.1: 2018/08/21
35
+ 3.3.0: 2018/09/22
36
36
  ------------------
37
- #### 修正内容
38
- - WEB UI の小説リストの幅が、一部項目で極端にでかくなる場合があるのを修正
37
+ #### 追加機能
38
+ - ダウンロード(や更新)と変換の同時実行が可能になりました
39
+ + 環境設定の concurrency オプションを有効にすることで使用可能になります
40
+ + 大規模な変更なので、不安定な恐れあり。使う場合はバックアップを万全に
41
+ + 有効にすると表示されるログの出力形式が変更されます。CUI では特殊な形式に
42
+ なり、WEB UIではコンソールが物理的に2つになります。CUI の表示については
43
+ concurrency.format-queue-style で調整出来ます。詳細は narou s -h を参照
44
+ + アップデート時の変換を中断した場合に、次回更新時に変換を再試行する機能が
45
+ concurrency が有効な場合は動きません。これは現時点では仕様です
39
46
 
47
+ - ログが保存出来るようになりました
48
+ + 環境設定 logging オプションを追加しました。有効にすることでほぼすべての
49
+ ログを保存します
50
+ * diff や list コマンド、ヘルプなどの、出力が多く表示すること自体が目的の
51
+ 一部コマンドの出力はログには保存しません
52
+ * ログのフォーマットとしてlogging.format-filename, logging.format-timestamp
53
+ も追加されています。詳細は narou s -h を参照
54
+ * concurrency が有効な場合、通常ログと変換ログに分けられます。通常ログの
55
+ ファイル名が 20180831.txt だった場合、変換ログは 20180831_convert.txt に
56
+ 保存されます(log コマンドで簡単に表示できます)
57
+ + log コマンドを実装しました。logging オプションで保存されるログを表示する
58
+ ことが出来ます。tail -f のようなストリーミング機能も付いています。詳細は
59
+ narou log -h を参照
60
+ * concurrency で更新と変換を同時実行中は基本的に更新のログだけ表示されるの
61
+ で、コンソールを分割して片方で narou update を実行して更新ログを表示して
62
+ もう片方で narou log -ct で変換ログを垂れ流すみたいな使い方を想定
40
63
 
41
- 3.2.5: 2018/08/21
42
- ------------------
43
- #### 追加機能
44
- - 個別設定に `enable_prolonged_sound_mark_to_dash` を追加
45
- + 2つ以上の長音記号を全角ダッシュに置換します
46
- - 個別設定に `disable_alphabet_word_to_zenkaku` を追加
47
- + enable_alphabet_force_zenkaku が false の場合に、8文字未満の英単語を全角に
48
- する機能を抑制する。英文中にルビがふってあり、英文ではなく英単語と認識され
49
- て全角化されてしまう場合などに使用
50
- - 環境設定の `convert.copy-to-grouping` に「掲載サイト」毎にまとめる機能を追加
51
- (設定が真偽値ではなく文字列(複数)に変更)
52
- + deivce: 端末毎にまとめる
53
- + site: 掲載サイト毎にまとめる
54
- + 設定例: `narou s convert.copy-to-grouping=device,site`
55
- - 端末フォルダの中に更に掲載サイトのフォルダが作られる
56
- - 小説プリセット追加
57
- + 異世界転生したけど日本語が通じなかった(なろう版/カクヨム版)
58
- + ありふれた職業で世界最強
64
+ - ダウンロードを中断しても、再開(レジューム)出来るようになりました
65
+ + download で新規小説をダウンロードしていたのを中断した場合は、updateコマンド
66
+ で再開出来ます(再開部分は新着扱いになります)
67
+ + この仕様追加の影響で、今までは新規ダウンロードを中断した場合は(ネットワーク
68
+ エラーや手動など手段問わず)データベースに登録されなかったのが、登録される
69
+ 様になりました
70
+ + 中断した小説は変換ができません。update で再開して最後までDLしきってください
71
+
72
+ - 環境設定に folder-length-limit を追加しました。小説を格納するフォルダ名の長さ
73
+ 制限を設定出来ます。(デフォルトでは50文字)
74
+ + この設定を変更しても既存小説には影響はありません
75
+
76
+ - 環境設定に filename-length-limit を追加しました。各話ファイルを保存する際の
77
+ 長さ制限を設定出来ます。(デフォルトでは50文字)
78
+ + 既存小説のアップデートにも影響が出るので、50文字でも長すぎてエラーが出る
79
+ 場合のみ変更を強く推奨
80
+
81
+ #### WEB UI
82
+ - コンソールに「全ての履歴を取得」ボタンを追加しました
83
+ + 普段はリロードしたら直近の履歴以外は表示されませんが(読み込み負荷軽減の為)
84
+ それを全て再表示する機能です。履歴はログ削除ボタンを押した場合に表示と共に
85
+ 一緒にクリアされます
86
+ - 個別メニューから変換などを実行した際に表示されるサブコンソールを廃止しました
87
+ - 右下にページ上部へスクロールするアイコンを設置
88
+ - 環境設定ページに「サーバを再起動」ボタンを設置
89
+ - Send のサブメニューに「端末の栞データをバックアップ」を追加
90
+ + device が kindle の時のみ表示
59
91
 
60
- #### WEB UI 追加機能
61
- - 「作者コメント表示」機能を追加。まえがき・あとがきだけを一覧化します
62
- + 個別メニューからのみアクセス可能
63
- - 小説リストに「あらすじ」ボタンを追加。初期設定は非表示なので
64
- 「表示>表示する項目を設定」から設定してください
65
- + あらすじはフィルターの対象外です
66
- - 小説リストの幅を広げる機能を追加。それに合わせて各項目の幅を微調整しました
67
- + 「表示>小説リストの幅を広げる」から設定
68
- - 個別メニューの表示スタイルを変更する機能を追加
69
- + 「表示>個別メニューの表示スタイルを選択」から設定
70
- + Windows スタイル:
71
- メニューが画面外にはみ出そうとしたら、カーソルの上側に表示する
72
- + Mac スタイル:
73
- メニューが画面外にはみ出そうとしたら、メニューがはみ出ないよう上にずれる
74
- - 一部のメニュー項目にショートカットキーを追加
75
- + 小説リストの幅を広げる : W
76
- + 凍結中以外を表示 : Shift+F
77
- + 凍結中を表示 : F
78
- + 選択した小説のタグを編集 : T
92
+ #### 仕様変更
93
+ - 環境設定の update.logging を廃止しました。それに合わせて update コマンドの
94
+ --log オプションも削除しました。ログの保存は logging に統合されます
95
+ - 更新を中断した場合でも、そこまでの新着に関しては hotentry を生成するように
96
+ なりました
97
+ - カクヨムの小説を保存する時に格納フォルダにタイトルも含めるように変更しました
98
+ - ノクターンノベルズ、ムーンライトノベルズ、ミッドナイトノベルズの各作品は、
99
+ 掲載サイト名をそれぞれ区別するようになりました。これに合わせて格納先フォルダ
100
+ もそれぞれのサイトごとに分けられます
101
+ + すでにダウンロード済みの小説には影響はありません
102
+ - 上記ふたつの仕様変更に関して、以前と同じ設定に戻すには webnovel フォルダ下に
103
+ 設定上書き用のデータを用意することで実現可能です。
104
+ 詳細は http://bit.ly/overwrite_webnovel を参照してください
79
105
 
80
106
  #### 修正内容
81
- - `auto_join_line` の連結する条件を調整
82
- + 次行の行頭が数字だった場合には連結しない
83
- - 作者名が変更された場合も更新されるように修正
84
- - ネットワーク接続のタイムアウトでクラッシュするのを修正
107
+ - カクヨムの作品の完結済みが取得できなくなっていた
108
+ - 完結状態を取得できなかった場合、end タグを勝手に削除しない様に調整
109
+ - 暁の作品の非公開状態が取得できなくなっていた
110
+ - diff コマンドに存在しない小説を指定するとエラーが出ていた
111
+ - convert コマンドに存在しない小説を指定するとエラーが出ていた
112
+ - WEB UI サーバを Ctrl+C で終了時にエラーが出ていた
113
+ - WEB UI で小説を大量に選択し「選択したタグを編集」を実行するとエラーが出ていた
114
+ - 各話DL時にタイムアウトした時にまだエラーが出ていた
115
+ - 特定の小説でファイル名を短くする処理が動いていなかった
116
+ - disable_alphabet_word_to_zenkaku を有効にすると挿絵が正常に埋め込めなくなる
117
+ 場合があった
118
+ - データ書き込み時の安定性向上
85
119
 
86
120
  #{"*" * 60}
87
121
  EOS
88
122
  gem.post_install_message = install_message.gsub("\t", " ")
89
123
 
90
- gem.required_ruby_version = ">=2.1.0"
124
+ gem.required_ruby_version = ">=2.3.0"
91
125
 
92
126
  gem.files = `git ls-files`.split("\n").reject { |fn| fn =~ %r!^spec/|^"spec! } << Narou.create_git_commit_version
93
127
  gem.executables = gem.files.grep(%r!^bin/!).map { |f| File.basename(f) }
@@ -107,5 +141,6 @@ Gem::Specification.new do |gem|
107
141
  gem.add_runtime_dependency 'erubis', '~> 2.7'
108
142
  gem.add_runtime_dependency 'open_uri_redirections', '~> 0.2', '>= 0.2.1'
109
143
  gem.add_runtime_dependency 'activesupport', '~> 5.2'
144
+ gem.add_runtime_dependency 'unicode-display_width', '~> 1.4'
110
145
  end
111
146
 
data/narou.rb CHANGED
@@ -1,5 +1,6 @@
1
1
  #! /usr/bin/env ruby
2
- # -*- coding: utf-8 -*-
2
+ # frozen_string_literal: true
3
+
3
4
  #
4
5
  # Narou.rb ― 小説家になろうダウンロード&整形スクリプト
5
6
  #
@@ -7,6 +8,7 @@
7
8
  #
8
9
 
9
10
  require_relative "lib/extension"
11
+ require_relative "lib/extensions/monkey_patches"
10
12
  require_relative "lib/backtracer"
11
13
 
12
14
  script_dir = File.expand_path(File.dirname(__FILE__))
@@ -44,6 +46,6 @@ require_relative "lib/narou_logger"
44
46
  require_relative "lib/version"
45
47
  require_relative "lib/commandline"
46
48
 
47
- Narou::Backtracer.capture do
48
- CommandLine.run(ARGV.map(&:dup))
49
- end
49
+ exit Narou::Backtracer.capture {
50
+ CommandLine.run!(ARGV.map(&:dup))
51
+ }
@@ -88,5 +88,6 @@
88
88
  <% end -%>
89
89
  <% end -%>
90
90
  <% if setting.enable_display_end_of_book && !is_hotentry -%>
91
+
91
92
  [#ここから地付き][#小書き](本を読み終わりました)[#小書き終わり][#ここで地付き終わり]
92
93
  <% end -%>
@@ -1,14 +1,16 @@
1
1
  # ------------------------------------------------------------
2
2
  # 小説サイト定義
3
- name: カクヨム
3
+ name: &name カクヨム
4
4
  scheme: https
5
5
  domain: kakuyomu.jp
6
6
  top_url: \\k<scheme>://\\k<domain>
7
7
  url: \\k<top_url>/works/(?<ncode>\d+)
8
8
  encoding: UTF-8
9
9
  confirm_over18: no
10
- append_title_to_folder_name: no
10
+ append_title_to_folder_name: yes
11
11
  title_strip_pattern: null
12
+ sitename: *name
13
+ version: 1.0
12
14
 
13
15
  # ------------------------------------------------------------
14
16
  # 書籍情報取得設定
@@ -51,26 +53,22 @@ novel_info_url: \\k<toc_url>
51
53
  t: *title
52
54
 
53
55
  # novel_type 小説種別
54
- nt: <dt><span>執筆状況</span></dt>\n <dd>(?<novel_type>.+?)</dd>
56
+ nt: '<dt><span>執筆状況</span></dt>\n *?<dd>(?<novel_type>.+?)</dd>'
55
57
  novel_type_string:
56
58
  連載中: 1
57
59
  完結済: 3
58
60
 
59
61
  # general_all_no 掲載話数
60
- ga: <dt><span>エピソード</span></dt>\n <dd>(?<general_all_no>\d+)話</dd>
62
+ ga: '<dt><span>エピソード</span></dt>\n *?<dd>(?<general_all_no>\d+)話</dd>'
61
63
 
62
64
  # story あらすじ
63
65
  s: *story
64
66
 
65
67
  # general_firstup 初回掲載日
66
- gf: |-2
67
- <dt><span>公開日</span></dt>
68
- <dd><time itemprop="datePublished" datetime="(?<general_firstup>.+?)">.+?</time>
68
+ gf: '<dt><span>公開日</span></dt>\n *?<dd><time itemprop="datePublished" datetime="(?<general_firstup>.+?)">.+?</time>'
69
69
 
70
70
  # novelupdated_at 小説の更新時刻。最終掲載日で代用
71
- nu: |-2
72
- <dt><span>最終更新日</span></dt>
73
- <dd><time itemprop="dateModified" datetime="(?<novelupdated_at>.+?)">.+?</time>
71
+ nu: '<dt><span>最終更新日</span></dt>\n *?<dd><time itemprop="dateModified" datetime="(?<novelupdated_at>.+?)">.+?</time>'
74
72
 
75
73
  # general_lastup 最新話掲載日
76
74
  gl: null
@@ -80,6 +78,4 @@ w: |-
80
78
  (?:<span class="activityName" itemprop="author">(?<writer>.+?)</span>)|(?:<span class="screenName.*?">(?<writer>.+?)</span>)
81
79
 
82
80
  # length 文字数
83
- l: |-2
84
- <dt><span>総文字数</span></dt>
85
- <dd>(?<length>.+?)文字</dd>
81
+ l: '<dt><span>総文字数</span></dt>\n *?<dd>(?<length>.+?)文字</dd>'
@@ -1,6 +1,6 @@
1
1
  # ------------------------------------------------------------
2
2
  # 小説サイト定義
3
- name: 小説家になろう
3
+ name: &name 小説家になろう
4
4
  domain: ncode.syosetu.com
5
5
  top_url: https://\\k<domain>
6
6
  url: https?://\\k<domain>/(?<ncode>n\d+[a-z]+)
@@ -9,6 +9,8 @@ confirm_over18: no
9
9
  append_title_to_folder_name: yes
10
10
  title_strip_pattern: null
11
11
  cookie: over18=yes
12
+ sitename: *name
13
+ version: 1.0
12
14
 
13
15
  # ------------------------------------------------------------
14
16
  # 目次取得設定
@@ -1,6 +1,6 @@
1
1
  # ------------------------------------------------------------
2
2
  # 小説サイト定義
3
- name: ノクターン・ムーンライト
3
+ name: 小説家になろうR18
4
4
  domain: novel18.syosetu.com
5
5
  top_url: https://\\k<domain>
6
6
  url: https?://\\k<domain>/(?<ncode>n\d+[a-z]+)
@@ -10,6 +10,13 @@ append_title_to_folder_name: yes
10
10
  title_strip_pattern: null
11
11
  cookie: over18=yes
12
12
 
13
+ # 掲載サイト名は動的に取得する
14
+ sitename: |-
15
+ <th>掲載サイト</th>
16
+ <td>(?<sitename>.+?)\(.+\)</td>
17
+
18
+ version: 1.0
19
+
13
20
  # ------------------------------------------------------------
14
21
  # 目次取得設定
15
22
  toc_url: https://\\k<domain>/\\k<ncode>/
@@ -1,6 +1,6 @@
1
1
  # ------------------------------------------------------------
2
2
  # 小説サイト定義
3
- name: ハーメルン
3
+ name: &name ハーメルン
4
4
  domain: syosetu.org
5
5
  top_url: https?://\\k<domain>
6
6
  url:
@@ -11,6 +11,8 @@ confirm_over18: no
11
11
  append_title_to_folder_name: yes
12
12
  title_strip_pattern: null
13
13
  cookie: over18=off
14
+ sitename: *name
15
+ version: 1.0
14
16
 
15
17
  # ------------------------------------------------------------
16
18
  # 目次取得設定
@@ -1,6 +1,6 @@
1
1
  # ------------------------------------------------------------
2
2
  # 小説サイト定義
3
- name: 暁
3
+ name: &name
4
4
  domain: www.akatsuki-novels.com
5
5
  top_url: https://\\k<domain>
6
6
  url: https?://\\k<domain>/stories/index/novel_id\~(?<ncode>\d+)
@@ -9,6 +9,8 @@ confirm_over18: no
9
9
  append_title_to_folder_name: yes
10
10
  title_strip_pattern: null
11
11
  cookie: CakeCookie[ALLOWED_ADULT_NOVEL]=on
12
+ sitename: *name
13
+ version: 1.0
12
14
 
13
15
  # ------------------------------------------------------------
14
16
  # 書籍情報取得設定
@@ -26,7 +28,7 @@ subtitles: |-
26
28
  # subdate(初投稿日)がない場合、一番最初のsubupdateで代用する
27
29
  subdate: no
28
30
 
29
- error_message: この小説は作者の諸事情により非公開にしています
31
+ error_message: この作品は作者の諸事情により非公開にしています
30
32
 
31
33
  # ------------------------------------------------------------
32
34
  # 本文取得設定
@@ -1,6 +1,6 @@
1
1
  # ------------------------------------------------------------
2
2
  # 小説サイト定義
3
- name: Arcadia
3
+ name: &name Arcadia
4
4
  domain: www.mai-net.net
5
5
  top_url: http://\\k<domain>
6
6
  category: '' # カテゴリ無しの場合を考慮する
@@ -11,6 +11,8 @@ encoding: UTF-8
11
11
  confirm_over18: no
12
12
  append_title_to_folder_name: yes
13
13
  title_strip_pattern: (【.+?】|\(.+?\)|(.+?))
14
+ sitename: *name
15
+ version: 1.0
14
16
 
15
17
  # ------------------------------------------------------------
16
18
  # 書籍情報取得設定
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.2.5.1
4
+ version: 3.3.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - whiteleaf7
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2018-08-21 00:00:00.000000000 Z
11
+ date: 2018-09-22 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: termcolorlight
@@ -292,6 +292,20 @@ dependencies:
292
292
  - - "~>"
293
293
  - !ruby/object:Gem::Version
294
294
  version: '5.2'
295
+ - !ruby/object:Gem::Dependency
296
+ name: unicode-display_width
297
+ requirement: !ruby/object:Gem::Requirement
298
+ requirements:
299
+ - - "~>"
300
+ - !ruby/object:Gem::Version
301
+ version: '1.4'
302
+ type: :runtime
303
+ prerelease: false
304
+ version_requirements: !ruby/object:Gem::Requirement
305
+ requirements:
306
+ - - "~>"
307
+ - !ruby/object:Gem::Version
308
+ version: '1.4'
295
309
  description: 小説家になろうで公開されている小説の管理、及び電子書籍データへの変換を支援します。縦書用に特化されており、横書き用に特化されたWEB小説を違和感なく縦書で読むことが出来るようになります。
296
310
  email:
297
311
  - 2nd.leaf@gmail.com
@@ -303,9 +317,11 @@ files:
303
317
  - ".circleci/config.yml"
304
318
  - ".gitattributes"
305
319
  - ".gitignore"
320
+ - ".haml-lint.yml"
306
321
  - ".reek"
307
322
  - ".rspec"
308
323
  - ".rubocop.yml"
324
+ - ".scss-lint.yml"
309
325
  - ChangeLog.md
310
326
  - Gemfile
311
327
  - Gemfile.lock
@@ -321,6 +337,7 @@ files:
321
337
  - lib/command/backup.rb
322
338
  - lib/command/browser.rb
323
339
  - lib/command/clean.rb
340
+ - lib/command/console.rb
324
341
  - lib/command/convert.rb
325
342
  - lib/command/csv.rb
326
343
  - lib/command/diff.rb
@@ -332,6 +349,8 @@ files:
332
349
  - lib/command/inspect.rb
333
350
  - lib/command/list.rb
334
351
  - lib/command/list/novel_decorator.rb
352
+ - lib/command/log.rb
353
+ - lib/command/log/tail.rb
335
354
  - lib/command/mail.rb
336
355
  - lib/command/remove.rb
337
356
  - lib/command/send.rb
@@ -365,6 +384,8 @@ files:
365
384
  - lib/eventable.rb
366
385
  - lib/extension.rb
367
386
  - lib/extensions/jruby.rb
387
+ - lib/extensions/monkey_patches.rb
388
+ - lib/extensions/monkey_patches/pathname.rb
368
389
  - lib/extensions/windows.rb
369
390
  - lib/extensions/windows_write_color.rb
370
391
  - lib/helper.rb
@@ -377,6 +398,9 @@ files:
377
398
  - lib/kindlestrip.rb
378
399
  - lib/loadconverter.rb
379
400
  - lib/mailer.rb
401
+ - lib/mixin/all.rb
402
+ - lib/mixin/locker.rb
403
+ - lib/mixin/output_error.rb
380
404
  - lib/narou.rb
381
405
  - lib/narou/api.rb
382
406
  - lib/narou_logger.rb
@@ -445,6 +469,8 @@ files:
445
469
  - lib/web/views/_diff_list.haml
446
470
  - lib/web/views/_edit_replace_txt.haml
447
471
  - lib/web/views/_header.haml
472
+ - lib/web/views/_move_to_top.haml
473
+ - lib/web/views/_queue.haml
448
474
  - lib/web/views/_rebooting.haml
449
475
  - lib/web/views/bookmarklet/download.js.erb
450
476
  - lib/web/views/bookmarklet/insert_button.js.erb
@@ -468,7 +494,8 @@ files:
468
494
  - lib/web/web-socket-ruby/samples/chat_server.rb
469
495
  - lib/web/web-socket-ruby/samples/echo_server.rb
470
496
  - lib/web/web-socket-ruby/samples/stdio_client.rb
471
- - lib/web/worker.rb
497
+ - lib/web/web_worker.rb
498
+ - lib/worker.rb
472
499
  - narou.bat
473
500
  - narou.gemspec
474
501
  - narou.rb
@@ -521,56 +548,90 @@ metadata: {}
521
548
  post_install_message: |
522
549
  ************************************************************
523
550
 
524
- 3.2.5.1: 2018/08/21
551
+ 3.3.0: 2018/09/22
525
552
  ------------------
526
- #### 修正内容
527
- - WEB UI の小説リストの幅が、一部項目で極端にでかくなる場合があるのを修正
553
+ #### 追加機能
554
+ - ダウンロード(や更新)と変換の同時実行が可能になりました
555
+ + 環境設定の concurrency オプションを有効にすることで使用可能になります
556
+ + 大規模な変更なので、不安定な恐れあり。使う場合はバックアップを万全に
557
+ + 有効にすると表示されるログの出力形式が変更されます。CUI では特殊な形式に
558
+ なり、WEB UIではコンソールが物理的に2つになります。CUI の表示については
559
+ concurrency.format-queue-style で調整出来ます。詳細は narou s -h を参照
560
+ + アップデート時の変換を中断した場合に、次回更新時に変換を再試行する機能が
561
+ concurrency が有効な場合は動きません。これは現時点では仕様です
528
562
 
563
+ - ログが保存出来るようになりました
564
+ + 環境設定 logging オプションを追加しました。有効にすることでほぼすべての
565
+ ログを保存します
566
+ * diff や list コマンド、ヘルプなどの、出力が多く表示すること自体が目的の
567
+ 一部コマンドの出力はログには保存しません
568
+ * ログのフォーマットとしてlogging.format-filename, logging.format-timestamp
569
+ も追加されています。詳細は narou s -h を参照
570
+ * concurrency が有効な場合、通常ログと変換ログに分けられます。通常ログの
571
+ ファイル名が 20180831.txt だった場合、変換ログは 20180831_convert.txt に
572
+ 保存されます(log コマンドで簡単に表示できます)
573
+ + log コマンドを実装しました。logging オプションで保存されるログを表示する
574
+ ことが出来ます。tail -f のようなストリーミング機能も付いています。詳細は
575
+ narou log -h を参照
576
+ * concurrency で更新と変換を同時実行中は基本的に更新のログだけ表示されるの
577
+ で、コンソールを分割して片方で narou update を実行して更新ログを表示して
578
+ もう片方で narou log -ct で変換ログを垂れ流すみたいな使い方を想定
529
579
 
530
- 3.2.5: 2018/08/21
531
- ------------------
532
- #### 追加機能
533
- - 個別設定に `enable_prolonged_sound_mark_to_dash` を追加
534
- + 2つ以上の長音記号を全角ダッシュに置換します
535
- - 個別設定に `disable_alphabet_word_to_zenkaku` を追加
536
- + enable_alphabet_force_zenkaku が false の場合に、8文字未満の英単語を全角に
537
- する機能を抑制する。英文中にルビがふってあり、英文ではなく英単語と認識され
538
- て全角化されてしまう場合などに使用
539
- - 環境設定の `convert.copy-to-grouping` に「掲載サイト」毎にまとめる機能を追加
540
- (設定が真偽値ではなく文字列(複数)に変更)
541
- + deivce: 端末毎にまとめる
542
- + site: 掲載サイト毎にまとめる
543
- + 設定例: `narou s convert.copy-to-grouping=device,site`
544
- - 端末フォルダの中に更に掲載サイトのフォルダが作られる
545
- - 小説プリセット追加
546
- + 異世界転生したけど日本語が通じなかった(なろう版/カクヨム版)
547
- + ありふれた職業で世界最強
580
+ - ダウンロードを中断しても、再開(レジューム)出来るようになりました
581
+ + download で新規小説をダウンロードしていたのを中断した場合は、updateコマンド
582
+ で再開出来ます(再開部分は新着扱いになります)
583
+ + この仕様追加の影響で、今までは新規ダウンロードを中断した場合は(ネットワーク
584
+ エラーや手動など手段問わず)データベースに登録されなかったのが、登録される
585
+ 様になりました
586
+ + 中断した小説は変換ができません。update で再開して最後までDLしきってください
587
+
588
+ - 環境設定に folder-length-limit を追加しました。小説を格納するフォルダ名の長さ
589
+ 制限を設定出来ます。(デフォルトでは50文字)
590
+ + この設定を変更しても既存小説には影響はありません
591
+
592
+ - 環境設定に filename-length-limit を追加しました。各話ファイルを保存する際の
593
+ 長さ制限を設定出来ます。(デフォルトでは50文字)
594
+ + 既存小説のアップデートにも影響が出るので、50文字でも長すぎてエラーが出る
595
+ 場合のみ変更を強く推奨
596
+
597
+ #### WEB UI
598
+ - コンソールに「全ての履歴を取得」ボタンを追加しました
599
+ + 普段はリロードしたら直近の履歴以外は表示されませんが(読み込み負荷軽減の為)
600
+ それを全て再表示する機能です。履歴はログ削除ボタンを押した場合に表示と共に
601
+ 一緒にクリアされます
602
+ - 個別メニューから変換などを実行した際に表示されるサブコンソールを廃止しました
603
+ - 右下にページ上部へスクロールするアイコンを設置
604
+ - 環境設定ページに「サーバを再起動」ボタンを設置
605
+ - Send のサブメニューに「端末の栞データをバックアップ」を追加
606
+ + device が kindle の時のみ表示
548
607
 
549
- #### WEB UI 追加機能
550
- - 「作者コメント表示」機能を追加。まえがき・あとがきだけを一覧化します
551
- + 個別メニューからのみアクセス可能
552
- - 小説リストに「あらすじ」ボタンを追加。初期設定は非表示なので
553
- 「表示>表示する項目を設定」から設定してください
554
- + あらすじはフィルターの対象外です
555
- - 小説リストの幅を広げる機能を追加。それに合わせて各項目の幅を微調整しました
556
- + 「表示>小説リストの幅を広げる」から設定
557
- - 個別メニューの表示スタイルを変更する機能を追加
558
- + 「表示>個別メニューの表示スタイルを選択」から設定
559
- + Windows スタイル:
560
- メニューが画面外にはみ出そうとしたら、カーソルの上側に表示する
561
- + Mac スタイル:
562
- メニューが画面外にはみ出そうとしたら、メニューがはみ出ないよう上にずれる
563
- - 一部のメニュー項目にショートカットキーを追加
564
- + 小説リストの幅を広げる : W
565
- + 凍結中以外を表示 : Shift+F
566
- + 凍結中を表示 : F
567
- + 選択した小説のタグを編集 : T
608
+ #### 仕様変更
609
+ - 環境設定の update.logging を廃止しました。それに合わせて update コマンドの
610
+ --log オプションも削除しました。ログの保存は logging に統合されます
611
+ - 更新を中断した場合でも、そこまでの新着に関しては hotentry を生成するように
612
+ なりました
613
+ - カクヨムの小説を保存する時に格納フォルダにタイトルも含めるように変更しました
614
+ - ノクターンノベルズ、ムーンライトノベルズ、ミッドナイトノベルズの各作品は、
615
+ 掲載サイト名をそれぞれ区別するようになりました。これに合わせて格納先フォルダ
616
+ もそれぞれのサイトごとに分けられます
617
+ + すでにダウンロード済みの小説には影響はありません
618
+ - 上記ふたつの仕様変更に関して、以前と同じ設定に戻すには webnovel フォルダ下に
619
+ 設定上書き用のデータを用意することで実現可能です。
620
+ 詳細は http://bit.ly/overwrite_webnovel を参照してください
568
621
 
569
622
  #### 修正内容
570
- - `auto_join_line` の連結する条件を調整
571
- + 次行の行頭が数字だった場合には連結しない
572
- - 作者名が変更された場合も更新されるように修正
573
- - ネットワーク接続のタイムアウトでクラッシュするのを修正
623
+ - カクヨムの作品の完結済みが取得できなくなっていた
624
+ - 完結状態を取得できなかった場合、end タグを勝手に削除しない様に調整
625
+ - 暁の作品の非公開状態が取得できなくなっていた
626
+ - diff コマンドに存在しない小説を指定するとエラーが出ていた
627
+ - convert コマンドに存在しない小説を指定するとエラーが出ていた
628
+ - WEB UI サーバを Ctrl+C で終了時にエラーが出ていた
629
+ - WEB UI で小説を大量に選択し「選択したタグを編集」を実行するとエラーが出ていた
630
+ - 各話DL時にタイムアウトした時にまだエラーが出ていた
631
+ - 特定の小説でファイル名を短くする処理が動いていなかった
632
+ - disable_alphabet_word_to_zenkaku を有効にすると挿絵が正常に埋め込めなくなる
633
+ 場合があった
634
+ - データ書き込み時の安定性向上
574
635
 
575
636
  ************************************************************
576
637
  rdoc_options: []
@@ -580,7 +641,7 @@ required_ruby_version: !ruby/object:Gem::Requirement
580
641
  requirements:
581
642
  - - ">="
582
643
  - !ruby/object:Gem::Version
583
- version: 2.1.0
644
+ version: 2.3.0
584
645
  required_rubygems_version: !ruby/object:Gem::Requirement
585
646
  requirements:
586
647
  - - ">="