narou 1.5.9 → 1.5.10

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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: fe34c957543f60ef448b405227264dde312b2b03
4
- data.tar.gz: 4f389933c4f73d383029b49c563e3ea92fb3bc4f
3
+ metadata.gz: 56c210419a1a3849a1c1edcbd5bdd2855876881a
4
+ data.tar.gz: 4ca45ce21cee4e08427bdb0608bc69751af31e56
5
5
  SHA512:
6
- metadata.gz: b4dbf58624053c7eac0fe53164ae4287e254c351c2bb7eda357bc49c7f26df72e9d75baee2d28be21f0ea4446a308776aa7ce4068cf4a4024aa1e7611c33a52a
7
- data.tar.gz: fb75c69c63234009473a3fe27c2e72078a75a67ab19a013abe2b4f31e785d908749988b9fa0c92eb116df36644e2b63f5e36ea54ae56ed893a57ba73bdd4a023
6
+ metadata.gz: c7a5152dc84108658c058af34512356430024e7fab23f6e83731f64b42eba4f2564385695af29182a623599f780f2df8e6132ce5848e7bc676d35b3cb785fc75
7
+ data.tar.gz: bb770317a3b6a0f1ef789cf1baa88ab93e430e9ea8480f6ad859bc512e49b0fca3b38a1465292a68b91c461c740c0b66c5cf5ca927662d180d38001925b89a00
@@ -1,6 +1,33 @@
1
1
  
2
2
  更新履歴 - ChangeLog
3
3
  --------------------
4
+ 2014/07/14 : **1.5.10**
5
+ * 追加機能もしくは仕様変更
6
+ - `download` コマンドに対話モードを追加しました
7
+ + `narou d` と対象小説を指定せずに実行すると対話モードに移行します(-f 等のオプションは指定出来ます)
8
+ + 連続してNコードもしくはURLを入力できるモードです。ArcadiaのURLは " " で囲む必要がありません
9
+ + 想定される使い方:
10
+ * 複数のURLを書いたテキストをコピペして流しこむ
11
+ * テキストファイルからリダイレクトで入力する
12
+ - `narou d < list.txt`
13
+ * BATファイル等で `narou d` のみを実行し、新規DL時の入力を簡便にする
14
+ - 自動生成される converter.rb に簡単な説明を付け加えるようにしました
15
+ - `remove` コマンドの `--with-file` オプションに短縮版 `-w` を追加しました
16
+ - `narou init` 実行時に現在の AozoraEpub3 の場所を表示するようになりました
17
+ - `update` コマンドに新着小説のみを変換するオプション `--convert-only-new-arrival` (短縮 `-a` )が
18
+ 追加されました(naoh87さんによる実装)
19
+ + もしこのオプションをデフォルトの挙動にしたければ、 `narou s default_args.update=-a` として下さい
20
+ - 変換用のプリセットデータを追加
21
+ + デスマーチからはじまる異世界狂想曲(n9902bn)
22
+ + この世界がゲームだと俺だけが知っている(n9078bd)
23
+ + まのわ ~魔物倒す・能力奪う・私強くなる~(n3730bn)
24
+ - すでに同梱されているプリセットデータを一部更新
25
+ + 異世界迷宮で奴隷ハーレムを(n4259s)
26
+ + ログ・ホライズン(n8725k)
27
+ * Bug Fix
28
+ - replace.txt で置換対象を削除するという表現(あいう<tab><改行>)が出来なかったのを修正
29
+ - `--time` オプションで表示される実行時間がより正確になるように調整しました
30
+
4
31
  2014/07/04 : **1.5.9**
5
32
  * Bug Fix
6
33
  - 作者名が半角数字だけの場合にクラッシュする問題を修正
data/README.md CHANGED
@@ -23,6 +23,33 @@ Narou.rb ― 「小説家になろう」「小説を読もう!」ダウンロ
23
23
 
24
24
  更新履歴 - ChangeLog
25
25
  --------------------
