narou 2.4.2 → 2.5.1

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 (53) hide show
  1. checksums.yaml +4 -4
  2. data/.gitignore +1 -0
  3. data/ChangeLog.md +56 -0
  4. data/README.md +56 -29
  5. data/lib/command/convert.rb +39 -7
  6. data/lib/command/diff.rb +42 -11
  7. data/lib/command/inspect.rb +1 -1
  8. data/lib/command/setting.rb +150 -45
  9. data/lib/command/tag.rb +8 -8
  10. data/lib/command/update.rb +57 -1
  11. data/lib/commandbase.rb +3 -0
  12. data/lib/converterbase.rb +17 -9
  13. data/lib/database.rb +4 -0
  14. data/lib/device/epub.rb +1 -1
  15. data/lib/device/ibooks.rb +1 -1
  16. data/lib/device/ibunko.rb +13 -6
  17. data/lib/device/kindle.rb +1 -1
  18. data/lib/device/kobo.rb +1 -1
  19. data/lib/device/reader.rb +1 -1
  20. data/lib/downloader.rb +10 -5
  21. data/lib/helper.rb +114 -3
  22. data/lib/ini.rb +3 -1
  23. data/lib/inventory.rb +3 -1
  24. data/lib/loadconverter.rb +1 -11
  25. data/lib/mailer.rb +1 -0
  26. data/lib/narou.rb +56 -5
  27. data/lib/novelconverter.rb +7 -5
  28. data/lib/novelsetting.rb +116 -63
  29. data/lib/template.rb +4 -4
  30. data/lib/version.rb +1 -1
  31. data/lib/web/appserver.rb +40 -9
  32. data/lib/web/public/resources/narou.library.js +35 -3
  33. data/lib/web/public/resources/narou.ui.js +16 -1
  34. data/lib/web/pushserver.rb +1 -0
  35. data/lib/web/settingmessages.rb +6 -3
  36. data/lib/web/views/diff_list.haml +11 -0
  37. data/lib/web/views/edit_replace_txt.haml +59 -0
  38. data/lib/web/views/help.haml +2 -2
  39. data/lib/web/views/index.haml +6 -4
  40. data/lib/web/views/layout.haml +11 -2
  41. data/lib/web/views/novels/setting.haml +51 -66
  42. data/lib/web/views/settings.haml +52 -15
  43. data/lib/web/views/style.scss +44 -2
  44. data/lib/web/views/widget.haml +6 -8
  45. data/narou.gemspec +45 -6
  46. data/spec/convert_spec.rb +1 -1
  47. data/spec/converterbase_spec.rb +25 -1
  48. data/spec/generator/convert_spec_gen.rb +1 -1
  49. data/spec/helper_spec.rb +8 -0
  50. data/spec/novelsetting_spec.rb +1 -1
  51. data/template/novel.txt.erb +1 -1
  52. data/template/setting.ini.erb +15 -3
  53. metadata +49 -8
@@ -9,7 +9,7 @@ require_relative "../lib/converterbase"
9
9
 
10
10
  describe ConverterBase do
11
11
  before do
12
- novelsetting = NovelSetting.new("", true)
12
+ novelsetting = NovelSetting.create("", true, true)
13
13
  inspector = Inspector.new(novelsetting)
14
14
  @converter = ConverterBase.new(novelsetting, inspector, nil)
15
15
  end
@@ -172,6 +172,30 @@ opqrstu
172
172
  "そっちの『鈴』と一緒に入っていた").to eq \
173
173
  "そっちの[#zws]『鈴[#zws]』[#zws]と[#zws]一緒[#zws]に[#zws]入[#zws]っていた[#zws]"
174
174
  end
175
+
176
+ it "開きカッコの直後にzwsは挿入しない" do
177
+ expect(@converter.insert_word_separator \
178
+ "(ほげ)『ふが』").to eq \
179
+ "(ほげ[#zws])『ふが[#zws]』"
180
+ end
181
+
182
+ it "開きカッコの直後にzwsは挿入しない" do
183
+ expect(@converter.insert_word_separator \
184
+ "[ほげ]").to eq \
185
+ "[ほげ[#zws]]"
186
+ end
187
+
188
+ it "英語はそのまま" do
189
+ expect(@converter.insert_word_separator \
190
+ "トムは言った。「This is a pen」").to eq \
191
+ "トム[#zws]は[#zws]言[#zws]った[#zws]。「This is a pen[#zws]」"
192
+ end
193
+
194
+ it "タグの中ではzwsは挿入しない" do
195
+ expect(@converter.insert_word_separator \
196
+ "click <a href=\"http://google.com\">link</a>").to eq \
197
+ "click [#zws]<a href=\"http://google.com\">link[#zws]</a>"
198
+ end
175
199
  end
