narou 1.5.1 → 1.5.2

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: 4e1f35ba6c5d9ac0c42cd420d1e3cdb371361367
4
- data.tar.gz: 536affd7769b750b01d18867e99518e8938a89fc
3
+ metadata.gz: 595a96495447d3eeedd9c2c2a0b4a304e558ac7b
4
+ data.tar.gz: abac428a8f6a722c32904ccd63cd861090cc3dc3
5
5
  SHA512:
6
- metadata.gz: feb70cec5a82dc6d6a9f8acf43491e0bcf74ee3bd5b1b4ee6528e245044b8ee79c85b6081b31e99079fefe56628d3cd4b7bbd82af8b66d5815ff1714070faec3
7
- data.tar.gz: 0029bcfb4df95e32cc54afaeaf2c671dd903ffc05f58f543086f5e632de53828516def709f0e50e2c15780aa8f01c0bccba81f133ee5738160b8043763cc0ad5
6
+ metadata.gz: 2bc074eed053d3d8ca3b8c8817b8ecc4695339d6b435dd8c0e6945e6b71e49ab85780c6cafb6a793ba03f56cc786d0c03629b8d2246191614df2aba372862e1b
7
+ data.tar.gz: 27f17c11f9449adef8f54d6aca761d90532447621fe24dfcd5e675ff75cbecefa3fe7db2d2100c9d9003710fb559d1f942d7ac64b38ccd61dea318c5dd83dae4
data/.gitignore CHANGED
@@ -1,4 +1,4 @@
1
- #
1
+ #
2
2
  # My Project (Narou.rb)
3
3
  #
4
4
  .backup/
@@ -18,7 +18,6 @@ debug
18
18
 
19
19
  archive
20
20
  commitversion
21
- narou.bat
22
21
 
23
22
  #
24
23
  # for gem
@@ -2,6 +2,18 @@
2
2
  更新履歴 - ChangeLog
3
3
  --------------------
4
4
 
5
+ 2014/03/09 : **1.5.2**
6
+ * 追加機能もしくは仕様変更
7
+ - **Cygwin** に対応しました(laplace22さんによる実装)
8
+ - `narou mail` コマンドを追加しました
9
+ + 主にSend to Kindleを使うことを想定したコマンドです。送信用にメールアドレスが必要です
10
+ + 初めて `narou mail` コマンドを使った際に、自動で設定用ファイルが作成されます。そのファイルを
11
+ 編集することで初めてコマンドが使えるようになります
12
+ - setting.ini の `enable_transform_date` をデフォルトで false に変更(新規DLから反映)
13
+ * Bug Fix
14
+ - ハーメルンで前書き後書きが正常に取得出来ない問題を修正
15
+ - ハーメルンでダウンロード時にエラーが出る場合があった問題を修正 #43
16
+
5
17
  2014/03/07 : **1.5.1**
6
18
  * 追加機能もしくは仕様変更
7
19
  - `narou d Nコード1,Nコード2,URL1 --multiple` のように、スペース区切り以外に `,` で区切れる機能を追加しました
@@ -11,7 +23,7 @@
11
23
  - ルビ記号が入れ子になっている時に正常にルビ化できていなかった問題を修正
12
24
  - NKFによって全角ダッシュ(u2015)が全角マイナス?(u2014)に変換されてしまう問題を修正
13
25
  - サブタイトルにタブ文字が入っている場合にダウンロード中にエラーが出る問題を修正
14
- - ノクターンノベルズ及びムーンライトノベルズを2個以上同時にダウンロードした場合に、
26
+ - ノクターンノベルズ及びムーンライトノベルズをNコードを指定して2個以上同時にダウンロードした場合に、
15
27
  2個目以降が正常にDL出来ない問題を修正
16
28
 
17
29
  2014/03/06 : **1.5.0.2**