26
+ 2014/07/14 : **1.5.10**
27
+ * 追加機能もしくは仕様変更
28
+ - `download` コマンドに対話モードを追加しました
29
+ + `narou d` と対象小説を指定せずに実行すると対話モードに移行します(-f 等のオプションは指定出来ます)
30
+ + 連続してNコードもしくはURLを入力できるモードです。ArcadiaのURLは " " で囲む必要がありません
31
+ + 想定される使い方:
32
+ * 複数のURLを書いたテキストをコピペして流しこむ
33
+ * テキストファイルからリダイレクトで入力する
34
+ - `narou d < list.txt`
35
+ * BATファイル等で `narou d` のみを実行し、新規DL時の入力を簡便にする
36
+ - 自動生成される converter.rb に簡単な説明を付け加えるようにしました
37
+ - `remove` コマンドの `--with-file` オプションに短縮版 `-w` を追加しました
38
+ - `narou init` 実行時に現在の AozoraEpub3 の場所を表示するようになりました
39
+ - `update` コマンドに新着小説のみを変換するオプション `--convert-only-new-arrival` (短縮 `-a` )が
40
+ 追加されました(naoh87さんによる実装)
41
+ + もしこのオプションをデフォルトの挙動にしたければ、 `narou s default_args.update=-a` として下さい
42
+ - 変換用のプリセットデータを追加
43
+ + デスマーチからはじまる異世界狂想曲(n9902bn)
44
+ + この世界がゲームだと俺だけが知っている(n9078bd)
45
+ + まのわ ~魔物倒す・能力奪う・私強くなる~(n3730bn)
46
+ - すでに同梱されているプリセットデータを一部更新
47
+ + 異世界迷宮で奴隷ハーレムを(n4259s)
48
+ + ログ・ホライズン(n8725k)
49
+ * Bug Fix
50
+ - replace.txt で置換対象を削除するという表現(あいう<tab><改行>)が出来なかったのを修正
51
+ - `--time` オプションで表示される実行時間がより正確になるように調整しました
52
+
26
53
  2014/07/04 : **1.5.9**
27
54
  * Bug Fix
28
55
  - 作者名が半角数字だけの場合にクラッシュする問題を修正
@@ -51,31 +78,6 @@ Narou.rb ― 「小説家になろう」「小説を読もう!」ダウンロ
51
78
  * Bug Fix
52
79
  - &#39; (') のエンティティ変換を追加
53
80
 
54
- 2014/06/06 : **1.5.6.1**
55
- * 追加機能もしくは仕様変更
56
- - タイトルにつく更新日の日付を新着があった日付に変更
57
- * Bug Fix
58
- - 初期化時に `narou init` を実行できない問題を修正
59
-
60
- 2014/06/04 : **1.5.6**
61
- * 追加機能もしくは仕様変更
62
- - 小説のタイトルに更新日をつける機能を追加しました
63
- + `narou s force.enable_add_date_to_title=true` として有効にして下さい(標準ではオフ)
64
- + 書式は `title_date_format` 、位置は `title_date_align` で自由に変更出来ます
65
- * title_date_format: 付与する日付のフォーマット。書式は http://bit.ly/1m5e3w7 を参照
66
- * title_date_align: 付与する日付の位置。left か right
67
- * `narou s force.title_date_format="(%-m/%-d)"`
68
- * `narou s force.title_date_align=left`
69
- - `flag` コマンドを追加しました
70
- + `narou flag end 10` と指定出来ます
71
- + 現在は end(完結フラグ)のみ指定できます。`list` コマンド及び、小説タイトルに (完結) と表示されるようになります
72
- (小説タイトルについては次の変換から反映)
73
- - 小説の管理フォルダ(narou initしたところ)に `device` フォルダをつくることで、 `send` コマンド用の設定ファイルを
74
- 独自に用意出来るようになりました
75
- + 設定ファイルは https://github.com/whiteleaf7/narou/tree/master/lib/device を参考に作成して下さい
76
- * Bug Fix
77
- - !?の一文字表記(0x2049)等でゴミが出てしまう問題を修正
78
-
79
81
  ----
80
82
 
81
83
  「小説家になろう」は株式会社ヒナプロジェクトの登録商標です
@@ -8,15 +8,19 @@ require_relative "../downloader"
8
8
 
9
9
  module Command
10
10
  class Download < CommandBase
11
+ SUPPORT_NOVEL_SITES = %w(小説家になろう(小説を読もう) Arcadia ハーメルン 暁)
12
+
11
13
  def initialize
12
- super("<target> [<target2> ...] [options]")
14
+ super("[<target> <target2> ...] [options]")
13
15
  @opt.separator <<-EOS
14
16
 
15
17
  ・ダウンロードしたい小説のNコードもしくはURLを指定して下さい。
18
+ ・対応サイトは#{SUPPORT_NOVEL_SITES.join("、")}です。
16
19
  ・一度に複数の小説を指定する場合は空白で区切って下さい。