176
200
 
177
201
  describe "文字単位で区切る" do
@@ -80,7 +80,7 @@ describe "convert" do
80
80
  dir = File.dirname(path)
81
81
  filename = File.basename(path)
82
82
  $stdout.silence do
83
- CommandLine.run(["convert", path, "--no-epub", "--no-open", "--ignore-force"])
83
+ CommandLine.run(["convert", path, "--no-epub", "--no-open", "--ignore-force", "--ignore-default"])
84
84
  end
85
85
  output_file = File.join(dir, "[#{AUTHOR}] #{filename}")
86
86
  correct_file = File.join(dir, "correct_#{filename}")
@@ -68,6 +68,14 @@ describe Helper do
68
68
  context "string" do
69
69
  it { expect(Helper.string_cast_to_type("string", :string)).to eq "string" }
70
70
  end
71
+
72
+ context "select" do
73
+ it { expect(Helper.string_cast_to_type("string", :select)).to eq "string" }
74
+ end
75
+
76
+ context "multiple" do
77
+ it { expect(Helper.string_cast_to_type("string", :multiple)).to eq "string" }
78
+ end
71
79
  end
72
80
 
73
81
  describe ".date_string_to_time" do
@@ -11,7 +11,7 @@ describe NovelSetting do
11
11
  context "setting.ini 書き出し関係" do
12
12
  before do
13
13
  @tmpdir = Dir.mktmpdir
14
- @novel_setting = NovelSetting.new(@tmpdir, true)
14
+ @novel_setting = NovelSetting.new(@tmpdir, true, true)
15
15
  @inipath = File.join(@tmpdir, NovelSetting::INI_NAME)
16
16
  end
17
17
 
@@ -10,7 +10,7 @@
10
10
 
11
11
  <% end -%>
12
12
  掲載ページ:
13
- <a href="<%= Helper.ampersand_to_entity(toc["toc_url"]) %>"><%= toc["toc_url"] %></a>
13
+ <a href="<%= toc["toc_url"] %>"><%= toc["toc_url"] %></a>
14
14
  [#区切り線]
15
15
 
16
16
  <% sections.each_with_index do |section, i| -%>
@@ -1,9 +1,21 @@
1
1
  <%# -*- coding: utf-8 -*- -%>
2
- <% Template.target_binary_version(1.0) -%>
3
- <% default_settings.each do |element| -%>
2
+ <% Template.target_binary_version(1.1) -%>
3
+ ; 小説の変換時の挙動を変更出来ます。
4
+ ; 行頭がセミコロンの行はコメントです。
5
+ ;
6
+ ; 変更したい設定値の行頭のセミコロンを削除し、値を設定して下さい。
7
+ ; コメントになったままの行は、各種操作によって設定した値によって最終決定されます。
8
+ ; 設定値が決定されるフローは以下の通りです。
9
+ ;
10
+ ; 1. force.* が設定されているか
11
+ ; 2. setting.ini の項目が有効になっているか
12
+ ; 3. default.* が設定されているか
13
+ ; 4. 上記いずれかにも該当しない場合、Narou.rb のオリジナル設定
14
+
15
+ <% original_settings.each do |element| -%>
4
16
  <% element[:help].split("\n").each do |help_line| -%>
5
17
  ; <%= help_line %>
6
18
  <% end -%>
7
- <%= element[:name] %> = <%= element[:value].kind_of?(String) ? %!"#{element[:value]}"! : element[:value] %>
19
+ ; <%= element[:name] %> = <%= element[:value].kind_of?(String) ? %!"#{element[:value]}"! : element[:value] %>
8
20
 
9
21
  <% end -%>
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: 2.4.2
4
+ version: 2.5.1
5
5
  platform: ruby
6
6
  authors:
7
7
  - whiteleaf7
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2015-06-07 00:00:00.000000000 Z
11
+ date: 2015-07-09 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: termcolorlight
@@ -301,6 +301,8 @@ files:
301
301
  - lib/web/streaminginput.rb
302
302
  - lib/web/streaminglogger.rb
303
303
  - lib/web/views/about.haml
304
+ - lib/web/views/diff_list.haml
305
+ - lib/web/views/edit_replace_txt.haml
304
306
  - lib/web/views/help.haml
305
307
  - lib/web/views/index.haml
306
308
  - lib/web/views/js/widget.erb
@@ -415,14 +417,53 @@ metadata: {}
415
417
  post_install_message: |
416
418
  *******************************************************************************
417
419
 
418
- 2.4.2 : 2015/06/07
420
+ 2.5.0 : 2015/07/10
419
421
  ------------------
422
+ #### 追加機能
423
+ - WEB UI の個別メニューから「差分を表示」を選択した際に、過去の差分を選択出来る
424
+ ようにしました
425
+ - WEB UI の個別メニューに「タグを編集」を追加しました
426
+ - 変換設定の各項目の共通設定を変更できる default.* 系設定を追加しました
427
+ + この共通設定は setting.ini で未設定の項目がある場合に適用されます。また、
428
+ force.* が設定されていた場合は setting.ini、共通設定ともに無視されます
429
+ + 例えば `enable_illust` の共通設定を変更したい場合、
430
+ `narou s default.enable_illust=false` とすることで変更出来ます
431
+ (WEB UIからは環境設定のページで隠しオプションを表示)
432
+ - `convert` コマンドに `--ignore-default` オプションを追加しました。変換時の
433
+ default.* 系設定を無視します
434
+ - `convert.copy-to-grouping` オプションを追加しました
435
+ + copy-to で指定したフォルダの中に更に device もしくは convert.multi-device
436
+ で指定した端末毎に振り分けるように出来ます
437
+ + 有効にするには `narou s convert.copy-to-grouping=true` を実行して下さい
438
+ - 全小説を対象にした replace.txt による置換に対応しました
439
+ + narou init を使用したフォルダに replace.txt を設置すると認識します。
440
+ WEB UI においては環境設定にて設定できます
441
+ - `update` コマンドにアップデートの順番を変更する `--sort-by` オプションが追加
442
+ されました(短縮 `-s`)
443
+ + `narou u --sort-by general_update` のように直接コマンドのオプションとして
444
+ 指定するか、 `narou s update.sort-by=general_update` と設定として保存して
445
+ 下さい
446
+ + 指定出来るのは id, last_update(更新日), title(タイトル), author(作者名),
447
+ new_arrivals_date(新着日), general_lastup(最新話掲載日) です
448
+ - WEB UI の設定画面において一部項目をセレクトボックスで選択出来るようにしました
449
+
450
+ #### 仕様変更
451
+ - default.* 系設定追加に伴い、新規DL時の setting.ini の全ての項目がコメント
452
+ アウトされた状態で生成されます。また、WEB UI の個別変換設定画面にて、各項目に
453
+ 「未設定」が追加されます
454
+ - `setting` コマンド(WEB UIにおける環境設定)の項目の順序・表示を変更しました
455
+ - `setting` コマンドの一部項目で適切な値が入力されなかった場合にエラーが出る
456
+ ようになりました
457
+ - WEB UI の個別メニュー内項目の並び順を変更しました
458
+ - WEB UI サーバ起動中にコマンドラインで更新した場合でもサーバを再起動せずに変更
459
+ が反映されるようになりました
460
+
420
461
  #### Bug Fix
421
- - WEB UI のタグ検索結果がページリロードで解除されてしまう不具合を修正
422
- - WEB UI で最新話掲載日を更新したあとにリストを更新するように修正
423
- - 小説家になろうのルビ仕様に追随してない場合があったのを修正
424
- - ハーメルン、ムーンライトノベルズの小説をNコードでDL出来ない不具合を修正
425
- - v2.4.0以前にDLした短編が更新できなくなっていた不具合を修正
462
+ - `enable_insert_word_separator` を有効時に `[` が正常に禁則処理されない問題を
463
+ 修正
464
+ - i文庫形式に変換する際に `enable_illust` の設定が無視されていたのを修正
465
+ - WEB UI サーバ起動中に converter.rb を編集しても反映されなかったのを修正
466
+ - 文章中のリンクが正しく飛べない場合があったのを修正
426
467
 
427
468
  *******************************************************************************
428
469
  rdoc_options: []