data/README.md CHANGED
@@ -6,10 +6,13 @@ Narou.rb ― 「小説家になろう」「小説を読もう!」ダウンロ
6
6
  このアプリは[小説家になろう](http://syosetu.com/)、[小説を読もう!](http://yomou.syosetu.com/)で公開されている小説の管理、
7
7
  及び電子書籍データへの変換を支援します。縦書き用に特化されており、
8
8
  横書き用に特化されたWEB小説を違和感なく縦書きで読むことが出来るようになります。
9
- また、若干の校正機能もありますので、小説としての一般的な整形ルールに矯正します。(例:感嘆符のあとにはスペースが必ずくる)
9
+ また、校正機能もありますので、小説としての一般的な整形ルールに矯正します。(例:感嘆符のあとにはスペースが必ずくる)
10
10
 
11
11
  [ノクターンノベルズ](http://noc.syosetu.com/)及び[ムーンライトノベルズ](http://mnlt.syosetu.com/)にも対応しています。
12
12
 
13
+ **NEW!!**
14
+ [ハーメルン](http://syosetu.org/)、[Arcadia](http://www.mai-net.net/)(理想郷)にも対応しました!
15
+
13
16
  全てコンソールで操作するCUIアプリケーションです。
14
17
 
15
18
  主な機能は小説家になろうの小説のダウンロード、更新管理、テキスト整形、AozoraEpub3・kindlegen連携によるEPUB/MOBI出力です。
@@ -21,6 +24,18 @@ Narou.rb ― 「小説家になろう」「小説を読もう!」ダウンロ
21
24
  更新履歴 - ChangeLog
22
25
  --------------------
23
26
 
27
+ 2014/03/09 : **1.5.2**
28
+ * 追加機能もしくは仕様変更
29
+ - **Cygwin** に対応しました(laplace22さんによる実装)
30
+ - `narou mail` コマンドを追加しました
31
+ + 主にSend to Kindleを使うことを想定したコマンドです。送信用にメールアドレスが必要です
32
+ + 初めて `narou mail` コマンドを使った際に、自動で設定用ファイルが作成されます。そのファイルを
33
+ 編集することで初めてコマンドが使えるようになります
34
+ - setting.ini の `enable_transform_date` をデフォルトで false に変更(新規DLから反映)
35
+ * Bug Fix
36
+ - ハーメルンで前書き後書きが正常に取得出来ない問題を修正
37
+ - ハーメルンでダウンロード時にエラーが出る場合があった問題を修正 #43
38
+
24
39
  2014/03/07 : **1.5.1**
25
40
  * 追加機能もしくは仕様変更
26
41
  - `narou d Nコード1,Nコード2,URL1 --multiple` のように、スペース区切り以外に `,` で区切れる機能を追加しました
@@ -30,9 +45,19 @@ Narou.rb ― 「小説家になろう」「小説を読もう!」ダウンロ
30
45
  - ルビ記号が入れ子になっている時に正常にルビ化できていなかった問題を修正
31
46
  - NKFによって全角ダッシュ(u2015)が全角マイナス?(u2014)に変換されてしまう問題を修正
32
47
  - サブタイトルにタブ文字が入っている場合にダウンロード中にエラーが出る問題を修正
33
- - ノクターンノベルズ及びムーンライトノベルズを2個以上同時にダウンロードした場合に、
48
+ - ノクターンノベルズ及びムーンライトノベルズをNコードを指定して2個以上同時にダウンロードした場合に、
34
49
  2個目以降が正常にDL出来ない問題を修正
35
50
 
51
+ 2014/03/06 : **1.5.0.2**
52
+ * 追加機能もしくは仕様変更
53
+ - `narou list` で(短編)の表示色がグレーになります
54
+ * Bug Fix
55
+ - 1.5.0 でルビが全滅するバグが混入したのでルビ処理を以前の状態に戻しました
56
+
57
+ 2014/03/06 : **1.5.0.1**
58
+ * Bug Fix
59
+ - 1.5.0 で小説家になろうの連載小説が正常にダウンロードできなくなっていたのを修正
60
+
36
61
  2014/03/06 : **1.5.0**
37
62
  * 追加機能もしくは仕様変更
38
63
  - 小説投稿サイト **[ハーメルン](http://syosetu.org/)** に対応しました
@@ -47,24 +72,6 @@ Narou.rb ― 「小説家になろう」「小説を読もう!」ダウンロ
47
72
  - 半角カナを全角カナに変換するように修正 #36
48
73
  - 小説のタイトルにはルビをふれないように修正 #37
49
74
 
50
- 2014/02/28 : **1.4.6**
51
- * 追加機能もしくは仕様変更
52
- - `narou diff` コマンドに(凍結済を除く)全ての小説の差分データを削除する `--all-clean` オプションが追加されました
53
- * Bug Fix
54
- - 傍点化の処理が特殊な状況下で Index Error を吐いて止まっていた問題を修正
55
-
56
- 2014/02/27 : **1.4.5**
57
- * 追加機能もしくは仕様変更
58
- - `narou send` コマンドに凍結済み小説は送信しない `--without-freeze` オプションが追加されました
59
- + 送信小説を個別に指定した場合は無視されます
60
- + `narou s send.without-freeze=true` と設定することで、オプションを毎回打たなくても有効になります
61
- * Bug Fix
62
- - 検索除外されている小説が全て短編小説と認識されてしまう問題を修正
63
- - WinMerge2.14で `narou diff` コマンドが使えなかった問題を修正
64
- - Ruby1.9.3で動かなくなっていたのを修正
65
- - issues #35 行頭に三点リーダーの代わりに連続中黒(・・・)が来た時自動字下げがされていなかったのを修正
66
- - 連続で小説をダウンロードする時に 503 エラーがでてしまう場合がある問題を修正
67
-
68
75
  ----
69
76
 
70
77
  「小説家になろう」は株式会社ヒナプロジェクトの登録商標です
@@ -31,6 +31,7 @@ module Command
31
31
  "browser" => Browser.new,
32
32
  "remove" => Remove.new,
33
33
  "freeze" => Freeze.new,
34
+ "mail" => Mail.new,
34
35
  "help" => Help.new,
35
36
  "version" => Version.new,
36
37
  #"new" => New.new,
@@ -0,0 +1,131 @@
1
+ # -*- coding: utf-8 -*-
2
+ #
3
+ # Copyright 2013 whiteleaf. All rights reserved.
4
+ #
5
+
6
+ require_relative "../narou"
7
+ require_relative "../mailer"
8
+
9
+ module Command
10
+ class Mail < CommandBase
11
+ def oneline_help
12
+ "変換したEPUB/MOBIをメールで送信します"
13
+ end
14
+
15
+ def initialize
16
+ super("[<target1> <target2> ...]")
17
+ @opt.separator <<-EOS
18
+
19
+ ・主にSend to Kindleを使うためのコマンドです。
20
+ ・<target>で指定した小説の電子書籍データメールで送信します。
21
+ ・<target>を省略した場合、新着があった小説を全て送信します。
22
+ ・メールの送信設定は、#{Mailer::SETTING_FILE}ファイルを編集します。
23
+ (初めてコマンドを使うときに自動で作成されます)
24
+
25
+ Example:
26
+ narou mail 6 # 新着関係なくメール(送信済みフラグは立つ)
27
+
28
+ narou update
29
+ narou mail # updateで新着があった小説を全てメール
30
+
31
+ narou mail --force # 凍結済以外の全ての小説を強制的にメール(使い方に注意)
32
+
33
+ Options:
34
+ EOS
35
+
36
+ @opt.on("-f", "--force", "全ての小説を強制的に送信") {
37
+ @options["force"] = true
38
+ }
39
+ end
40
+
41
+ def execute(argv)
42
+ super
43
+ send_all = false
44
+ device = Narou.get_device
45
+ database = Database.instance
46
+ begin
47
+ mailer = Mailer.create
48
+ rescue Mailer::SettingNotFound => e
49
+ install_mailer_setting
50
+ return
51
+ rescue Mailer::SettingUncompleteError => e
52
+ error e.message
53
+ exit 1
54
+ end
55
+ if argv.empty?
56
+ send_all = true
57
+ database.each_key do |id|
58
+ next if Narou.novel_frozen?(id)
59
+ argv << id
60
+ end
61
+ end
62
+ argv.each do |target|
63
+ ebook_path = Narou.get_ebook_file_path(target, device ? device.ebook_file_ext : ".epub")
64
+ unless ebook_path
65
+ error "#{target} は存在しません" unless send_all
66
+ next
67
+ end
68
+ data = Downloader.get_data_by_target(target)
69
+ if send_all && !@options["force"]
70
+ new_arrivals_date = data["new_arrivals_date"] || Time.now
71
+ if new_arrivals_date < data["last_mail_date"]
72
+ next # すでに送信済みなので送信しない
73
+ end
74
+ end
75
+ unless File.exists?(ebook_path)
76
+ error "まだファイル(#{File.basename(ebook_path)})が無いようです" unless send_all
77
+ next
78
+ end
79
+ id = data["id"]
80
+ title = data["title"]
81
+ puts "<green>ID:#{id} #{TermColor.escape(title)}</green>".termcolor
82
+ print "メールを送信しています"
83
+ exit_mail = false
84
+ mail_result = nil
85
+ Thread.new do
86
+ mail_result = mailer.send(File.basename(ebook_path), ebook_path)
87
+ mail_result = true
88
+ exit_mail = true
89
+ end
90
+ until exit_mail
91
+ print "."
92
+ sleep(0.5)
93
+ end
94
+ puts
95
+ if mail_result
96
+ puts File.basename(ebook_path) + " をメールで送信しました"
97
+ database[id]["last_mail_date"] = Time.now
98
+ else
99
+ error "#{mailer.error_message}"
100
+ exit 1 # next しても次も失敗する可能性が高いのでここで終了
101
+ end
102
+ end
103
+ rescue Interrupt
104
+ puts "メール送信を中断しました"
105
+ exit 1
106
+ ensure
107
+ database.save_database if database
108
+ end
109
+
110
+ def install_mailer_setting
111
+ setting_file_path = File.join(Narou.get_preset_dir, Mailer::SETTING_FILE)
112
+ install_path = File.join(Narou.get_root_dir, Mailer::SETTING_FILE)
113
+ FileUtils.cp(setting_file_path, install_path)
114
+ alter_database_add_column_last_mail_date
115
+ puts "created #{install_path}"
116
+ puts "メールの設定用ファイルを作成しました。設定ファイルを書き換えることで mail コマンドが有効になります。"
117
+ puts "注意:次回以降のupdateで新着があった場合に送信可能フラグが立ちます"
118
+ if Helper.confirm("設定ファイルがあるフォルダを開きますか")
119
+ Helper.open_directory(Narou.get_root_dir)
120
+ end
121
+ end
122
+
123
+ def alter_database_add_column_last_mail_date
124
+ database = Database.instance
125
+ database.each do |id, data|
126
+ data["last_mail_date"] ||= Time.now
127
+ end
128
+ database.save_database
129
+ end
130
+ end
131
+ end
@@ -37,7 +37,7 @@ module Command
37
37
  Options:
38
38
  EOS
39
39
 
40
- @opt.on("--without-freeze", "`全話'送信時に凍結された小説は対象外にする") {
40
+ @opt.on("--without-freeze", "一括送信時に凍結された小説は対象外にする") {
41
41
  @options["without-freeze"] = true
42
42
  }
43
43
  end
@@ -105,14 +105,17 @@ module Command
105
105
  print "."
106
106
  sleep(0.5)
107
107
  end
108
+ puts
108
109
  if copy_to_path
109
- puts
110
110
  puts copy_to_path + " へコピーしました"
111
111
  else
112
112
  error "#{device.name}が見つからなかったためコピー出来ませんでした"
113
113
  exit 1 # next しても次も失敗すると分かりきっているためここで終了する
114
114
  end
115
115
  end
116
+ rescue Interrupt => e
117
+ puts "送信を中断しました"
118
+ exit 1
116
119
  end
117
120
  end
118
121
  end
@@ -11,6 +11,9 @@ class Device
11
11
  when :windows
12
12
  require_relative "device/library/windows"
13
13
  extend Device::Library::Windows
14
+ when :cygwin
15
+ require_relative "device/library/cygwin"
16
+ extend Device::Library::Cygwin
14
17
  when :mac
15
18
  require_relative "device/library/mac"
16
19
  extend Device::Library::Mac
@@ -104,6 +107,9 @@ class Device
104
107
  # Windows-31J に変換できない文字をファイル名に含むものはRubyでコピーする
105
108
  FileUtils.cp(src_file, dst_path)
106
109
  end
110
+ when :cygwin
111
+ capture = `cp "#{src_file}" "#{dst_path}"`
112
+ raise capture.rstrip if $?.exitstatus > 0
107
113
  else
108
114
  FileUtils.cp(src_file, dst_path)
109
115
  end
@@ -0,0 +1,27 @@
1
+ # -*- coding: utf-8 -*-
2
+ #
3
+ # Copyright 2013 whiteleaf. All rights reserved.
4
+ #
5
+
6
+ module Device::Library
7
+ module Cygwin
8
+ def get_device_root_dir(volume_name)
9
+ # cygwinのドライブマウント先のpath prefixを取得する。
10
+ # 1.7.28では二行目の行頭
11
+ mount_root = `mount -p`.split("\n").last.split(/\s+/).first
12
+
13
+ Dir.glob("#{mount_root}/*") do |drive_path|
14
+ drive = drive_path.sub(/.*\//,"")
15
+ # windowsのvolコマンドを利用してがんばってvolume_nameを探す。
16
+ # 一行目にボリュームラベルが含まれる。
17
+ # volume_nameが "volume" とか "hoge(*)" などだとはまる。
18
+ cmd = "cmd /c vol #{drive}:".encode(Encoding::Windows_31J)
19
+ capture = `#{cmd}`.force_encoding(Encoding::Windows_31J).encode(Encoding::UTF_8)
20
+ if capture.split("\n").first.match(/#{volume_name}/i)
21
+ return drive_path
22
+ end
23
+ end
24
+ nil
25
+ end
26
+ end
27
+ end
@@ -425,7 +425,7 @@ class Downloader
425
425
  # データベース更新
426
426
  #
427
427
  def update_database
428
- @@database[@id] = {
428
+ @@database[@id].merge!({
429
429
  "id" => @id,
430
430
  "author" => @setting["author"],
431
431
  "title" => get_title,
@@ -435,7 +435,7 @@ class Downloader
435
435
  "novel_type" => get_novel_type,
436
436
  "last_update" => Time.now,
437
437
  "new_arrivals_date" => (@new_arrivals ? Time.now : @@database[@id]["new_arrivals_date"])
438
- }
438
+ })
439
439
  @@database.save_database
440
440
  end
441
441
 
@@ -728,10 +728,10 @@ class Downloader
728
728
  element["data_type"] = "text"
729
729
  else
730
730
  save_raw_data(raw, subtitle_info, ".html")
731
- @setting.multi_match(raw, "text_body", "introduction", "postscript")
731
+ @setting.multi_match(raw, "body_pattern", "introduction_pattern", "postscript_pattern")
732
732
  element = { "data_type" => "html" }
733
733
  %w(introduction body postscript).each { |type|
734
- element[type] = @setting[type]
734
+ element[type] = @setting[type] || ""
735
735
  }
736
736
  end
737
737
  element
@@ -14,7 +14,11 @@ module Helper
14
14
  extend self
15
15
 
16
16
  def os_windows?
17
- @@os_is_windows ||= RUBY_PLATFORM =~ /mswin(?!ce)|mingw|cygwin|bccwin/i
17
+ @@os_is_windows ||= RUBY_PLATFORM =~ /mswin(?!ce)|mingw|bccwin/i
18
+ end
19
+
20
+ def os_cygwin?
21
+ @@os_is_cygwin ||= RUBY_PLATFORM =~ /cygwin/i
18
22
  end
19
23
 
20
24
  def os_mac?
@@ -25,6 +29,8 @@ module Helper
25
29
  case
26
30
  when os_windows?
27
31
  :windows
32
+ when os_cygwin?
33
+ :cygwin
28
34
  when os_mac?
29
35
  :mac
30
36
  else
@@ -62,6 +68,8 @@ module Helper
62
68
  case determine_os
63
69
  when :windows
64
70
  `explorer "file:///#{path.encode(Encoding::Windows_31J)}"`
71
+ when :cygwin
72
+ `cygstart "#{path}"`
65
73
  when :mac
66
74
  `open "#{path}"`
67
75
  else
@@ -75,6 +83,8 @@ module Helper
75
83
  escaped_url = url.gsub("%", "%^").gsub("&", "^&")
76
84
  # MEMO: start の引数を "" で囲むと動かない
77
85
  `start #{escaped_url}`
86
+ when :cygwin
87
+ `cygstart #{url}`
78
88
  when :mac
79
89
  `open "#{url}"`
80
90
  else
@@ -115,6 +125,13 @@ module Helper
115
125
  result
116
126
  end
117
127
 
128
+ #
129
+ # CYGWINのパスからwindowsのパスへと変換(cygpathを呼び出すだけ)
130
+ #
131
+ def convert_to_windows_path(path)
132
+ `cygpath -aw \"#{path}\"`.strip
133
+ end
134
+
118
135
  #
119
136
  # 外部コマンド実行中の待機ループの処理を書けるクラス
120
137
  #
@@ -23,10 +23,15 @@ class Illustration
23
23
  end
24
24
 
25
25
  def scanner(source, &block)
26
- source.gsub!(/[#挿絵((.+?))入る]/) do
26
+ source.gsub!(/[#挿絵((.+?))入る]/) do |match|
27
27
  url = $1
28
- path = url =~ URI.regexp ? download_image(url) : url
29
- path ? block.call(make_illust_chuki(path)) : ""
28
+ if url =~ URI.regexp
29
+ path = download_image(url)
30
+ path ? block.call(make_illust_chuki(path)) : ""
31
+ else
32
+ # URLでなければ、ローカルのパスが指定されたと判断してそのままの注記を使う
33
+ block.call(match)
34
+ end
30
35
  end
31
36
  source.gsub!(NAROU_ILLUST_TAG_PATTERN) do
32
37
  id1, id2 = $1, $2
@@ -0,0 +1,67 @@
1
+ # -*- coding: utf-8 -*-
2
+ #
3
+ # Copyright 2013 whiteleaf. All rights reserved.
4
+ #
5
+
6
+ require "pony"
7
+ require "yaml"
8
+ require_relative "narou"
9
+
10
+ class Mailer
11
+ include Singleton
12
+
13
+ SETTING_FILE = "mail_setting.yaml"
14
+
15
+ class SettingNotFound < StandardError; end
16
+ class SettingUncompleteError < StandardError; end
17
+
18
+ attr_reader :error_message
19
+
20
+ def self.create
21
+ this = instance
22
+ this.clear
23
+ setting_file_path = File.join(Narou.get_root_dir, SETTING_FILE)
24
+ if File.exists?(setting_file_path)
25
+ options = YAML.load_file(setting_file_path)
26
+ unless options.delete(:complete)
27
+ raise SettingUncompleteError, "設定ファイルの書き換えが終了していないようです。\n" +
28
+ "設定ファイルは #{setting_file_path} にあります"
29
+ end
30
+ this.options = options
31
+ else
32
+ raise SettingNotFound
33
+ end
34
+ this
35
+ end
36
+
37
+ def initialize
38
+ @options = {}
39
+ @error_message = ""
40
+ end
41
+
42
+ def clear
43
+ @options.clear
44
+ end
45
+
46
+ def options=(options)
47
+ @options.merge!(options)
48
+ end
49
+
50
+ def send(message, attached_file_path = nil)
51
+ @error_message = ""
52
+ params = @options.dup
53
+ params[:body] = message
54
+ params[:charset] = "UTF-8"
55
+ params[:text_part_charset] = "UTF-8"
56
+ if attached_file_path
57
+ params[:attachments] = { File.basename(attached_file_path) => File.binread(attached_file_path) }
58
+ end
59
+ begin
60
+ Pony.mail(params)
61
+ rescue StandardError => e
62
+ @error_message = e.message
63
+ return false
64
+ end
65
+ true
66
+ end
67
+ end
@@ -126,6 +126,9 @@ class NovelConverter
126
126
 
127
127
  java_encoding = "-Dfile.encoding=UTF-8"
128
128
 
129
+ if Helper.os_cygwin?
130
+ abs_srcpath = Helper.convert_to_windows_path(abs_srcpath)
131
+ end
129
132
  Dir.chdir(aozoraepub3_dir)
130
133
  command = %!java #{java_encoding} -cp #{aozoraepub3_basename} AozoraEpub3 -enc UTF-8 -of #{device_option} ! +
131
134
  %!#{cover_option} #{dst_option} #{ext_option} "#{abs_srcpath}"!
@@ -181,6 +184,9 @@ class NovelConverter
181
184
  return :error
182
185
  end
183
186
 
187
+ if Helper.os_cygwin?
188
+ epub_path = Helper.convert_to_windows_path(epub_path)
189
+ end
184
190
  command = %!"#{kindlegen_path}" -locale ja "#{epub_path}"!
185
191
  if Helper.os_windows?
186
192
  command.encode!(Encoding::Windows_31J)
@@ -193,7 +193,7 @@ class NovelSetting
193
193
  },
194
194
  {
195
195
  name: "enable_transform_date",
196
- value: true,
196
+ value: false,
197
197
  help: "日付表記(20yy/mm/dd)を任意の形式(date_formatで指定)に変換する"
198
198
  },
199
199
  {
@@ -59,7 +59,9 @@ class Template
59
59
  end
60
60
 
61
61
  #
62
- # 書かれているテンプレートがどのバージョンのテンプレートを設定
62
+ # 書かれているテンプレートがどのバージョンのテンプレートかを設定
63
+ #
64
+ # テンプレート内部で使われる変数の変更があった場合に binary_version が上がる
63
65
  #
64
66
  def self.target_binary_version(version)
65
67
  @@src_version = version
@@ -3,7 +3,7 @@
3
3
  # Copyright 2013 whiteleaf. All rights reserved.
4
4
  #
5
5
 
6
- Version = "1.5.1"
6
+ Version = "1.5.2"
7
7
 
8
8
  cv_path = File.expand_path(File.join(File.dirname(__FILE__), "../commitversion"))
9
9
  if File.exists?(cv_path)
@@ -0,0 +1,14 @@
1
+ @echo off
2
+ REM -*- mode: ruby -*-
3
+ @if not "%~d0" == "~d0" goto WinNT
4
+ ruby -x narou.bat %1 %2 %3 %4 %5 %6 %7 %8 %9
5
+ @goto endofruby
6
+ :WinNT
7
+ ruby -x "%~f0" %*
8
+ @goto endofruby
9
+ #! ruby
10
+
11
+ require_relative "narou.rb"
12
+
13
+ __END__
14
+ :endofruby
@@ -58,6 +58,18 @@ narou コマンドのインストール or アップデートが完了しまし
58
58
  - ノクターンノベルズ及びムーンライトノベルズを2個以上同時にダウンロードした場合に、
59
59
  2個目以降が正常にDL出来ない問題を修正
60
60
 
61
+ 2014/03/09 : **1.5.2**
62
+ * 追加機能もしくは仕様変更
63
+ - **Cygwin** に対応しました(laplace22さんによる実装)
64
+ - `narou mail` コマンドを追加しました
65
+ + 主にSend to Kindleを使うことを想定したコマンドです。送信用にメールアドレスが必要です
66
+ + 初めて `narou mail` コマンドを使った際に、自動で設定用ファイルが作成されます。そのファイルを
67
+ 編集することで初めてコマンドが使えるようになります
68
+ - setting.ini の `enable_transform_date` をデフォルトで false に変更(新規DLから反映)
69
+ * Bug Fix
70
+ - ハーメルンで前書き後書きが正常に取得出来ない問題を修正
71
+ - ハーメルンでダウンロード時にエラーが出る場合があった問題を修正 #43
72
+
61
73
  #{"*" * 79}
62
74
  EOS
63
75
  gem.post_install_message = install_message.gsub("\t", " ")
@@ -69,4 +81,5 @@ narou コマンドのインストール or アップデートが完了しまし
69
81
  gem.test_files = gem.files.grep(%r{^(test|spec|features)/})
70
82
  gem.add_runtime_dependency 'termcolor', '~> 1.2', '>= 1.2.2'
71
83
  gem.add_runtime_dependency 'rubyzip', '~> 1.1', '>= 1.1.0'
84
+ gem.add_runtime_dependency 'pony', '~> 1.8'
72
85
  end
@@ -0,0 +1,34 @@
1
+ # ------------------------------------------------------------
2
+ # メールの送信設定
3
+ #
4
+ # Gmail で Send to Kindle を使うためのサンプルです。
5
+ # ご自分の環境に適宜書き換えて下さい。
6
+ # ------------------------------------------------------------
7
+ # Send to Kindle で使う場合の注意点
8
+ # ・同じファイル名だとしてもパーソナルドキュメントに別ファイルとしてどんどん溜まっていきます。
9
+ # 更新のたびに送信していると恐ろしいことになるので注意して下さい。
10
+
11
+ # toのアドレスは
12
+ # My Kindle > パーソナル・ドキュメント設定 > Send-to-Kindle Eメールアドレスの設定
13
+ # https://www.amazon.co.jp/gp/digital/fiona/manage/ref=gno_yam_myk?#pdocSettings
14
+ # に書いてあります。
15
+ # 自分のメールアドレスが承認済みEメールアドレス一覧にあることを確認して下さい。
16
+ :to : your_account@kindle.com
17
+
18
+ # 件名を「変換」にすると Kindleフォーマット(.azw) に変換される
19
+ :subject : ""
20
+
21
+ :via : smtp
22
+ :via_options :
23
+ :address : smtp.gmail.com
24
+ :port : 587
25
+ :enable_starttls_auto : true
26
+ :user_name : your_gmail_account
27
+ :password : password
28
+ # 2段階認証の場合はアプリケーション固有のパスワード
29
+ # 参照 https://support.google.com/accounts/answer/185833?hl=ja
30
+ :authentication : :plain
31
+ :domain : gmail.com
32
+
33
+ # 設定が終わったらこの項目を true にして下さい
34
+ :complete : false
@@ -30,12 +30,15 @@ href: \\k<index>.html
30
30
  # ------------------------------------------------------------
31
31
  # 本文取得設定
32
32
 
33
- text_body: |-
33
+ body_pattern: |-
34
34
  (?:<div id=maegaki>(?<introduction>.+?)</div><BR><HR><BR>
35
35
  )?<font size=\+1>.+?</font><BR><BR>
36
36
  (?<body>.+?)
37
37
  <BR>(?:<HR><BR><div id=atogaki>(?<postscript>.+?)</div>)?
38
38
 
39
+ introduction_pattern: null
40
+ postscript_pattern: null
41
+
39
42
  illust_current_url: null
40
43
  illust_grep_pattern: <a href="(?<src>.+?)" alt="挿絵" name='img'>【挿絵表示】</a>
41
44
 
@@ -30,9 +30,9 @@ subupdate: no
30
30
  # ------------------------------------------------------------
31
31
  # 本文取得設定
32
32
 
33
- text_body: <blockquote><div style="line-height:1.5">(?<body>.+?)</div></blockquote>
34
- introduction: ""
35
- postscript: ""
33
+ body_pattern: <blockquote><div style="line-height:1.5">(?<body>.+?)</div></blockquote>
34
+ introduction_pattern: null
35
+ postscript_pattern: null
36
36
 
37
37
  # ------------------------------------------------------------
38
38
  # 小説情報からパースするための設定
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.1
4
+ version: 1.5.2
5
5
  platform: ruby
6
6
  authors:
7
7
  - whiteleaf7
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2014-03-07 00:00:00.000000000 Z
11
+ date: 2014-03-08 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: termcolor
@@ -50,6 +50,20 @@ dependencies:
50
50
  - - '>='
51
51
  - !ruby/object:Gem::Version
52
52
  version: 1.1.0
53
+ - !ruby/object:Gem::Dependency
54
+ name: pony
55
+ requirement: !ruby/object:Gem::Requirement
56
+ requirements:
57
+ - - ~>
58
+ - !ruby/object:Gem::Version
59
+ version: '1.8'
60
+ type: :runtime
61
+ prerelease: false
62
+ version_requirements: !ruby/object:Gem::Requirement
63
+ requirements:
64
+ - - ~>
65
+ - !ruby/object:Gem::Version
66
+ version: '1.8'
53
67
  description: 小説家になろうで公開されている小説の管理、及び電子書籍データへの変換を支援します。縦書用に特化されており、横書き用に特化されたWEB小説を違和感なく縦書で読むことが出来るようになります。
54
68
  email:
55
69
  - 2nd.leaf@gmail.com
@@ -80,6 +94,7 @@ files:
80
94
  - lib/command/init.rb
81
95
  - lib/command/inspect.rb
82
96
  - lib/command/list.rb
97
+ - lib/command/mail.rb
83
98
  - lib/command/remove.rb
84
99
  - lib/command/send.rb
85
100
  - lib/command/setting.rb
@@ -93,6 +108,7 @@ files:
93
108
  - lib/device/ibunko.rb
94
109
  - lib/device/kindle.rb
95
110
  - lib/device/kobo.rb
111
+ - lib/device/library/cygwin.rb
96
112
  - lib/device/library/linux.rb
97
113
  - lib/device/library/mac.rb
98
114
  - lib/device/library/windows.rb
@@ -109,6 +125,7 @@ files:
109
125
  - lib/loadconverter.rb
110
126
  - lib/localsetting.rb
111
127
  - lib/logger.rb
128
+ - lib/mailer.rb
112
129
  - lib/narou.rb
113
130
  - lib/narou/api.rb
114
131
  - lib/novelconverter.rb
@@ -119,12 +136,14 @@ files:
119
136
  - lib/sitesetting.rb
120
137
  - lib/template.rb
121
138
  - lib/version.rb
139
+ - narou.bat
122
140
  - narou.gemspec
123
141
  - narou.rb
124
142
  - preset/AozoraEpub3.ini
125
143
  - preset/DMincho.ttf
126
144
  - preset/bordersymbols.txt
127
145
  - preset/custom_chuki_tag.txt
146
+ - preset/mail_setting.yaml
128
147
  - preset/ncode.syosetu.com/n1839bd/converter.rb
129
148
  - preset/ncode.syosetu.com/n1839bd/setting.ini
130
149
  - preset/ncode.syosetu.com/n2267be/converter.rb
@@ -182,6 +201,18 @@ post_install_message: |
182
201
  - ノクターンノベルズ及びムーンライトノベルズを2個以上同時にダウンロードした場合に、
183
202
  2個目以降が正常にDL出来ない問題を修正
184
203
 
204
+ 2014/03/09 : **1.5.2**
205
+ * 追加機能もしくは仕様変更
206
+ - **Cygwin** に対応しました(laplace22さんによる実装)
207
+ - `narou mail` コマンドを追加しました
208
+ + 主にSend to Kindleを使うことを想定したコマンドです。送信用にメールアドレスが必要です
209
+ + 初めて `narou mail` コマンドを使った際に、自動で設定用ファイルが作成されます。そのファイルを
210
+ 編集することで初めてコマンドが使えるようになります
211
+ - setting.ini の `enable_transform_date` をデフォルトで false に変更(新規DLから反映)
212
+ * Bug Fix
213
+ - ハーメルンで前書き後書きが正常に取得出来ない問題を修正
214
+ - ハーメルンでダウンロード時にエラーが出る場合があった問題を修正 #43
215
+
185
216
  *******************************************************************************
186
217
  rdoc_options: []
187
218
  require_paths: