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.
- checksums.yaml +4 -4
- data/.gitignore +2 -5
- data/.haml-lint.yml +7 -0
- data/.rubocop.yml +23 -5
- data/.scss-lint.yml +9 -0
- data/ChangeLog.md +86 -0
- data/Gemfile.lock +35 -35
- data/README.md +80 -64
- data/lib/backtracer.rb +2 -2
- data/lib/color.rb +5 -1
- data/lib/command.rb +7 -2
- data/lib/command/alias.rb +3 -5
- data/lib/command/backup.rb +3 -5
- data/lib/command/browser.rb +3 -5
- data/lib/command/clean.rb +5 -1
- data/lib/command/console.rb +33 -0
- data/lib/command/convert.rb +143 -117
- data/lib/command/csv.rb +2 -1
- data/lib/command/diff.rb +20 -18
- data/lib/command/download.rb +25 -14
- data/lib/command/folder.rb +3 -5
- data/lib/command/freeze.rb +3 -5
- data/lib/command/help.rb +20 -18
- data/lib/command/init.rb +4 -3
- data/lib/command/inspect.rb +2 -1
- data/lib/command/list.rb +10 -8
- data/lib/command/list/novel_decorator.rb +2 -1
- data/lib/command/log.rb +100 -0
- data/lib/command/log/tail.rb +76 -0
- data/lib/command/mail.rb +20 -17
- data/lib/command/remove.rb +7 -6
- data/lib/command/send.rb +23 -20
- data/lib/command/setting.rb +74 -40
- data/lib/command/tag.rb +16 -15
- data/lib/command/trace.rb +2 -2
- data/lib/command/update.rb +78 -128
- data/lib/command/update/general_lastup_updater.rb +3 -2
- data/lib/command/update/hotentry_manager.rb +2 -1
- data/lib/command/update/interval.rb +2 -1
- data/lib/command/version.rb +2 -1
- data/lib/command/web.rb +17 -3
- data/lib/commandbase.rb +34 -7
- data/lib/commandline.rb +54 -35
- data/lib/converterbase.rb +21 -15
- data/lib/database.rb +3 -2
- data/lib/device.rb +5 -4
- data/lib/device/epub.rb +2 -1
- data/lib/device/ibooks.rb +2 -1
- data/lib/device/ibunko.rb +2 -1
- data/lib/device/kindle.rb +2 -1
- data/lib/device/kobo.rb +2 -1
- data/lib/device/library/cygwin.rb +2 -1
- data/lib/device/library/linux.rb +2 -1
- data/lib/device/library/mac.rb +2 -1
- data/lib/device/library/windows.rb +2 -1
- data/lib/device/library/windows/eject.rb +2 -1
- data/lib/device/reader.rb +2 -1
- data/lib/diffviewer.rb +8 -11
- data/lib/downloader.rb +159 -151
- data/lib/eventable.rb +2 -1
- data/lib/extension.rb +16 -14
- data/lib/extensions/jruby.rb +2 -1
- data/lib/extensions/monkey_patches.rb +7 -0
- data/lib/extensions/monkey_patches/pathname.rb +22 -0
- data/lib/extensions/windows.rb +2 -1
- data/lib/extensions/windows_write_color.rb +2 -1
- data/lib/helper.rb +35 -20
- data/lib/html.rb +2 -1
- data/lib/illustration.rb +2 -1
- data/lib/ini.rb +2 -1
- data/lib/input.rb +2 -1
- data/lib/inspector.rb +3 -2
- data/lib/inventory.rb +3 -3
- data/lib/mailer.rb +3 -2
- data/lib/mixin/all.rb +8 -0
- data/lib/mixin/locker.rb +40 -0
- data/lib/mixin/output_error.rb +28 -0
- data/lib/narou.rb +69 -51
- data/lib/narou/api.rb +2 -4
- data/lib/narou_logger.rb +236 -108
- data/lib/novelconverter.rb +77 -69
- data/lib/novelinfo.rb +4 -2
- data/lib/novelsetting.rb +15 -12
- data/lib/progressbar.rb +13 -9
- data/lib/sitesetting.rb +39 -18
- data/lib/template.rb +5 -4
- data/lib/version.rb +3 -2
- data/lib/web/all.rb +2 -1
- data/lib/web/appserver.rb +83 -65
- data/lib/web/helper4web.rb +10 -5
- data/lib/web/progressbar4web.rb +8 -4
- data/lib/web/public/resources/default-style.css +2 -3
- data/lib/web/public/resources/narou.library.js +86 -60
- data/lib/web/public/resources/narou.queue.js +24 -30
- data/lib/web/public/resources/narou.ui.js +22 -3
- data/lib/web/public/theme/Cerulean/style.css +5 -5
- data/lib/web/public/theme/Darkly/style.css +5 -5
- data/lib/web/public/theme/Readable/style.css +5 -5
- data/lib/web/public/theme/Slate/style.css +2 -3
- data/lib/web/public/theme/Superhero/style.css +2 -3
- data/lib/web/public/theme/United/style.css +5 -5
- data/lib/web/pushserver.rb +10 -7
- data/lib/web/server_helpers.rb +16 -1
- data/lib/web/settingmessages.rb +10 -7
- data/lib/web/streaminginput.rb +2 -1
- data/lib/web/streaminglogger.rb +45 -32
- data/lib/web/views/_about.haml +6 -3
- data/lib/web/views/_header.haml +2 -3
- data/lib/web/views/_move_to_top.haml +2 -0
- data/lib/web/views/_queue.haml +7 -0
- data/lib/web/views/bookmarklet/insert_button.js.erb +1 -1
- data/lib/web/views/index.haml +30 -27
- data/lib/web/views/layout.haml +2 -0
- data/lib/web/views/novels/setting.haml +3 -4
- data/lib/web/views/settings.haml +22 -8
- data/lib/web/views/style.scss +54 -3
- data/lib/web/views/widget/download.haml +9 -3
- data/lib/web/views/widget/drag_and_drop.haml +10 -4
- data/lib/web/web_worker.rb +132 -0
- data/lib/worker.rb +142 -0
- data/narou.gemspec +80 -45
- data/narou.rb +6 -4
- data/template/novel.txt.erb +1 -0
- data/webnovel/kakuyomu.jp.yaml +9 -13
- data/webnovel/ncode.syosetu.com.yaml +3 -1
- data/webnovel/novel18.syosetu.com.yaml +8 -1
- data/webnovel/syosetu.org.yaml +3 -1
- data/webnovel/www.akatsuki-novels.com.yaml +4 -2
- data/webnovel/www.mai-net.net.yaml +3 -1
- metadata +109 -48
- data/lib/web/worker.rb +0 -126
data/narou.gemspec
CHANGED
@@ -32,62 +32,96 @@ Gem::Specification.new do |gem|
|
|
32
32
|
install_message = <<-EOS
|
33
33
|
#{"*" * 60}
|
34
34
|
|
35
|
-
3.
|
35
|
+
3.3.0: 2018/09/22
|
36
36
|
------------------
|
37
|
-
####
|
38
|
-
-
|
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
|
-
|
42
|
-
|
43
|
-
|
44
|
-
|
45
|
-
|
46
|
-
|
47
|
-
+
|
48
|
-
|
49
|
-
|
50
|
-
|
51
|
-
|
52
|
-
|
53
|
-
|
54
|
-
|
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
|
-
####
|
61
|
-
-
|
62
|
-
|
63
|
-
-
|
64
|
-
|
65
|
-
|
66
|
-
-
|
67
|
-
|
68
|
-
|
69
|
-
+
|
70
|
-
|
71
|
-
|
72
|
-
|
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
|
-
-
|
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.
|
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
|
-
#
|
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
|
48
|
-
CommandLine.run(ARGV.map(&:dup))
|
49
|
-
|
49
|
+
exit Narou::Backtracer.capture {
|
50
|
+
CommandLine.run!(ARGV.map(&:dup))
|
51
|
+
}
|
data/template/novel.txt.erb
CHANGED
data/webnovel/kakuyomu.jp.yaml
CHANGED
@@ -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:
|
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
|
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
|
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:
|
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:
|
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:
|
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>/
|
data/webnovel/syosetu.org.yaml
CHANGED
@@ -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.
|
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-
|
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/
|
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.
|
551
|
+
3.3.0: 2018/09/22
|
525
552
|
------------------
|
526
|
-
####
|
527
|
-
-
|
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
|
-
|
531
|
-
|
532
|
-
|
533
|
-
|
534
|
-
|
535
|
-
|
536
|
-
+
|
537
|
-
|
538
|
-
|
539
|
-
|
540
|
-
|
541
|
-
|
542
|
-
|
543
|
-
|
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
|
-
####
|
550
|
-
-
|
551
|
-
|
552
|
-
-
|
553
|
-
|
554
|
-
|
555
|
-
-
|
556
|
-
|
557
|
-
|
558
|
-
+
|
559
|
-
|
560
|
-
|
561
|
-
|
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
|
-
-
|
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.
|
644
|
+
version: 2.3.0
|
584
645
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
585
646
|
requirements:
|
586
647
|
- - ">="
|