narou 2.6.1 → 2.7.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.

Files changed (68) hide show
  1. checksums.yaml +4 -4
  2. data/ChangeLog.md +65 -0
  3. data/README.md +69 -22
  4. data/lib/command.rb +1 -0
  5. data/lib/command/alias.rb +2 -2
  6. data/lib/command/convert.rb +3 -3
  7. data/lib/command/csv.rb +108 -0
  8. data/lib/command/download.rb +13 -1
  9. data/lib/command/freeze.rb +1 -1
  10. data/lib/command/init.rb +5 -1
  11. data/lib/command/inspect.rb +1 -1
  12. data/lib/command/mail.rb +1 -1
  13. data/lib/command/send.rb +2 -2
  14. data/lib/command/setting.rb +17 -1
  15. data/lib/command/tag.rb +28 -9
  16. data/lib/command/update.rb +57 -30
  17. data/lib/commandbase.rb +3 -2
  18. data/lib/commandline.rb +2 -2
  19. data/lib/converterbase.rb +70 -7
  20. data/lib/database.rb +1 -1
  21. data/lib/device.rb +3 -0
  22. data/lib/device/ibooks.rb +2 -2
  23. data/lib/device/ibunko.rb +4 -0
  24. data/lib/diffviewer.rb +2 -2
  25. data/lib/downloader.rb +16 -9
  26. data/lib/helper.rb +53 -22
  27. data/lib/inventory.rb +6 -2
  28. data/lib/narou.rb +13 -6
  29. data/lib/novelconverter.rb +35 -13
  30. data/lib/novelsetting.rb +7 -1
  31. data/lib/version.rb +1 -1
  32. data/lib/web/appserver.rb +78 -8
  33. data/lib/web/public/resources/common.ui.js +0 -39
  34. data/lib/web/public/resources/dataTables.colVis.js +1 -1
  35. data/lib/web/public/resources/default-style.css +1 -1
  36. data/lib/web/public/resources/help/bookmarklet1.png +0 -0
  37. data/lib/web/public/resources/help/bookmarklet2.png +0 -0
  38. data/lib/web/public/resources/images/dl_button0.gif +0 -0
  39. data/lib/web/public/resources/images/dl_button1.gif +0 -0
  40. data/lib/web/public/resources/narou.library.js +268 -36
  41. data/lib/web/public/resources/narou.queue.js +51 -0
  42. data/lib/web/public/resources/narou.ui.js +156 -59
  43. data/lib/web/settingmessages.rb +2 -1
  44. data/lib/web/views/{js/widget.erb → bookmarklet/download.js.erb} +1 -1
  45. data/lib/web/views/bookmarklet/insert_button.js.erb +133 -0
  46. data/lib/web/views/help.haml +31 -14
  47. data/lib/web/views/index.haml +62 -0
  48. data/lib/web/views/layout.haml +8 -7
  49. data/lib/web/views/parts/csv_import.haml +68 -0
  50. data/lib/web/views/parts/download_form.haml +89 -0
  51. data/lib/web/views/settings.haml +8 -3
  52. data/lib/web/views/style.scss +200 -14
  53. data/lib/web/views/{widget.haml → widget/download.haml} +18 -4
  54. data/lib/web/views/widget/drag_and_drop.haml +97 -0
  55. data/lib/web/worker.rb +39 -1
  56. data/narou.gemspec +56 -56
  57. data/preset/custom_chuki_tag.txt +1 -1
  58. data/preset/doubledash.png +0 -0
  59. data/preset/singledash.png +0 -0
  60. data/preset/vertical_font.css +1 -1
  61. data/spec/convert_spec.rb +5 -1
  62. data/spec/data/convert_test/auto_join_line/correct_test_auto_join_line.txt +6 -0
  63. data/spec/data/convert_test/auto_join_line/test_auto_join_line.txt +8 -0
  64. data/spec/data/convert_test/double_dash_to_image/correct_test_double_dash_to_image.txt +14 -0
  65. data/spec/data/convert_test/double_dash_to_image/setting.ini +1 -0
  66. data/spec/data/convert_test/double_dash_to_image/test_double_dash_to_image.txt +12 -0
  67. data/spec/worker_spec.rb +21 -2
  68. metadata +97 -60
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: be982c9e46de39be05e82d8480ed496812d680d6
4
- data.tar.gz: 3d45141808911edb62322c493b6b95e3db48925f
3
+ metadata.gz: 3ad5855c414296921dcea81e7edfa60fba1bf355
4
+ data.tar.gz: b9a258222bc33cc182851275e8484545be3de585
5
5
  SHA512:
6
- metadata.gz: e3ff648c76914a7096077adb9520f9eeb31510f6da66103ff32ed6f1ffd2a4056beeab10b70d6b49558214572a2b5f7ddece1bce4c37b35601d32f6d8a1b4f0b
7
- data.tar.gz: ea80bed4f4aaea71263d6c42fa9867c0d14da19cfeb33a7557e1ba23ec9bda2acf9cfe98bb589d2596a36a470d73653fc57e2aa1c5e387d661b9c454cad40660
6
+ metadata.gz: d8fbd19bb073510f960484d31a0ed7d681ca3f392a3fca8d3f8fbe68917d35498a45f5a77acf78bded6156f5770a9ef360b77ee47e3228c9f3488fc306ed693f
7
+ data.tar.gz: 92f111efe1afe91ac89ceb6a9453618b7f647a2ef62c7c1b1be09792a3a66443328ae111b7de0fd6570ac865d1dd5595f8328189e8e1b31187d8992f01fe2e75
@@ -2,6 +2,70 @@
2
2
  更新履歴 - ChangeLog
3
3
  ====================
4
4
 
5
+ 2.7.0 : 2015/08/23
6
+ ------------------
7
+ #### 追加機能
8
+ - setting.ini に `enable_double_dash_to_image` を追加しました
9
+ + 2倍ダッシュ(――)を画像に差し替えます。細めに調整してあるので、Kindle の
10
+ デフォルトフォントの様にダッシュが太い環境でご使用ください(iBooksだと崩れる
11
+ ので使わない方が良いです)
12
+ + `narou init` が必要です
13
+ - `csv` コマンドを実装しました。管理している小説の情報をCSV形式で出力したり、
14
+ インポートしたり出来ます。詳細は `narou csv -h` を参照して下さい
15
+ - 容量節約のための設定 `economy` を追加しました。変換後の作業ファイルの削除等を
16
+ 制御できます
17
+ + 設定は `narou s economy=設定値をカンマ区切り` or WEB UI の環境設定>詳細
18
+ - cleanup_temp : 変換後に作業ファイルを削除
19
+ - send_delete : 送信後に書籍ファイルを削除
20
+ - nosave_diff : 差分ファイルを保存しない
21
+ - nosave_raw : rawデータを保存しない
22
+ - ネタバレ防止設定 `guard-spoiler` を追加しました。ダウンロード時に各話タイトル
23
+ を伏せ字で表示します
24
+ + 設定は `narou s guard-spoiler=true` or WEB UI の環境設定>詳細
25
+ - 処理の中断関係を強化しました
26
+ + update 中に中断した場合は以降の更新は全てキャンセルされるようになります
27
+ + 変換中に処理を中断した場合、次回の update コマンド実行時に再変換されます
28
+
29
+ #### WEB UI
30
+ - タグの色を変更出来るようにしました
31
+ - 「処理の中断」ボタンをコンソール右上に追加しました。現在処理しているものも
32
+ 含めて、全てのキューを破棄します
33
+ - 「個別>差分を表示」で表示されるダイアログに「差分を消去」ボタンを追加しました
34
+ - リンクのドラッグ&ドロップに対応しました。Downloadボタンを押すか「ツール>D&D
35
+ ウィンドウを開く」を実行して下さい
36
+ + 文章内リンク及びMacとWindowsのショートカットファイル(複数可)に対応
37
+ + IEにおいて、ドメイン間でリンクをD&Dするためには設定が必要です。
38
+ http://whiteleaf.hatenablog.com/entry/ie_dnd_setting を参照して下さい
39
+ - 「ツール>CSV形式でリストをダウンロード」を追加しました
40
+ - 「ツール>CSVファイルからインポート」を追加しました
41
+ - 新しいブックマークレット「DLボタンを設置」を追加しました。WEB UIのヘルプから
42
+ 取得できます
43
+ - 選択モードにハイブリッド選択モードを追加しました。クリックで選択、ドラッグで
44
+ 範囲選択が出来ます
45
+ - hotentry が有効な場合に Send ボタンに「hotentry を送信」を追加するようにしました
46
+ - ブックマークレットで表示されるウィンドウにキューアイコンを表示するように変更
47
+ - fix: FirefoxとIEで小説リスト上のタグ検索の解除ボタンを押した場合、ツールチップが
48
+ 消えない場合があったのを修正
49
+ - fix: IEでメニューのタグ一覧が自動で更新されていなかったのを修正
50
+ - fix: メニューが隠れた際にメニュー部分の背景色が消えていたのを修正
51
+ - fix: 差分表示で変更後の行が太字になっていないのを修正
52
+ - fix: リストが自動更新された際に範囲選択モードのままボタンが押せなかったのを修正
53
+
54
+ #### 仕様変更
55
+ - `tag` コマンドで対象小説を指定しなくてもタグの色を変更出来るようにしました
56
+ - 変換設定の `enable_auto_join_line` が有効な場合で、行末読点の次の行頭に全角
57
+ スペースが2個以上ある場合は連結しないようにしました
58
+ - converter.rb 内から処理中の小説に関するデータを取得できるようにしました
59
+ + @subtitles: その小説の処理対象の情報(Hash)が入っている配列。hotentry 処理中
60
+ の場合は新規部分のみしか入っていない
61
+ + @current_index: 現在何話目を処理しているか(0から@subtitles.size-1まで)
62
+
63
+ #### BugFix
64
+ - Windowsにおいて日本語を含むフォルダで narou init しようとするとエラーが出て
65
+ いたのを修正
66
+ - `update --gl` コマンドでエラーが起きる場合があったのを修正
67
+
68
+
5
69
  2.6.1 : 2015/08/03
