narou 1.5.10.1 → 1.5.11
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/ChangeLog.md +19 -0
- data/README.md +19 -0
- data/lib/command.rb +1 -0
- data/lib/command/backup.rb +85 -0
- data/lib/command/setting.rb +3 -1
- data/lib/downloader.rb +61 -16
- data/lib/version.rb +1 -1
- data/narou.gemspec +16 -28
- data/preset/ncode.syosetu.com/n3730bn/converter.rb +5 -3
- data/webnovel/www.akatsuki-novels.com.yaml +1 -1
- metadata +19 -30
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: bd47cb5d4e39f0eddbfb803e3dbb8fa700840ad0
|
4
|
+
data.tar.gz: a79e75fda941dc6af47ac7f98af2fd136f22443d
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: dac6a37ea5c1a75e43b20d4b646de60599d3fe5af82cb657f73731a343c0e2801a51906141cb99c528dc6b925b909ba12afe9c0e633e32eec0e230b31840f407
|
7
|
+
data.tar.gz: 137b966c6bb0686f14468f6a8e5676d58c1d268a7b4b04c06fb7ad4fb9f2f0981adb50d71f53d3b07d44d2ad29ac21a23cfad9ac9d04cd53c687b34a2dcdc7be
|
data/ChangeLog.md
CHANGED
@@ -1,6 +1,25 @@
|
|
1
1
|
|
2
2
|
更新履歴 - ChangeLog
|
3
3
|
--------------------
|
4
|
+
2014/07/24 : **1.5.11**
|
5
|
+
* 追加機能もしくは仕様変更
|
6
|
+
- 改稿の更新漏れ対策として、 `update.strong` オプションが追加されました
|
7
|
+
+ `narou s update.strong=true` として設定して下さい
|
8
|
+
+ 改稿日の更新は必ずダウンロードされるようになります(当日はアップデートする度にDLします)。
|
9
|
+
何度も改稿された小説では、更新のタイミングによっては改稿内容を取りこぼす可能性があるため、
|
10
|
+
このオプションを有効にすることで必ず拾えるようにします
|
11
|
+
+ ファイルのタイムスタンプをチェックするので、更新動作が多少遅くなります
|
12
|
+
- 指定の話数ごとにウェイトを入れられる `download.wait-steps` オプションが追加されました
|
13
|
+
+ `narou s download.wait-steps=10` として設定して下さい
|
14
|
+
+ 小説家になろうの場合は11話以上を指定しても10話ごとにウェイトが入ります
|
15
|
+
- `backup` コマンドを追加しました
|
16
|
+
+ 使用例: `narou backup 0` 、 `narou ba 0`
|
17
|
+
+ 小説保存フォルダ直下の backup フォルダに、バックアップ以外の全てのファイルをZIPで固めて保存します
|
18
|
+
- ダイジェスト化検出時の処理項目に「バックアップの作成」と「保存フォルダを開く」を追加しました
|
19
|
+
* Bug Fix
|
20
|
+
- まのわ(n3730bn)のプリセット変換スクリプトの挙動を調整
|
21
|
+
- 暁で一部あらすじが正常に取れていない小説があったので修正
|
22
|
+
|
4
23
|
2014/07/18 : **1.5.10.1**
|
5
24
|
* Bug Fix
|
6
25
|
- replace.txt による置換が正常に行えなかった問題を修正
|
data/README.md
CHANGED
@@ -23,6 +23,25 @@ Narou.rb ― 「小説家になろう」「小説を読もう!」ダウンロ
|
|
23
23
|
|
24
24
|
更新履歴 - ChangeLog
|
25
25
|
--------------------
|
26
|
+
2014/07/24 : **1.5.11**
|
27
|
+
* 追加機能もしくは仕様変更
|
28
|
+
- 改稿の更新漏れ対策として、 `update.strong` オプションが追加されました
|
29
|
+
+ `narou s update.strong=true` として設定して下さい
|
30
|
+
+ 改稿日の更新は必ずダウンロードされるようになります(当日はアップデートする度にDLします)。
|
31
|
+
何度も改稿された小説では、更新のタイミングによっては改稿内容を取りこぼす可能性があるため、
|
32
|
+
このオプションを有効にすることで必ず拾えるようにします
|
33
|
+
+ ファイルのタイムスタンプをチェックするので、更新動作が多少遅くなります
|
34
|
+
- 指定の話数ごとにウェイトを入れられる `download.wait-steps` オプションが追加されました
|
35
|
+
+ `narou s download.wait-steps=10` として設定して下さい
|
36
|
+
+ 小説家になろうの場合は11話以上を指定しても10話ごとにウェイトが入ります
|
37
|
+
- `backup` コマンドを追加しました
|
38
|
+
+ 使用例: `narou backup 0` 、 `narou ba 0`
|
39
|
+
+ 小説保存フォルダ直下の backup フォルダに、バックアップ以外の全てのファイルをZIPで固めて保存します
|
40
|
+
- ダイジェスト化検出時の処理項目に「バックアップの作成」と「保存フォルダを開く」を追加しました
|
41
|
+
* Bug Fix
|
42
|
+
- まのわ(n3730bn)のプリセット変換スクリプトの挙動を調整
|
43
|
+
- 暁で一部あらすじが正常に取れていない小説があったので修正
|
44
|
+
|
26
45
|
2014/07/18 : **1.5.10.1**
|
27
46
|
* Bug Fix
|
28
47
|
- replace.txt による置換が正常に行えなかった問題を修正
|
data/lib/command.rb
CHANGED
@@ -0,0 +1,85 @@
|
|
1
|
+
# -*- coding: utf-8 -*-
|
2
|
+
#
|
3
|
+
# Copyright 2013 whiteleaf. All rights reserved.
|
4
|
+
#
|
5
|
+
|
6
|
+
require_relative "../database"
|
7
|
+
require_relative "../downloader"
|
8
|
+
|
9
|
+
module Command
|
10
|
+
class Backup < CommandBase
|
11
|
+
BACKUP_DIR_NAME = "backup"
|
12
|
+
|
13
|
+
def oneline_help
|
14
|
+
"小説のバックアップを作成します"
|
15
|
+
end
|
16
|
+
|
17
|
+
def initialize
|
18
|
+
super("<target> [<target2> ...]")
|
19
|
+
@opt.separator <<-EOS
|
20
|
+
|
21
|
+
・指定した小説のバックアップを作成します。
|
22
|
+
・バックアップファイルはZIP圧縮され、小説保存フォルダ直下の#{BACKUP_DIR_NAME}フォルダに保存されます。
|
23
|
+
・バックアップ対象は、バックアップファイル以外の小説保存フォルダにあるファイル全てが対象です。
|
24
|
+
|
25
|
+
Example:
|
26
|
+
narou backup 0
|
27
|
+
narou backup n9669bk
|
28
|
+
narou backup 0 1 musyoku
|
29
|
+
EOS
|
30
|
+
end
|
31
|
+
|
32
|
+
def create_backup_filename(data)
|
33
|
+
Helper.replace_filename_special_chars(data["title"]) + "_" + Time.now.strftime("%Y%m%d%H%M%S") + ".zip"
|
34
|
+
end
|
35
|
+
|
36
|
+
def create_backup(data)
|
37
|
+
zipfilename = create_backup_filename(data)
|
38
|
+
pwd = Dir.pwd
|
39
|
+
novel_dir = Downloader.get_novel_data_dir_by_target(data["id"])
|
40
|
+
Dir.chdir(novel_dir)
|
41
|
+
paths = Dir.glob("**/*").keep_if { |path|
|
42
|
+
File.file?(path) && path.split("/", 2)[0] != BACKUP_DIR_NAME
|
43
|
+
}
|
44
|
+
FileUtils.mkdir(BACKUP_DIR_NAME) unless File.exists?(BACKUP_DIR_NAME)
|
45
|
+
Zip.unicode_names = true
|
46
|
+
Zip::File.open(File.join(BACKUP_DIR_NAME, zipfilename), Zip::File::CREATE) do |zip|
|
47
|
+
paths.each do |path|
|
48
|
+
zip.add(path, path)
|
49
|
+
end
|
50
|
+
end
|
51
|
+
Dir.chdir(pwd)
|
52
|
+
zipfilename
|
53
|
+
end
|
54
|
+
|
55
|
+
def execute(argv)
|
56
|
+
super
|
57
|
+
if argv.empty?
|
58
|
+
puts @opt.help
|
59
|
+
return
|
60
|
+
end
|
61
|
+
require "zip"
|
62
|
+
argv.each_with_index do |target, i|
|
63
|
+
Helper.print_horizontal_rule if i > 0
|
64
|
+
data = Downloader.get_data_by_target(target)
|
65
|
+
unless data
|
66
|
+
puts "#{target} は存在しません"
|
67
|
+
next
|
68
|
+
end
|
69
|
+
puts "ID:#{data["id"]} #{data["title"]}"
|
70
|
+
print "バックアップを作成しています"
|
71
|
+
Thread.new {
|
72
|
+
loop do
|
73
|
+
print "."
|
74
|
+
sleep(0.5)
|
75
|
+
end
|
76
|
+
}.tap { |th|
|
77
|
+
zipfilename = create_backup(data)
|
78
|
+
th.kill
|
79
|
+
puts
|
80
|
+
puts "#{zipfilename} を作成しました"
|
81
|
+
}
|
82
|
+
end
|
83
|
+
end
|
84
|
+
end
|
85
|
+
end
|
data/lib/command/setting.rb
CHANGED
@@ -240,10 +240,12 @@ module Command
|
|
240
240
|
" " * 6 + "※注意:存在しないフォルダだとエラーになる"],
|
241
241
|
"convert.inspect" => [:boolean, "常に変換時に調査結果を表示するか"],
|
242
242
|
"download.interval" => [:float, "各話DL時に指定した秒数待機する。デフォルト0"],
|
243
|
+
"download.wait-steps" => [:integer, "この値で指定した話数ごとにウェイトを入れる\n" +
|
244
|
+
" " * 6 + "※注意:11以上を設定してもなろうの場合は10話ごとにウェイトが入ります"],
|
243
245
|
"send.without-freeze" => [:boolean, "`全話'送信時に凍結された小説は対象外に"],
|
246
|
+
"update.strong" => [:boolean, "更新漏れが無いように改稿日の分は必ずDLする"],
|
244
247
|
"device" => [:string, "変換、送信対象の端末(sendの--help参照)"],
|
245
248
|
"multiple-delimiter" => [:string, "--multiple指定時の区切り文字"],
|
246
|
-
|
247
249
|
},
|
248
250
|
global: {
|
249
251
|
"aozoraepub3dir" => [:directory, "AozoraEpub3のあるフォルダを指定", INVISIBLE],
|
data/lib/downloader.rb
CHANGED
@@ -23,10 +23,12 @@ class Downloader
|
|
23
23
|
CACHE_SAVE_DIR_NAME = "cache" # 差分用キャッシュ保存用ディレクトリ名
|
24
24
|
RAW_DATA_DIR_NAME = "raw" # 本文の生データを保存するディレクトリ名
|
25
25
|
TOC_FILE_NAME = "toc.yaml"
|
26
|
+
STEPS_WAIT_TIME = 5 # 数話ごとにかかるwaitの秒数
|
26
27
|
WAITING_TIME_FOR_503 = 20 # 503 のときに待機する秒数
|
27
28
|
RETRY_MAX_FOR_503 = 5 # 503 のときに何回再試行するか
|
28
29
|
NOVEL_TYPE_SERIES = 1 # 連載
|
29
30
|
NOVEL_TYPE_SS = 2 # 短編
|
31
|
+
DISPLAY_LIMIT_DIGITS = 4 # indexの表示桁数限界
|
30
32
|
|
31
33
|
attr_reader :id
|
32
34
|
|
@@ -387,13 +389,17 @@ class Downloader
|
|
387
389
|
when "2"
|
388
390
|
return true
|
389
391
|
when "3"
|
390
|
-
Command::Freeze.execute!([
|
392
|
+
Command::Freeze.execute!([latest_toc["toc_url"]])
|
391
393
|
return true
|
392
394
|
when "4"
|
395
|
+
Command::Backup.execute!([latest_toc["toc_url"]])
|
396
|
+
when "5"
|
393
397
|
STDOUT.puts "あらすじ"
|
394
398
|
STDOUT.puts latest_toc["story"]
|
395
|
-
when "
|
399
|
+
when "6"
|
396
400
|
Helper.open_browser(latest_toc["toc_url"])
|
401
|
+
when "7"
|
402
|
+
Helper.open_directory(Downloader.get_novel_data_dir_by_target(latest_toc["toc_url"]))
|
397
403
|
end
|
398
404
|
digest_output_interface(old_subtitles_count, latest_subtitles_count)
|
399
405
|
end
|
@@ -404,13 +410,16 @@ class Downloader
|
|
404
410
|
|
405
411
|
def digest_output_interface(old_subtitles_count, latest_subtitles_count)
|
406
412
|
STDOUT.puts
|
407
|
-
STDOUT.puts "保存済み話数: #{old_subtitles_count}
|
413
|
+
STDOUT.puts "保存済み話数: #{old_subtitles_count}"
|
414
|
+
STDOUT.puts "更新後の話数: #{latest_subtitles_count}"
|
408
415
|
STDOUT.puts
|
409
416
|
STDOUT.puts "1: このまま更新する"
|
410
417
|
STDOUT.puts "2: 更新をキャンセル"
|
411
418
|
STDOUT.puts "3: 更新をキャンセルして小説を凍結する"
|
412
|
-
STDOUT.puts "4:
|
413
|
-
STDOUT.puts "5:
|
419
|
+
STDOUT.puts "4: バックアップを作成する"
|
420
|
+
STDOUT.puts "5: 最新のあらすじを表示する"
|
421
|
+
STDOUT.puts "6: 小説ページをブラウザで開く"
|
422
|
+
STDOUT.puts "7: 保存フォルダを開く"
|
414
423
|
STDOUT.print "選択する処理の番号を入力: "
|
415
424
|
end
|
416
425
|
|
@@ -568,6 +577,10 @@ class Downloader
|
|
568
577
|
}
|
569
578
|
end
|
570
579
|
|
580
|
+
def __strdate_to_ymd(date)
|
581
|
+
Date.parse(date.to_s.tr("年月日時分秒", "///:::")).strftime("%Y%m%d")
|
582
|
+
end
|
583
|
+
|
571
584
|
#
|
572
585
|
# 本文更新チェック
|
573
586
|
#
|
@@ -575,6 +588,7 @@ class Downloader
|
|
575
588
|
#
|
576
589
|
def update_body_check(old_subtitles, latest_subtitles)
|
577
590
|
return latest_subtitles unless old_subtitles
|
591
|
+
strong_update = LocalSetting.get["local_setting"]["update.strong"]
|
578
592
|
latest_subtitles.dup.keep_if do |latest|
|
579
593
|
index = latest["index"]
|
580
594
|
index_in_old_toc = __search_index_in_subtitles(old_subtitles, index)
|
@@ -589,19 +603,38 @@ class Downloader
|
|
589
603
|
next true
|
590
604
|
end
|
591
605
|
# 更新日チェック
|
606
|
+
# subdate : 初稿投稿日(Arcadiaでは改稿日)
|
607
|
+
# subupdate : 改稿日
|
592
608
|
old_subupdate = old["subupdate"]
|
593
609
|
latest_subupdate = latest["subupdate"]
|
594
610
|
if old_subupdate
|
595
611
|
if old_subupdate == ""
|
596
612
|
next latest_subupdate != ""
|
597
613
|
end
|
614
|
+
if strong_update
|
615
|
+
if __strdate_to_ymd(old_subupdate) == __strdate_to_ymd(get_section_file_timestamp(latest))
|
616
|
+
next true
|
617
|
+
end
|
618
|
+
end
|
598
619
|
latest_subupdate > old_subupdate
|
599
620
|
else
|
621
|
+
if strong_update
|
622
|
+
if __strdate_to_ymd(old["subdate"]) == __strdate_to_ymd(get_section_file_timestamp(latest))
|
623
|
+
next true
|
624
|
+
end
|
625
|
+
end
|
600
626
|
latest["subdate"] > old["subdate"]
|
601
627
|
end
|
602
628
|
end
|
603
629
|
end
|
604
630
|
|
631
|
+
#
|
632
|
+
# 対象話数のタイムスタンプを取得
|
633
|
+
#
|
634
|
+
def get_section_file_timestamp(subtitle_info)
|
635
|
+
File.mtime(create_section_file_path(subtitle_info))
|
636
|
+
end
|
637
|
+
|
605
638
|
#
|
606
639
|
# 各話の情報を取得
|
607
640
|
#
|
@@ -648,29 +681,32 @@ class Downloader
|
|
648
681
|
# subtitles にダウンロードしたいものをまとめた subtitle info を渡す
|
649
682
|
#
|
650
683
|
def sections_download_and_save(subtitles)
|
651
|
-
@@
|
652
|
-
@@
|
684
|
+
@@__wait_counter ||= 0
|
685
|
+
@@__last_download_time ||= Time.now - 20
|
653
686
|
max = subtitles.count
|
654
687
|
return if max == 0
|
655
688
|
puts ("<bold><green>" + TermColor.escape("ID:#{@id} #{get_title} のDL開始") + "</green></bold>").termcolor
|
656
689
|
interval_sleep_time = LocalSetting.get["local_setting"]["download.interval"] || 0
|
657
690
|
interval_sleep_time = 0 if interval_sleep_time < 0
|
691
|
+
download_wait_steps = LocalSetting.get["local_setting"]["download.wait-steps"] || 0
|
692
|
+
download_wait_steps = 10 if @setting["is_narou"] && (download_wait_steps > 10 || download_wait_steps == 0)
|
658
693
|
save_least_one = false
|
659
|
-
|
660
|
-
|
694
|
+
max_steps_wait_time = [STEPS_WAIT_TIME, interval_sleep_time].max
|
695
|
+
if Time.now - @@__last_download_time > max_steps_wait_time
|
696
|
+
@@__wait_counter = 0
|
661
697
|
end
|
662
698
|
subtitles.each_with_index do |subtitle_info, i|
|
663
|
-
if
|
699
|
+
if download_wait_steps > 0 && @@__wait_counter % download_wait_steps == 0 && @@__wait_counter >= download_wait_steps
|
664
700
|
# MEMO:
|
665
701
|
# 小説家になろうは連続DL規制があるため、ウェイトを入れる必要がある。
|
666
702
|
# 10話ごとに規制が入るため、10話ごとにウェイトを挟む。
|
667
703
|
# 1話ごとに1秒待機を10回繰り返そうと、11回目に規制が入るため、ウェイトは必ず必要。
|
668
|
-
sleep(
|
704
|
+
sleep(max_steps_wait_time)
|
669
705
|
else
|
670
|
-
sleep(interval_sleep_time) if @@
|
706
|
+
sleep(interval_sleep_time) if @@__wait_counter > 0
|
671
707
|
end
|
672
|
-
@@
|
673
|
-
@@
|
708
|
+
@@__wait_counter += 1
|
709
|
+
@@__last_download_time = Time.now
|
674
710
|
index, subtitle, file_subtitle, chapter = %w(index subtitle file_subtitle chapter).map { |k|
|
675
711
|
subtitle_info[k]
|
676
712
|
}
|
@@ -678,8 +714,8 @@ class Downloader
|
|
678
714
|
puts "#{chapter}"
|
679
715
|
end
|
680
716
|
if get_novel_type == NOVEL_TYPE_SERIES
|
681
|
-
if index.to_s.length
|
682
|
-
# index
|
717
|
+
if index.to_s.length <= DISPLAY_LIMIT_DIGITS
|
718
|
+
# indexの数字がでかいと見た目がみっともないので特定の桁以内だけ表示する
|
683
719
|
print "第#{index}部分 "
|
684
720
|
end
|
685
721
|
else
|
@@ -852,6 +888,7 @@ class Downloader
|
|
852
888
|
|
853
889
|
#
|
854
890
|
# 小説データの格納ディレクトリパス
|
891
|
+
#
|
855
892
|
def get_novel_data_dir
|
856
893
|
return @novel_data_dir if @novel_data_dir
|
857
894
|
raise "小説名がまだ設定されていません" unless get_file_title
|
@@ -859,6 +896,14 @@ class Downloader
|
|
859
896
|
@novel_data_dir
|
860
897
|
end
|
861
898
|
|
899
|
+
#
|
900
|
+
# 小説本文の保存パスを生成
|
901
|
+
#
|
902
|
+
def create_section_file_path(subtitle_info)
|
903
|
+
filename = "#{subtitle_info["index"]} #{subtitle_info["file_subtitle"]}.yaml"
|
904
|
+
File.join(get_novel_data_dir, SECTION_SAVE_DIR_NAME, filename)
|
905
|
+
end
|
906
|
+
|
862
907
|
#
|
863
908
|
# 小説データの格納ディレクトリに保存
|
864
909
|
#
|
data/lib/version.rb
CHANGED
data/narou.gemspec
CHANGED
@@ -46,36 +46,24 @@ narou コマンドのインストール or アップデートが完了しまし
|
|
46
46
|
初めてこのアプリケーションを使う場合、小説管理用のフォルダを初期化する必要があります。
|
47
47
|
任意のフォルダで `narou init' を実行して下さい。
|
48
48
|
|
49
|
-
2014/07/
|
49
|
+
2014/07/24 : **1.5.11**
|
50
50
|
* 追加機能もしくは仕様変更
|
51
|
-
- `
|
52
|
-
+ `narou
|
53
|
-
+
|
54
|
-
|
55
|
-
|
56
|
-
|
57
|
-
|
58
|
-
|
59
|
-
|
60
|
-
- `
|
61
|
-
|
62
|
-
|
63
|
-
|
64
|
-
+ もしこのオプションをデフォルトの挙動にしたければ、 `narou s default_args.update=-a` として下さい
|
65
|
-
- 変換用のプリセットデータを追加
|
66
|
-
+ デスマーチからはじまる異世界狂想曲(n9902bn)
|
67
|
-
+ この世界がゲームだと俺だけが知っている(n9078bd)
|
68
|
-
+ まのわ ~魔物倒す・能力奪う・私強くなる~(n3730bn)
|
69
|
-
- すでに同梱されているプリセットデータを一部更新
|
70
|
-
+ 異世界迷宮で奴隷ハーレムを(n4259s)
|
71
|
-
+ ログ・ホライズン(n8725k)
|
51
|
+
- 改稿の更新漏れ対策として、 `update.strong` オプションが追加されました
|
52
|
+
+ `narou s update.strong=true` として設定して下さい
|
53
|
+
+ 改稿日の更新は必ずダウンロードされるようになります(当日はアップデートする度にDLします)。
|
54
|
+
何度も改稿された小説では、更新のタイミングによっては改稿内容を取りこぼす可能性があるため、
|
55
|
+
このオプションを有効にすることで必ず拾えるようにします
|
56
|
+
+ ファイルのタイムスタンプをチェックするので、更新動作が多少遅くなります
|
57
|
+
- 指定の話数ごとにウェイトを入れられる `download.wait-steps` オプションが追加されました
|
58
|
+
+ `narou s download.wait-steps=10` として設定して下さい
|
59
|
+
+ 小説家になろうの場合は11話以上を指定しても10話ごとにウェイトが入ります
|
60
|
+
- `backup` コマンドを追加しました
|
61
|
+
+ 使用例: `narou backup 0` 、 `narou ba 0`
|
62
|
+
+ 小説保存フォルダ直下の backup フォルダに、バックアップ以外の全てのファイルをZIPで固めて保存します
|
63
|
+
- ダイジェスト化検出時の処理項目に「バックアップの作成」と「保存フォルダを開く」を追加しました
|
72
64
|
* Bug Fix
|
73
|
-
-
|
74
|
-
-
|
75
|
-
|
76
|
-
2014/07/18 : **1.5.10.1**
|
77
|
-
* Bug Fix
|
78
|
-
- replace.txt による置換が正常に行えなかった問題を修正
|
65
|
+
- まのわ(n3730bn)のプリセット変換スクリプトの挙動を調整
|
66
|
+
- 暁で一部あらすじが正常に取れていない小説があったので修正
|
79
67
|
|
80
68
|
#{"*" * 79}
|
81
69
|
EOS
|
@@ -8,7 +8,10 @@
|
|
8
8
|
#
|
9
9
|
converter "n3730bn まのわ ~魔物倒す・能力奪う・私強くなる~" do
|
10
10
|
def before(io, text_type)
|
11
|
-
if text_type
|
11
|
+
if text_type == "postscript"
|
12
|
+
@__manowa_setting_num2kanji |= @setting.enable_convert_num_to_kanji
|
13
|
+
@setting.enable_convert_num_to_kanji = false
|
14
|
+
else
|
12
15
|
super
|
13
16
|
end
|
14
17
|
io
|
@@ -25,8 +28,7 @@ converter "n3730bn まのわ ~魔物倒す・能力奪う・私強くなる~
|
|
25
28
|
end
|
26
29
|
end
|
27
30
|
if text_type == "postscript"
|
28
|
-
|
29
|
-
buffer.string.gsub!("2分アキ", "二分アキ")
|
31
|
+
@setting.enable_convert_num_to_kanji = @__manowa_setting_num2kanji
|
30
32
|
end
|
31
33
|
buffer
|
32
34
|
end
|
@@ -15,7 +15,7 @@ title_strip_pattern: null
|
|
15
15
|
title: id="LookNovel">(?<title>.+?)</a>
|
16
16
|
author: 作者:<a href="/users/view/\d+">(?<author>.+?)</a>
|
17
17
|
story: |-
|
18
|
-
|
18
|
+
<div class=" body-x1 body-normal body-w\d+">.+?<div>(?<story>.+?)</div>
|
19
19
|
|
20
20
|
# ------------------------------------------------------------
|
21
21
|
# 目次取得設定
|
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: 1.5.
|
4
|
+
version: 1.5.11
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- whiteleaf7
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2014-07-
|
11
|
+
date: 2014-07-24 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: termcolor
|
@@ -84,6 +84,7 @@ files:
|
|
84
84
|
- lib/color.rb
|
85
85
|
- lib/command.rb
|
86
86
|
- lib/command/alias.rb
|
87
|
+
- lib/command/backup.rb
|
87
88
|
- lib/command/browser.rb
|
88
89
|
- lib/command/convert.rb
|
89
90
|
- lib/command/diff.rb
|
@@ -194,36 +195,24 @@ post_install_message: |
|
|
194
195
|
初めてこのアプリケーションを使う場合、小説管理用のフォルダを初期化する必要があります。
|
195
196
|
任意のフォルダで `narou init' を実行して下さい。
|
196
197
|
|
197
|
-
2014/07/
|
198
|
+
2014/07/24 : **1.5.11**
|
198
199
|
* 追加機能もしくは仕様変更
|
199
|
-
- `
|
200
|
-
+ `narou
|
201
|
-
+
|
202
|
-
|
203
|
-
|
204
|
-
|
205
|
-
|
206
|
-
|
207
|
-
|
208
|
-
- `
|
209
|
-
|
210
|
-
|
211
|
-
|
212
|
-
+ もしこのオプションをデフォルトの挙動にしたければ、 `narou s default_args.update=-a` として下さい
|
213
|
-
- 変換用のプリセットデータを追加
|
214
|
-
+ デスマーチからはじまる異世界狂想曲(n9902bn)
|
215
|
-
+ この世界がゲームだと俺だけが知っている(n9078bd)
|
216
|
-
+ まのわ ~魔物倒す・能力奪う・私強くなる~(n3730bn)
|
217
|
-
- すでに同梱されているプリセットデータを一部更新
|
218
|
-
+ 異世界迷宮で奴隷ハーレムを(n4259s)
|
219
|
-
+ ログ・ホライズン(n8725k)
|
200
|
+
- 改稿の更新漏れ対策として、 `update.strong` オプションが追加されました
|
201
|
+
+ `narou s update.strong=true` として設定して下さい
|
202
|
+
+ 改稿日の更新は必ずダウンロードされるようになります(当日はアップデートする度にDLします)。
|
203
|
+
何度も改稿された小説では、更新のタイミングによっては改稿内容を取りこぼす可能性があるため、
|
204
|
+
このオプションを有効にすることで必ず拾えるようにします
|
205
|
+
+ ファイルのタイムスタンプをチェックするので、更新動作が多少遅くなります
|
206
|
+
- 指定の話数ごとにウェイトを入れられる `download.wait-steps` オプションが追加されました
|
207
|
+
+ `narou s download.wait-steps=10` として設定して下さい
|
208
|
+
+ 小説家になろうの場合は11話以上を指定しても10話ごとにウェイトが入ります
|
209
|
+
- `backup` コマンドを追加しました
|
210
|
+
+ 使用例: `narou backup 0` 、 `narou ba 0`
|
211
|
+
+ 小説保存フォルダ直下の backup フォルダに、バックアップ以外の全てのファイルをZIPで固めて保存します
|
212
|
+
- ダイジェスト化検出時の処理項目に「バックアップの作成」と「保存フォルダを開く」を追加しました
|
220
213
|
* Bug Fix
|
221
|
-
-
|
222
|
-
-
|
223
|
-
|
224
|
-
2014/07/18 : **1.5.10.1**
|
225
|
-
* Bug Fix
|
226
|
-
- replace.txt による置換が正常に行えなかった問題を修正
|
214
|
+
- まのわ(n3730bn)のプリセット変換スクリプトの挙動を調整
|
215
|
+
- 暁で一部あらすじが正常に取れていない小説があったので修正
|
227
216
|
|
228
217
|
*******************************************************************************
|
229
218
|
rdoc_options: []
|