17
20
  ・ダウンロード終了後に変換処理を行います。ダウンロードのみする場合は-nオプションを指定して下さい。
18
21
  ・すでにダウンロード済みの小説の場合は何もしません。
19
22
  ・--remove オプションをつけてダウンロードすると、ダウンロード(とその後の変換、送信)が終わったあと削除します。データベースのインデックスを外すだけなので、変換した書籍データは残ったままになります。ファイルを全て消す場合は手動で削除する必要があります。
23
+ ・NコードもURLも指定しなかった場合、対話モード移行します。
20
24
 
21
25
  Example:
22
26
  narou download n9669bk
@@ -42,11 +46,54 @@ module Command
42
46
  }
43
47
  end
44
48
 
49
+ def valid_target?(target)
50
+ @site_settings ||= Downloader.load_settings
51
+ case Downloader.get_target_type(target)
52
+ when :ncode
53
+ true
54
+ when :url
55
+ !!@site_settings.find { |s| s.multi_match(target, "url") }
56
+ else
57
+ false
58
+ end
59
+ end
60
+
61
+ def print_prompt(targets)
62
+ print "#{targets.count}> "
63
+ end
64
+
65
+ def interactive_mode
66
+ targets = []
67
+ puts "【対話モード】"
68
+ puts "ダウンロードしたい小説のNコードもしくはURLを入力して下さい。(1行に1つ)"
69
+ puts "連続して複数の小説を入力していきます。"
70
+ puts "対応サイトは#{SUPPORT_NOVEL_SITES.join("、")}です。"
71
+ puts "入力を終了してダウンロードを開始するには未入力のままエンターを押して下さい。"
72
+ puts
73
+ print_prompt(targets)
74
+ while input = $stdin.gets
75
+ input.strip!
76
+ break if input == ""
77
+ if valid_target?(input)
78
+ if targets.include?(input)
79
+ error "入力済みです"
80
+ else
81
+ targets << input
82
+ end
83
+ else
84
+ error "対応外の小説です"
85
+ end
86
+ print_prompt(targets)
87
+ end
88
+ targets
89
+ end
90
+
45
91
  def execute(argv)
46
92
  super
47
93
  if argv.empty?
48
- puts @opt.help
49
- return
94
+ targets = interactive_mode
95
+ return if targets.count == 0
96
+ argv += targets
50
97
  end
51
98
  argv.each.with_index(1) do |target, i|
52
99
  download_target ||= target
@@ -69,7 +116,7 @@ module Command
69
116
  end
70
117
  next
71
118
  end
72
- if Downloader.start(download_target, @options["force"], true) != :ok
119
+ if Downloader.start(download_target, @options["force"], true).status != :ok
73
120
  next
74
121
  end
75
122
  unless @options["no-convert"]
@@ -114,7 +114,8 @@ module Command
114
114
  puts
115
115
  print "<bold><green>AozoraEpub3のあるフォルダを入力して下さい:</green></bold>\n(未入力でスキップ".termcolor
116
116
  if @global_setting["aozoraepub3dir"]
117
- print "、:keep で前回と同じ設定"
117
+ puts "、:keep で現在と同じ場所を指定)"
118
+ print "(現在の場所:#{@global_setting["aozoraepub3dir"]}"
118
119
  end
119
120
  print ")\n>"