6
70
  ------------------
7
71
  #### 追加機能
@@ -32,6 +96,7 @@
32
96
  送信します(mail の設定が済んでいる場合のみ)
33
97
  + 変換設定は各小説の設定がそれぞれ適用されます
34
98
  + multi-device には未対応です
99
+ + 挿絵は表示出来ません
35
100
  - `update` コマンドに凍結済みでも更新する `--force` オプションを追加しました
36
101
  - `setting` コマンドに `--burn` オプションを追加しました
37
102
  + 指定した小説の setting.ini の未設定項目に共通設定を焼付け(書き込み)ます
data/README.md CHANGED
@@ -25,17 +25,84 @@ Narou.rb ― 「小説家になろう」「小説を読もう!」ダウンロ
25
25
  + Arcadia http://www.mai-net.net/
26
26
  + 暁 http://www.akatsuki-novels.com/
27
27
 
28
- コンソールで操作するアプリケーションですが、ブラウザを使って直感的に操作することができる WEB UI も搭載!
28
+ コンソールで操作するアプリケーションですが、ブラウザを使って直感的に操作することができる WEB UI も搭載!([デモページ](http://whiteleaf7.github.io/narou/demo/))
29
29
 
30
30
  主な機能は小説家になろうの小説のダウンロード、更新管理、テキスト整形、AozoraEpub3・kindlegen連携によるEPUB/MOBI出力です。
31
31
 
32
32
  詳細な説明やインストール方法は **[Narou.rb 説明書](https://github.com/whiteleaf7/narou/wiki)** を御覧ください。
33
33
 
34
- ![ScreenCapture](https://raw.github.com/wiki/whiteleaf7/narou/images/narou_cap.gif)
34
+ ![WEB UI ScreenCapture](https://raw.github.com/wiki/whiteleaf7/narou/images/webui_cap.png)
35
+ ![Console ScreenCapture](https://raw.github.com/wiki/whiteleaf7/narou/images/narou_cap.gif)
35
36
 
36
37
  更新履歴 - ChangeLog
37
38
  --------------------
38
39
 
40
+
41
+ 2.7.0 : 2015/08/23
42
+ ------------------
43
+ #### 追加機能
44
+ - setting.ini に `enable_double_dash_to_image` を追加しました
45
+ + 2倍ダッシュ(――)を画像に差し替えます。細めに調整してあるので、Kindle の
46
+ デフォルトフォントの様にダッシュが太い環境でご使用ください(iBooksだと崩れる
47
+ ので使わない方が良いです)
48
+ + `narou init` が必要です
49
+ - `csv` コマンドを実装しました。管理している小説の情報をCSV形式で出力したり、
50
+ インポートしたり出来ます。詳細は `narou csv -h` を参照して下さい
51
+ - 容量節約のための設定 `economy` を追加しました。変換後の作業ファイルの削除等を
52
+ 制御できます
53
+ + 設定は `narou s economy=設定値をカンマ区切り` or WEB UI の環境設定>詳細
54
+ - cleanup_temp : 変換後に作業ファイルを削除
55
+ - send_delete : 送信後に書籍ファイルを削除
56
+ - nosave_diff : 差分ファイルを保存しない
57
+ - nosave_raw : rawデータを保存しない
58
+ - ネタバレ防止設定 `guard-spoiler` を追加しました。ダウンロード時に各話タイトル
59
+ を伏せ字で表示します
60
+ + 設定は `narou s guard-spoiler=true` or WEB UI の環境設定>詳細
61
+ - 処理の中断関係を強化しました
62
+ + update 中に中断した場合は以降の更新は全てキャンセルされるようになります
63
+ + 変換中に処理を中断した場合、次回の update コマンド実行時に再変換されます
64
+
65
+ #### WEB UI
66
+ - タグの色を変更出来るようにしました
67
+ - 「処理の中断」ボタンをコンソール右上に追加しました。現在処理しているものも
68
+ 含めて、全てのキューを破棄します
69
+ - 「個別>差分を表示」で表示されるダイアログに「差分を消去」ボタンを追加しました
70
+ - リンクのドラッグ&ドロップに対応しました。Downloadボタンを押すか「ツール>D&D
71
+ ウィンドウを開く」を実行して下さい
72
+ + 文章内リンク及びMacとWindowsのショートカットファイル(複数可)に対応
73
+ + IEにおいて、ドメイン間でリンクをD&Dするためには設定が必要です。
74
+ http://whiteleaf.hatenablog.com/entry/ie_dnd_setting を参照して下さい
75
+ - 「ツール>CSV形式でリストをダウンロード」を追加しました
76
+ - 「ツール>CSVファイルからインポート」を追加しました
77
+ - 新しいブックマークレット「DLボタンを設置」を追加しました。WEB UIのヘルプから
78
+ 取得できます
79
+ - 選択モードにハイブリッド選択モードを追加しました。クリックで選択、ドラッグで
80
+ 範囲選択が出来ます
81
+ - hotentry が有効な場合に Send ボタンに「hotentry を送信」を追加するようにしました
82
+ - ブックマークレットで表示されるウィンドウにキューアイコンを表示するように変更
83
+ - fix: FirefoxとIEで小説リスト上のタグ検索の解除ボタンを押した場合、ツールチップが
84
+ 消えない場合があったのを修正
85
+ - fix: IEでメニューのタグ一覧が自動で更新されていなかったのを修正
86
+ - fix: メニューが隠れた際にメニュー部分の背景色が消えていたのを修正
87
+ - fix: 差分表示で変更後の行が太字になっていないのを修正
88
+ - fix: リストが自動更新された際に範囲選択モードのままボタンが押せなかったのを修正
89
+
90
+ #### 仕様変更
91
+ - `tag` コマンドで対象小説を指定しなくてもタグの色を変更出来るようにしました
92
+ - 変換設定の `enable_auto_join_line` が有効な場合で、行末読点の次の行頭に全角
93
+ スペースが2個以上ある場合は連結しないようにしました
94
+ - converter.rb 内から処理中の小説に関するデータを取得できるようにしました
95
+ + @subtitles: その小説の処理対象の情報(Hash)が入っている配列。hotentry 処理中
96
+ の場合は新規部分のみしか入っていない
97
+ + @current_index: 現在何話目を処理しているか(0から@subtitles.size-1まで)
98
+
99
+ #### BugFix
100
+ - Windowsにおいて日本語を含むフォルダで narou init しようとするとエラーが出て
101
+ いたのを修正
102
+ - `update --gl` コマンドでエラーが起きる場合があったのを修正
103
+
104
+
105
+
39
106
  2.6.1 : 2015/08/03
40
107
  ------------------
41
108
  #### 追加機能
@@ -104,26 +171,6 @@ Narou.rb ― 「小説家になろう」「小説を読もう!」ダウンロ
104
171
 
105
172
 
106
173
 
107
- 2.5.2 : 2015/07/23
108
- ------------------
109
- #### 仕様変更
110
- - タグに一部の記号を設定出来ないようにしました
111
- - IDとタグがかぶった場合(404等)、IDを優先するように変更しました。かぶっている
112
- 状態でタグを明示的に指定する場合は `tag:タグ名` と指定して下さい
113
- + 例: `narou u tag:404` 404タグが付いた小説を更新する
114
-
115
- #### Bug Fix
116
- - IDと同じタグがある場合に操作が不可能になる不具合を修正
117
-
118
-
119
- 2.5.1 : 2015/07/10
120
- ------------------
121
- #### Bug Fix
122
- - WEB UI において個別変換設定ページに移動するとエラーがでる問題を修正
123
- - `inspect` コマンドを使用するとエラーがでる問題を修正
124
-
125
-
126
-
127
174
  ----
128
175
 
129
176
  過去の更新履歴は[こちらを参照](https://github.com/whiteleaf7/narou/blob/master/ChangeLog.md)
@@ -36,6 +36,7 @@ module Command
36
36
  "web" => Web,
37
37
  "mail" => Mail,
38
38
  "backup" => Backup,
39
+ "csv" => Csv,
39
40
  "help" => Help,
40
41
  "version" => Version,
41
42
  "init" => Init
@@ -38,7 +38,7 @@ module Command
38
38
  end
39
39
 
40
40
  def output_aliases_list
41
- aliases = Inventory.load("alias", :local)
41
+ aliases = Inventory.load("alias")
42
42
  database = Database.instance
43
43
  aliases.each do |name, id|
44
44
  title = database[id]["title"] rescue "(すでに削除されています)"
@@ -52,7 +52,7 @@ module Command
52
52
  puts @opt.help
53
53
  return
54
54
  end
55
- aliases = Inventory.load("alias", :local)
55
+ aliases = Inventory.load("alias")
56
56
  argv.each_with_index do |arg, i|
57
57
  Helper.print_horizontal_rule if i > 0
58
58
  alias_name, target = arg.split("=", 2)
@@ -220,9 +220,8 @@ module Command
220
220
  end
221
221
  end
222
222
  rescue Interrupt
223
- puts
224
223
  puts "変換を中断しました"
225
- exit Narou::EXIT_ERROR_CODE
224
+ exit Narou::EXIT_INTERRUPT
226
225
  end
227
226
 
228
227
  #
@@ -262,7 +261,8 @@ module Command
262
261
  verbose: @options["verbose"],
263
262
  no_epub: @options["no-epub"],
264
263
  no_mobi: @options["no-mobi"],
265
- no_strip: @options["no-strip"]
264
+ no_strip: @options["no-strip"],
265
+ no_cleanup_txt: @argument_target_type == :file
266
266
  })
267
267
  end
268
268
 
@@ -0,0 +1,108 @@
1
+ # -*- coding: utf-8 -*-
2
+ #
3
+ # Copyright 2013 whiteleaf. All rights reserved.
4
+ #
5
+
6
+ require "csv"
7
+ require_relative "../database"
8
+
9
+ module Command
10
+ # ライブラリのCSVコマンドと混同を避けるために小文字混じり
11
+ class Csv < CommandBase
12
+ def self.oneline_help
13
+ "小説リストをCSV形式で出力したりインポートしたりします"
14
+ end
15
+
16
+ def initialize
17
+ super("[optioins]")
18
+ @opt.separator <<-EOS
19
+
20
+ ・現在管理している小説の情報をCSV形式で出力したり、逆にインポートが出来ます
21
+ ・インポートするCSVファイルには最低限 url というヘッダーが必要です
22
+
23
+ Examples:
24
+ narou csv # CSV形式でそのまま表示
25
+ narou csv -o novels.csv # novels.csv というファイル名で保存
26
+ narou csv -i novels.csv # ファイルから小説をインポート
27
+
28
+ Options:
29
+ EOS
30
+ @opt.on("-o", "--output FILE", "指定したファイル名で保存") { |filename|
31
+ @options["filename"] = filename
32
+ @mode = :output
33
+ }
34
+ @opt.on("-i", "--import FILE", "指定したファイルからインポート") { |filename|
35
+ @options["filename"] = filename
36
+ @mode = :import
37
+ }
38
+ end
39
+
40
+ def execute(argv)
41
+ @mode = :output
42
+ super
43
+
44
+ self.__send__ @mode
45
+ end
46
+
47
+ #
48
+ # CSV形式で出力する
49
+ # stream には出力先のIOオブジェクトを指定。nilだったら$stdoutに出力
50
+ #
51
+ def output(stream = nil)
52
+ stream ||= @options["filename"] ? File.open(@options["filename"], "w:UTF-8") : $stdout
53
+ stream.puts(generate)
54
+ stream.close if @options["filename"]
55
+ end
56
+
57
+ #
58
+ # 小説の情報をCSV形式の文字列で取得
59
+ #
60
+ def generate
61
+ database_values = Database.instance.get_object.values
62
+ CSV.generate do |csv|
63
+ csv << %w(id title author sitename url novel_type tags frozen last_update general_lastup)
64
+ database_values.each do |data|
65
+ tags = data["tags"] || []
66
+ csv << [
67
+ data["id"],
68
+ data["title"],
69
+ data["author"],
70
+ data["sitename"],
71
+ data["toc_url"],
72
+ data["novel_type"] == 2 ? "短編" : "連載",
73
+ tags.join(" "),
74
+ Narou.novel_frozen?(data["id"]),
75
+ data["last_update"].to_i,
76
+ data["general_lastup"].to_i
77
+ ]
78
+ end
79
+ end
80
+ end
81
+
82
+ #
83
+ # CSV形式のファイルからインポートする
84
+ # header行にurlという項目が必要
85
+ # data にはインポートしたいIOオブジェクトかCSV形式の文字列を指定。
86
+ # nil なら --import オプションで指定されたファイルから入力
87
+ #
88
+ def import(data = nil)
89
+ if data
90
+ source = data
91
+ elsif @options["filename"]
92
+ source = File.read(@options["filename"])
93
+ else
94
+ raise ArgumentError, "need a CSV data"
95
+ end
96
+ csv = CSV.new(source, headers: true, converters: :numeric, header_converters: :symbol)
97
+ table = csv.read
98
+ table[:url].each do |url|
99
+ next unless url
100
+ Download.execute!([url])
101
+ Helper.print_horizontal_rule
102
+ end
103
+ rescue CSV::MalformedCSVError => e
104
+ puts "不正なCSVデータです(#{e.message})"
105
+ exit Narou::EXIT_ERROR_CODE
106
+ end
107
+ end
108
+ end
@@ -136,7 +136,14 @@ module Command
136
136
  next
137
137
  end
138
138
  unless @options["no-convert"]
139
- Convert.execute!([download_target])
139
+ convert_status = Convert.execute!([download_target])
140
+ if convert_status > 0
141
+ # 変換に失敗したか、中断された
142
+ data = Downloader.get_data_by_target(download_target) # 新規はDL後に取得しないとデータが存在しない
143
+ data["_convert_failure"] = true
144
+ # 中断された場合には残りのダウンロードも中止する
145
+ raise Interrupt if convert_status == Narou::EXIT_INTERRUPT
146
+ end
140
147
  end
141
148
  if @options["freeze"]
142
149
  Freeze.execute!([download_target])
@@ -146,6 +153,11 @@ module Command
146
153
  end
147
154
  end
148
155
  exit mistook_count if mistook_count > 0
156
+ rescue Interrupt
157
+ puts "ダウンロードを中断しました"
158
+ exit Narou::EXIT_INTERRUPT
159
+ ensure
160
+ Database.instance.save_database
149
161
  end
150
162
 
151
163
  def self.oneline_help
@@ -51,7 +51,7 @@ module Command
51
51
  return
52
52
  end
53
53
  tagname_to_ids(argv)
54
- frozen_list = Inventory.load("freeze", :local)
54
+ frozen_list = Inventory.load("freeze")
55
55
  argv.each do |target|
56
56
  data = Downloader.get_data_by_target(target)
57
57
  unless data
@@ -118,7 +118,11 @@ module Command
118
118
  print "(現在の場所:#{@global_setting["aozoraepub3dir"]}"
119
119
  end
120
120
  print ")\n>"
121
- while input = $stdin.gets.rstrip.gsub(/"/, "")
121
+ while input = $stdin.gets
122
+ if Helper.os_windows?
123
+ input.force_encoding(Encoding::Windows_31J).encode!(Encoding::UTF_8)
124
+ end
125
+ input = input.strip.gsub(/"/, "")
122
126
  path = File.expand_path(input)
123
127
  case
124
128
  when input == ":keep"
@@ -32,7 +32,7 @@ module Command
32
32
  def execute(argv)
33
33
  super
34
34
  if argv.empty?
35
- latest_id = Inventory.load("latest_convert", :local)["id"]
35
+ latest_id = Inventory.load("latest_convert")["id"]
36
36
  if latest_id
37
37
  data = Downloader.get_data_by_target(latest_id)
38
38
  display_log(data["title"])
@@ -111,7 +111,7 @@ module Command
111
111
  end
112
112
  rescue Interrupt
113
113
  puts "メール送信を中断しました"
114
- exit Narou::EXIT_ERROR_CODE
114
+ exit Narou::EXIT_INTERRUPT
115
115
  ensure
116
116
  database.save_database if database
117
117
  end
@@ -75,7 +75,7 @@ module Command
75
75
  exit Narou::EXIT_ERROR_CODE
76
76
  end
77
77
 
78
- @options["hotentry"] = Inventory.load("local_setting", :local)["hotentry"]
78
+ @options["hotentry"] = Inventory.load("local_setting")["hotentry"]
79
79
  send_all = false
80
80
  titles = {}
81
81
  if argv.empty?
@@ -152,7 +152,7 @@ module Command
152
152
  end
153
153
  rescue Device::SendFailure, Interrupt
154
154
  puts "送信を中断しました"
155
- exit Narou::EXIT_ERROR_CODE
155
+ exit Narou::EXIT_INTERRUPT
156
156
  end
157
157
 
158
158
  def process_backup_bookmark(device)