120
121
  while input = $stdin.gets.rstrip.gsub(/"/, "")
@@ -32,7 +32,7 @@ module Command
32
32
  @opt.on("-y", "--yes", "削除確認メッセージを表示しない") {
33
33
  @options["yes"] = true
34
34
  }
35
- @opt.on("--with-file", "小説の保存フォルダ・ファイルも全て削除する") {
35
+ @opt.on("-w", "--with-file", "小説の保存フォルダ・ファイルも全て削除する") {
36
36
  @options["with-file"] = true
37
37
  }
38
38
  @opt.on("--all-ss", "短編小説をすべて削除する") {
@@ -30,6 +30,9 @@ module Command
30
30
  @opt.on("-n", "--no-convert", "変換をせずアップデートのみ実行する") {
31
31
  @options["no-convert"] = true
32
32
  }
33
+ @opt.on("-a", "--convert-only-new-arrival", "新着のみ変換を実行する") {
34
+ @options["convert-only-new-arrival"] = true
35
+ }
33
36
  end
34
37
 
35
38
  def execute(argv)
@@ -59,10 +62,11 @@ module Command
59
62
  puts display_message
60
63
  next
61
64
  end
62
- update_status = Downloader.start(target)
63
- case update_status
65
+ result = Downloader.start(target)
66
+ case result.status
64
67
  when :ok
65
- unless @options["no-convert"]
68
+ unless @options["no-convert"] or
69
+ (@options["convert-only-new-arrival"] and not result.new_arrivals)
66
70
  convert_argv = [target]
67
71
  convert_argv << "--no-open" if no_open
68
72
  Convert.execute!(convert_argv)
@@ -5,6 +5,7 @@
5
5
 
6
6
  require "yaml"
7
7
  require "fileutils"
8
+ require "ostruct"
8
9
  require_relative "narou"
9
10
  require_relative "sitesetting"
10
11
  require_relative "template"
@@ -303,13 +304,23 @@ class Downloader
303
304
  end
304
305
  end
305
306
 
307
+
306
308
  #
307
- # ダウンロード処理本体
308
- #
309
- # 返り値:ダウンロードしたものが1話でもあったかどうか(Boolean)
310
- # nil なら何らかの原因でダウンロード自体出来なかった
309
+ # ダウンロードを処理本体を起動
311
310
  #
312
311
  def start_download
312
+ @status = run_download
313
+ OpenStruct.new(
314
+ :id => @id,
315
+ :new_arrivals => @new_arrivals,
316
+ :status => @status
317
+ ).freeze
318
+ end
319
+
320
+ #
321
+ # ダウンロード処理本体
322
+ #
323
+ def run_download
313
324
  latest_toc = get_latest_table_of_contents
314
325
  unless latest_toc
315
326
  error @setting["toc_url"] + " の目次データが取得出来ませんでした"
@@ -78,8 +78,9 @@ def load_converter(title, archive_path)
78
78
  if conv
79
79
  return conv
80
80
  else
81
+ title_for_converter = (title =~ /.txt\z/ ? title : File.basename(archive_path))
81
82
  error "converter.rbは見つかりましたが、`converter'で登録されていないようです。" +
82
- "変換処理は converter \"#{title.gsub('"', '\\"')}\" として登録する必要があります"
83
+ "変換処理は converter \"#{title_for_converter.gsub('"', '\\"')}\" として登録する必要があります"
83
84
  return BlankConverter
84
85
  end
85
86
  end
@@ -96,7 +96,7 @@ class NovelSetting
96
96
  if File.exists?(replace_txt_path)
97
97
  open(replace_txt_path, "r:BOM|UTF-8") do |fp|
98
98
  fp.each do |line|
99
- line.strip!
99
+ line.sub(/\n\z/, "")
100
100
  next if line[0] == ";" # コメント記号
101
101
  pattern = line.split("\t", 2)
102
102
  if pattern.length == 2 && pattern[0]
@@ -62,6 +62,7 @@ class Template
62
62
  # 書かれているテンプレートがどのバージョンのテンプレートかを設定
63
63
  #
64
64
  # テンプレート内部で使われる変数の変更があった場合に binary_version が上がる
65
+ # (変数の追加ではバージョンは上がらない。現在使われている変数の中身が変わった場合は上る)
65
66
  #
66
67
  def self.target_binary_version(version)
67
68
  @@src_version = version
@@ -3,7 +3,7 @@
3
3
  # Copyright 2013 whiteleaf. All rights reserved.
4
4
  #
5
5
 
6
- Version = "1.5.9"
6
+ Version = "1.5.10"
7
7
 
8
8
  cv_path = File.expand_path(File.join(File.dirname(__FILE__), "../commitversion"))
9
9
  if File.exists?(cv_path)
@@ -46,23 +46,32 @@ narou コマンドのインストール or アップデートが完了しまし
46
46
  初めてこのアプリケーションを使う場合、小説管理用のフォルダを初期化する必要があります。
47
47
  任意のフォルダで `narou init' を実行して下さい。
48
48
 
49
- 2014/06/25 : **1.5.8**
49
+ 2014/07/14 : **1.5.10**
50
50
  * 追加機能もしくは仕様変更
51
- - 小説が削除されていた場合に自動で凍結するようになりました
52
- - 小説が削除されている場合に `list` コマンドで(削除)と表示されるようになりました
53
- - 更新に失敗した小説を表示するときにIDも合わせて表示するようにしました
54
- - `flag` コマンドに強制設定用の `--on` 及び `--off` オプションを追加しました
55
- - `flag` コマンドに `delete` フラグを追加しました(削除表示への対応)
56
- - ルビの拗音(ぁ、ぃ、ゃ等)を商業書籍のように大きくする機能を追加しました
57
- + `narou s force.enable_ruby_youon_to_big=true` とするか、
58
- setting.ini `enable_ruby_youon_to_big=true` を追加して下さい(標準ではオフ)
59
- - 今バージョン以降ダウンロードした小説は、小説タイトルが変わっても converter.rb に関するエラーが
60
- 発生しないように調整しました。ただし、すでにダウンロード済み小説には適用されないため、エラーが出た場合は
61
- converter.rb の削除で対応をお願いします
62
-
63
- 2014/07/04 : **1.5.9**
51
+ - `download` コマンドに対話モードを追加しました
52
+ + `narou d` と対象小説を指定せずに実行すると対話モードに移行します(-f 等のオプションは指定出来ます)
53
+ + 連続してNコードもしくはURLを入力できるモードです。ArcadiaのURLは " " で囲む必要がありません
54
+ + 想定される使い方:
55
+ * 複数のURLを書いたテキストをコピペして流しこむ
56
+ * テキストファイルからリダイレクトで入力する
57
+ - `narou d < list.txt`
58
+ * BATファイル等で `narou d` のみを実行し、新規DL時の入力を簡便にする
59
+ - 自動生成される converter.rb に簡単な説明を付け加えるようにしました
60
+ - `remove` コマンドの `--with-file` オプションに短縮版 `-w` を追加しました
61
+ - `narou init` 実行時に現在の AozoraEpub3 の場所を表示するようになりました
62
+ - `update` コマンドに新着小説のみを変換するオプション `--convert-only-new-arrival` (短縮 `-a` )が
63
+ 追加されました(naoh87さんによる実装)
64
+ + もしこのオプションをデフォルトの挙動にしたければ、 `narou s default_args.update=-a` として下さい
65
+ - 変換用のプリセットデータを追加
66
+ + デスマーチからはじまる異世界狂想曲(n9902bn)
67
+ + この世界がゲームだと俺だけが知っている(n9078bd)
68
+ + まのわ ~魔物倒す・能力奪う・私強くなる~(n3730bn)
69
+ - すでに同梱されているプリセットデータを一部更新
70
+ + 異世界迷宮で奴隷ハーレムを(n4259s)
71
+ + ログ・ホライズン(n8725k)
64
72
  * Bug Fix
65
- - 作者名が半角数字だけの場合にクラッシュする問題を修正
73
+ - replace.txt で置換対象を削除するという表現(あいう<tab><改行>)が出来なかったのを修正
74
+ - `--time` オプションで表示される実行時間がより正確になるように調整しました
66
75
 
67
76
  #{"*" * 79}
68
77
  EOS
data/narou.rb CHANGED
@@ -9,9 +9,14 @@
9
9
  $debug = File.exists?(File.join(File.expand_path(File.dirname($0)), "debug"))
10
10
  Encoding.default_external = Encoding::UTF_8
11
11
 
12
- require_relative "lib/globalsetting"
12
+ if ARGV.delete("--time")
13
+ now = Time.now
14
+ at_exit do
15
+ puts "実行時間 #{Time.now - now}秒"
16
+ end
17
+ end
13
18
 
14
- display_time = ARGV.delete("--time")
19
+ require_relative "lib/globalsetting"
15
20
  display_backtrace = ARGV.delete("--backtrace")
16
21
  display_backtrace ||= $debug
17
22
  $disable_color = ARGV.delete("--no-color")
@@ -23,13 +28,6 @@ require_relative "lib/commandline"
23
28
 
24
29
  rescue_level = $debug ? Exception : StandardError
25
30
 
26
- if display_time
27
- now = Time.now
28
- at_exit do
29
- puts "実行時間 #{Time.now - now}秒"
30
- end
31
- end
32
-
33
31
  begin
34
32
  CommandLine.run(ARGV.map { |v| v.dup })
35
33
  rescue rescue_level => e
@@ -6,7 +6,7 @@
6
6
  # 作者: 丸山くがね
7
7
  # URL: http://ncode.syosetu.com/n1839bd/
8
8
  #
9
- converter "オーバーロード:後編" do
9
+ converter "n1839bd オーバーロード:後編" do
10
10
  def before(io, text_type)
11
11
  super
12
12
  end
@@ -6,7 +6,7 @@
6
6
  # 作者: 鼠色猫
7
7
  # URL: http://ncode.syosetu.com/n2267be/
8
8
  #
9
- converter "Re:ゼロから始める異世界生活" do
9
+ converter "n2267be Re:ゼロから始める異世界生活" do
10
10
  def before(io, text_type)
11
11
  super
12
12
  io.string.gsub!(/^[  \t]*[※  \t]+$/, "※ ※ ※")
@@ -6,7 +6,7 @@
6
6
  # 作者: 木原ゆう
7
7
  # URL: http://ncode.syosetu.com/n2525bs/
8
8
  #
9
- converter "魔剣ゾルディの女主人公とっかえひっかえ成長記録" do
9
+ converter "n2525bs 魔剣ゾルディの女主人公とっかえひっかえ成長記録" do
10
10
  def before(io, text_type)
11
11
  super
12
12
  io.string.gsub!(/(\/{2,})/) do
@@ -0,0 +1,33 @@
1
+ # -*- coding: utf-8 -*-
2
+
3
+ #
4
+ # 対象小説情報
5
+ # タイトル: まのわ ~魔物倒す・能力奪う・私強くなる~
6
+ # 作者: 紫炎
7
+ # URL: http://ncode.syosetu.com/n3730bn/
8
+ #
9
+ converter "n3730bn まのわ ~魔物倒す・能力奪う・私強くなる~" do
10
+ def before(io, text_type)
11
+ if text_type != "postscript"
12
+ super
13
+ end
14
+ io
15
+ end
16
+
17
+ def after(io, text_type)
18
+ buffer = StringIO.new
19
+ io.each do |line|
20
+ if line =~ /^◎/
21
+ buffer.puts "[#ゴシック体]#{line.rstrip}[#ゴシック体終わり]"
22
+ buffer.puts
23
+ else
24
+ buffer.puts line
25
+ end
26
+ end
27
+ if text_type == "postscript"
28
+ buffer.string.tr!("#{ConverterBase::KANJI_NUM}", "0-9")
29
+ buffer.string.gsub!("2分アキ", "二分アキ")
30
+ end
31
+ buffer
32
+ end
33
+ end
@@ -6,7 +6,7 @@
6
6
  # 作者: 蘇我捨恥
7
7
  # URL: http://ncode.syosetu.com/n4259s/
8
8
  #
9
- converter "異世界迷宮で奴隷ハーレムを" do
9
+ converter "n4259s 異世界迷宮で奴隷ハーレムを" do
10
10
  def before(io, text_type)
11
11
  data = io.read
12
12
  data.gsub!("\n\n", "\n")
@@ -14,7 +14,7 @@ converter "異世界迷宮で奴隷ハーレムを" do
14
14
  end
15
15
 
16
16
  def level_convert!(line)
17
- line.gsub!(/Lv([0-90-9])/, "Lv\\1")
17
+ line.gsub!(/Lv/, "Lv[#「Lv」は縦中横]")
18
18
  line.gsub!(/Lv([0-90-9]+)/, "Lv[#「Lv」は縦中横]\\1[#「\\1」は縦中横]")
19
19
  end
20
20
 
@@ -6,17 +6,23 @@
6
6
  # 作者: 橙乃ままれ
7
7
  # URL: http://ncode.syosetu.com/n8725k/
8
8
  #
9
- converter "ログ・ホライズン" do
9
+ converter "n8725k ログ・ホライズン" do
10
10
  def before(io, element_type)
11
11
  super
12
12
  end
13
13
 
14
- def after(io, text_type)
14
+ def after(io, element_type)
15
15
  data = io.string
16
- if text_type == "subtitle"
17
- data.gsub!(/^[#{ConverterBase::KANJI_NUM}]+/) do |match|
18
- match.tr(ConverterBase::KANJI_NUM, "0-9")
16
+ if element_type == "body"
17
+ if data =~ /[||]([^《]+)《(、+)》/
18
+ if $1.length == $2.length
19
+ data.gsub!(/[||]([^《]+)《(、+)》/) do |match|
20
+ "[#傍点]" + $1 + "[#傍点終わり]"
21
+ end
22
+ end
19
23
  end
24
+ data.gsub!("ルビ:", "")
25
+ data.gsub!("ロエ二", "ロエ2")
20
26
  end
21
27
  io
22
28
  end
@@ -0,0 +1,26 @@
1
+ # -*- coding: utf-8 -*-
2
+
3
+ #
4
+ # 対象小説情報
5
+ # タイトル: この世界がゲームだと俺だけが知っている
6
+ # 作者: ウスバー
7
+ # URL: http://ncode.syosetu.com/n9078bd/
8
+ #
9
+ converter "n9078bd この世界がゲームだと俺だけが知っている" do
10
+ def before(io, text_type)
11
+ super
12
+ end
13
+
14
+ def after(io, text_type)
15
+ io.string.gsub!("+ ※[#縦線]L","[#ここから横書き]+ ※[#縦線]L[#ここで横書き終わり]")
16
+ io.string.gsub!("+ ±","[#ここから横書き]+ ±[#ここで横書き終わり]")
17
+ io.string.gsub!("+ -","[#ここから横書き]+ -[#ここで横書き終わり]")
18
+ io.string.gsub!(" -"," [#ここから横書き]-[#ここで横書き終わり]")
19
+ io.string.gsub!("『-』","『[#ここから横書き]-[#ここで横書き終わり]』")
20
+ io.string.gsub!("Ξ","[#ここから横書き]≡[#ここで横書き終わり]")
21
+ io.string.gsub!("+L","[#ここから横書き]+L[#ここで横書き終わり]")
22
+ io.string.gsub!("※[#縦線]L","[#ここから横書き]※[#縦線]L[#ここで横書き終わり]")
23
+ io.string.gsub!(" ="," [#ここから横書き]=[#ここで横書き終わり]")
24
+ io
25
+ end
26
+ end
@@ -6,7 +6,7 @@
6
6
  # 作者: 理不尽な孫の手
7
7
  # URL: http://ncode.syosetu.com/n9669bk/
8
8
  #
9
- converter "無職転生 - 異世界行ったら本気だす -" do
9
+ converter "n9669bk 無職転生 - 異世界行ったら本気だす -" do
10
10
  def before(io, type)
11
11
  super
12
12
  end
@@ -0,0 +1,40 @@
1
+ # -*- coding: utf-8 -*-
2
+
3
+ #
4
+ # 対象小説情報
5
+ # タイトル: デスマーチからはじまる異世界狂想曲
6
+ # 作者: 愛七ひろ
7
+ # URL: http://ncode.syosetu.com/n9902bn/
8
+ #
9
+ converter "n9902bn デスマーチからはじまる異世界狂想曲" do
10
+ def before(io, text_type)
11
+ super
12
+ end
13
+
14
+ def announce_line?(line)
15
+ line =~ /^〉/
16
+ end
17
+
18
+ def after(io, text_type)
19
+ buffer = StringIO.new
20
+ just_before_line_is_announce = false
21
+ io.each do |line|
22
+ if announce_line?(line)
23
+ unless just_before_line_is_announce
24
+ if line.strip != ""
25
+ buffer.puts
26
+ end
27
+ end
28
+ just_before_line_is_announce = true
29
+ buffer.puts "[#ゴシック体][#太字]#{line.rstrip}[#太字終わり][#ゴシック体終わり]"
30
+ else
31
+ if just_before_line_is_announce
32
+ buffer.puts
33
+ end
34
+ just_before_line_is_announce = false
35
+ buffer.puts line
36
+ end
37
+ end
38
+ buffer
39
+ end
40
+ end
@@ -7,12 +7,20 @@
7
7
  # 作者: <%= @setting["author"] %>
8
8
  # URL: <%= @setting["toc_url"] %>
9
9
  #
10
+ # 詳細については http://bit.ly/1vTEH04 を参照して下さい
11
+ #
10
12
  converter "<%= file_title.gsub('"', '\"') %>" do
13
+ # 各種変換処理がされる「前」の生データに対しての変換処理を記述
11
14
  def before(io, text_type)
12
15
  super
16
+ # io.string.gsub!("こんばんわ", "こんばんは")
17
+ io
13
18
  end
14
19
 
20
+ # 各種変換処理がされた「後」のデータに対しての変換処理を記述
15
21
  def after(io, text_type)
16
22
  super
23
+ # io.string.gsub!("百%", "100%")
24
+ io
17
25
  end
18
26
  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: 1.5.9
4
+ version: 1.5.10
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-03 00:00:00.000000000 Z
11
+ date: 2014-07-13 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: termcolor
@@ -150,11 +150,14 @@ files:
150
150
  - preset/ncode.syosetu.com/n2267be/converter.rb
151
151
  - preset/ncode.syosetu.com/n2525bs/converter.rb
152
152
  - preset/ncode.syosetu.com/n2525bs/setting.ini
153
+ - preset/ncode.syosetu.com/n3730bn/converter.rb
153
154
  - preset/ncode.syosetu.com/n4259s/converter.rb
154
155
  - preset/ncode.syosetu.com/n4259s/setting.ini
155
156
  - preset/ncode.syosetu.com/n8725k/converter.rb
157
+ - preset/ncode.syosetu.com/n9078bd/converter.rb
156
158
  - preset/ncode.syosetu.com/n9669bk/converter.rb
157
159
  - preset/ncode.syosetu.com/n9669bk/setting.ini
160
+ - preset/ncode.syosetu.com/n9902bn/converter.rb
158
161
  - preset/vertical_font.css
159
162
  - spec/data/html_test.html
160
163
  - spec/data/html_test.txt
@@ -191,23 +194,32 @@ post_install_message: |
191
194
  初めてこのアプリケーションを使う場合、小説管理用のフォルダを初期化する必要があります。
192
195
  任意のフォルダで `narou init' を実行して下さい。
193
196
 
194
- 2014/06/25 : **1.5.8**
197
+ 2014/07/14 : **1.5.10**
195
198
  * 追加機能もしくは仕様変更
196
- - 小説が削除されていた場合に自動で凍結するようになりました
197
- - 小説が削除されている場合に `list` コマンドで(削除)と表示されるようになりました
198
- - 更新に失敗した小説を表示するときにIDも合わせて表示するようにしました
199
- - `flag` コマンドに強制設定用の `--on` 及び `--off` オプションを追加しました
200
- - `flag` コマンドに `delete` フラグを追加しました(削除表示への対応)
201
- - ルビの拗音(ぁ、ぃ、ゃ等)を商業書籍のように大きくする機能を追加しました
202
- + `narou s force.enable_ruby_youon_to_big=true` とするか、
203
- setting.ini `enable_ruby_youon_to_big=true` を追加して下さい(標準ではオフ)
204
- - 今バージョン以降ダウンロードした小説は、小説タイトルが変わっても converter.rb に関するエラーが
205
- 発生しないように調整しました。ただし、すでにダウンロード済み小説には適用されないため、エラーが出た場合は
206
- converter.rb の削除で対応をお願いします
207
-
208
- 2014/07/04 : **1.5.9**
199
+ - `download` コマンドに対話モードを追加しました
200
+ + `narou d` と対象小説を指定せずに実行すると対話モードに移行します(-f 等のオプションは指定出来ます)
201
+ + 連続してNコードもしくはURLを入力できるモードです。ArcadiaのURLは " " で囲む必要がありません
202
+ + 想定される使い方:
203
+ * 複数のURLを書いたテキストをコピペして流しこむ
204
+ * テキストファイルからリダイレクトで入力する
205
+ - `narou d < list.txt`
206
+ * BATファイル等で `narou d` のみを実行し、新規DL時の入力を簡便にする
207
+ - 自動生成される converter.rb に簡単な説明を付け加えるようにしました
208
+ - `remove` コマンドの `--with-file` オプションに短縮版 `-w` を追加しました
209
+ - `narou init` 実行時に現在の AozoraEpub3 の場所を表示するようになりました
210
+ - `update` コマンドに新着小説のみを変換するオプション `--convert-only-new-arrival` (短縮 `-a` )が
211
+ 追加されました(naoh87さんによる実装)
212
+ + もしこのオプションをデフォルトの挙動にしたければ、 `narou s default_args.update=-a` として下さい
213
+ - 変換用のプリセットデータを追加
214
+ + デスマーチからはじまる異世界狂想曲(n9902bn)
215
+ + この世界がゲームだと俺だけが知っている(n9078bd)
216
+ + まのわ ~魔物倒す・能力奪う・私強くなる~(n3730bn)
217
+ - すでに同梱されているプリセットデータを一部更新
218
+ + 異世界迷宮で奴隷ハーレムを(n4259s)
219
+ + ログ・ホライズン(n8725k)
209
220
  * Bug Fix
210
- - 作者名が半角数字だけの場合にクラッシュする問題を修正
221
+ - replace.txt で置換対象を削除するという表現(あいう<tab><改行>)が出来なかったのを修正
222
+ - `--time` オプションで表示される実行時間がより正確になるように調整しました
211
223
 
212
224
  *******************************************************************************
213
225
  rdoc_options: []