narou 1.1.0.rc1 → 1.1.0.rc2

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.

data/.gitignore CHANGED
@@ -7,7 +7,7 @@ kindlestrip.py
7
7
  kindlegen.exe
8
8
  t.rb
9
9
  資料
10
- AozoraEpub3
10
+ AozoraEpub3*
11
11
  TODO.txt
12
12
  MEMO.txt
13
13
  .narou/
data/ChangeLog.md ADDED
@@ -0,0 +1,22 @@
1
+ 
2
+ 更新履歴 - ChangeLog
3
+ --------------------
4
+
5
+ 2013/03/07 : **1.1.0.rc2**
6
+ * Bug Fix
7
+ - `update` コマンドに存在しない小説を指定した場合にエラーが出るバグを修正
8
+ - `convert -o` オプションが正常に動いていなかったバグを修正
9
+ - テキストファイル変換時のバグ修正
10
+
11
+ * 追加機能もしくは仕様変更
12
+ - `update` コマンドで全ての小説を更新する場合、 `convert.no-open` の設定にかかわらず
13
+ 保存フォルダは開かないようにした
14
+ - 18禁小説をDL時に年齢認証をするようにした
15
+ - ルビの大きさは 0.6em に調整
16
+
17
+ 2013/03/02 : **1.1.0.rc1**
18
+ * 1.1.0の正式リリースに向けてのテストリリース
19
+ (1.0 系はテスト用非公開バージョン)
20
+
21
+ 2013/02/24 : **1.0.0**
22
+ * first release (closed beta version)
data/README.md CHANGED
@@ -1,301 +1,37 @@
1
- Narou.rb ― 小説家になろう読書支援アプリケーション
2
- ==================================================
1
+ Narou.rb ― 小説家になろうダウンローダ&縦書用整形スクリプト
2
+ ============================================================
3
3
 
4
- 説明 - Description
5
- ------------------
4
+ 概要 - Summary
5
+ --------------
6
6
  このアプリケーションは[小説家になろう](http://syosetu.com/)にある小説を電子書籍端末で快適に読むための支援ツールです。
7
7
 
8
8
  全てコンソールで操作するCUIアプリケーションです。
9
9
 
10
- 縦書に特化しており、どんな文章だろうとほぼ違和感なく縦書で読むことが出来るでしょう。また、若干の校正機能もありますので、
11
- 小説としては許されない記述法などは矯正します。(例:感嘆符のあとにはスペースが必ずくる)
12
-
13
- 簡単にまとめると以下の様なことが出来ます。
14
-
15
- 1. 小説家になろうから小説をダウンロード
16
- 2. ダウンロードした小説の更新管理(新規投稿、改稿された既存話をダウンロード)
17
- 3. 縦書で読みやすい様にがっつり変換(校正、整形)
18
- 4. AozoraEpub3でEPUB化
19
- 5. KindlegenによるMOBI化
20
- 6. 接続されている端末に送信
21
-
22
- 1~6はすべて自動化されていて、利用者がほとんど操作をしなくても良いように設計されています。(各コマンドを使うことにより、ダウンロードのみ、変換のみ、送信のみ、なども可能です)
23
-
24
- 上で説明していない機能もまだまだあります。(更新された小説のどこが変更されたかを目視するdiffなど)
25
-
26
- 作った人 - Author
27
- -----------------
28
- * whiteleaf
29
- * Twitter: https://twitter.com/sasalove7
30
- * Blog: http://whiteleaf.hatenablog.com/
31
- * GitHub: https://github.com/whiteleaf7/narou
32
-
33
- 必須ツール - Require tools
34
- --------------------------
35
- * Ruby 1.9.3 (2.0.0は動きますがまだ動作保証外です)
36
- * Windows: [Ruby MSI Packages](http://www.artonx.org/data/asr/), その他OS: 適当に
37
- * [AozoraEpub3 1.1.0系](http://www18.atwiki.jp/hmdev/pages/21.html)
38
- * Java 6以降(AozoraEpub3で必須)
39
- * [kindlegen 2.7](http://www.amazon.com/gp/feature.html?ie=UTF8&docId=1000765211)
40
- * 最新版は2.8ですが、現在AozoraEpub3が吐き出すEPUBだとNCXが正常に出力されないというバグがあります。
41
-
42
- 機能っぽい一覧 - Functions
43
- --------------------------
44
- ```
45
- Usage: narou <command> [arguments...] [options...]
46
-
47
- コマンドの簡単な説明:
48
- download 指定した小説をダウンロードします
49
- update 小説を更新します
50
- list 現在管理している小説の一覧を表示します
51
- convert 小説を変換します。管理小説以外にテキストファイルも変換可能
52
- diff アップデートされた小説の変更点を表示します
53
- setting 各コマンドの設定を変更します
54
- alias 小説のIDに紐付けた別名を作成します
55
- inspect 小説状態の調査状況ログを表示します
56
- send 変換したEPUB/MOBIを電子書籍端末に送信します
57
- folder 小説の保存フォルダを開きます
58
- browser 小説の掲載ページをブラウザで開きます
59
- remove 小説を削除します
60
- freeze 小説の凍結設定を行います
61
- help このヘルプを表示します
62
- version バージョンを表示します
63
- init AozoraEpub3 の再設定を行います
64
-
65
- 各コマンドの詳細は narou <command> -h/--help を参照してください。
66
- 各コマンドは先頭の一文字か二文字でも指定できます。
67
- (e.g. `narou d n4259s', `narou fr musyoku')
68
- ```
69
-
70
- インストール - How to install
71
- -----------------------------
72
- ### わかってる人向け:
73
- ```
74
- gem install narou
75
- ```
76
- でインストール出来ます。
77
-
78
- *****
79
-
80
- ### 初心者向け:
81
- 必須ツールのインストールを含めて説明します。すでに導入済みの場合は読み飛ばして下さい。
82
- ただし、AozoraEpub3 に関してだけは Narou.rb 用に別途新規インストールすることをオススメします。
83
- それはこのアプリケーションが AozoraEpub3 用の構成ファイルを書き換えるからです。
84
-
85
- > * Windows7ユーザを対象に説明します。他のOSの場合は適宜読み替えて下さい。
86
- > * Windows以外の動作は確認していません。動作報告は歓迎いたします。
87
- > * 3番のkindlegenのインストールはKindleを使わない方は必要ありません。
88
-
89
- 1. Ruby をインストールします。
90
- - [Windows用パッケージ](http://www.artonx.org/data/asr/)からインストールするのが簡単です。
91
- - Ruby-1.9.3-p*** Microsoft Installer Package を選びましょう。
92
- - インストールしたRubyにパスを通します → [参考ページ](http://www.rubylife.jp/install/install/index3.html)
93
- 2. [AozoraEpub3](http://www18.atwiki.jp/hmdev/pages/21.html) をインストールします。
94
- - インストールしたフォルダを覚えておきましょう。3.で必要になります。
95
- 3. [kindlegen](http://www.amazon.com/gp/feature.html?ie=UTF8&docId=1000765211) を
96
- AozoraEpub3 をインストールしたフォルダにコピーします。
97
- 4. Narou.rb をインストールします。コンソールを立ち上げ(Winキー+R→cmd と入力すれば立ち上がります)、
98
- ```
99
- gem install narou
100
- ```
101
-
102
- と入力します。
103
- 5. 小説を管理するために好きな場所にフォルダを作成し、そのフォルダを初期化します。
104
- ここでは **C:\MyNovel** を管理用フォルダとして話を進めます。4.で立ち上げたコンソールで、
105
- ```
106
- cd c:/
107
- mkdir MyNovel
108
- cd MyNovel
109
- narou init
110
- ```
111
-
112
- と順番に入力します。`narou init`を入力したら、AozoraEpub3 のフォルダの入力を求められますので、
113
- 2.でインストールしたフォルダを入力して下さい(コンソールにエクスプローラからフォルダをドラッグで入力出来ます)。
114
- ```
115
- c:\MyNovel>narou init
116
- .narou/ を作成しました
117
- 小説データ/ を作成しました
118
- ------------------------------
119
- AozoraEpub3の設定を行います
120
- !!!WARNING!!!
121
- AozoraEpub3の構成ファイルを書き換えます。narouコマンド用に別途新規インストールし
122
- ておくことをオススメします
123
-
124
- AozoraEpub3のあるフォルダを入力して下さい
125
- (未入力でスキップ):
126
- >C:\Users\whiteleaf\Documents\GitHub\narou\AozoraEpub3
127
-
128
- (次のファイルを書き換えました)
129
- ~~ 以下略 ~~
130
- ```
131
-
132
- これで **C:\MyNovel** 以下のフォルダでNarou.rbの各種コマンドが使用できるようになります。
133
-
134
- 使い方 - How to use
135
- -------------------
136
- 基本的な使い方を説明します。
137
-
138
- *****
139
-
140
- ### 小説のダウンロード (download)
141
-
142
- ここでは[無職転生 - 異世界行ったら本気だす -](http://ncode.syosetu.com/n9669bk/)を例に説明します
143
- (関係ないですが私のオススメ小説です)。また、使用している電子書籍端末を **Kindle Paperwhite** と仮定します。
144
-
145
- 以下は全てコンソールでの作業です。
146
-
147
- 1. まずは Kindle Paperwhite をUSBケーブルでパソコンに接続します。
148
- 2. あなたの使用する電子書籍端末を設定します。ここでは Kindle Paperwhite なので、
149
- ```
150
- narou setting device=kindle
151
- ```
152
-
153
- と入力します。
154
- 3. 小説をダウンロードしましょう! 次のコマンドを入力して下さい。
155
- ```
156
- narou download n9669bk
157
- ```
158
-
159
- 小説のダウンロードが始まるので終わるまで待ちます。
160
-
161
- > *NOTICE*
162
- > - `narou download` は `narou d` と省略することが出来ます。
163
- > - `narou d http://ncode.syosetu.com/n9669bk/` とURLを直接入力することもできます。
164
- > ブラウザからそのままコピーが楽でしょう(アドレスバーのアイコンをドラッグで入力出来ます)。
165
- 4. 自動で変換されます。
166
- 5. Kindle Paperwhiteへコピーされましたね? **これでもうKindle Paperwhiteで読むことが出来ます!**
167
-
168
- このアプリケーションは **ダウンロード→変換→端末へ送信** までが全自動なのです。
169
- > *NOTICE*
170
- >
171
- > ダウンロード時の変換は抑制することが出来ます。
172
- >
173
- > `narou d n9669bk -n` と `-n` オプションをつければダウンロードだけ実行します。
174
-
175
- *****
176
-
177
- ### ダウンロードした小説の管理
178
-
179
- 一度小説をダウンロードすれば、パソコン上に保存され、次回以降は再度ダウンロードする必要はありません。
180
-
181
- まずは現在保存されている小説の一覧を見てみましょう。
10
+ 主な機能は小説家になろうの小説のダウンロード、更新管理、テキスト整形、AozoraEpub3・kindlegen連携によるEPUB/MOBI出力です。
182
11
 
183
- #### 一覧を表示する (list)
184
- ```
185
- > narou list
186
- ID | 更新日 | タイトル
187
- 0 | 13/02/26 | 無職転生 - 異世界行ったら本気だす -
188
- ```
189
- 先ほどダウンロードした無職転生がリストに現れました。 **listコマンド** では現在管理している小説の一覧を表示することが出来ます。
190
-
191
- このlistコマンドは非常によく使いますので、`narou l` (l は小文字のエル)と短縮コマンドを覚えましょう。短縮コマンドは各コマンドの頭文字の1文字、もしくは2文字を使います。
192
-
193
- このリストで表示されているIDは、各コマンドで小説を特定するための数字です。
194
- NコードやURL、タイトルでも各コマンドは動かすことが出来ますが、入力が面倒なのでIDを使いましょう。
195
-
196
- #### 小説を更新する (update)
197
- ```
198
- > narou update
199
- ID:0 無職転生 - 異世界行ったら本気だす - のDL開始
200
- 第26部分 第二十三話「信用の理由」 (1/5)
201
- 第30部分 第二十七話「冒険者の宿」 (2/5)
202
- 第31部分 第二十八話「人の命と初仕事」 (3/5)
203
- 第34部分 第三十一話「子供と戦士」 (4/5)
204
- 第35部分 第三十二話「失敗と混乱と決意」 (5/5)
205
- ID:0 無職転生 - 異世界行ったら本気だす - の変換を開始
206
- 小説状態の調査結果を 調査ログ.txt に出力しました
207
- [理不尽な孫の手] 無職転生 - 異世界行ったら本気だす -.txt を出力しました
208
- AozoraEpub3でEPUBに変換しています.........変換しました
209
- kindlegen実行中...............変換しました
210
- kindlestrip実行中
211
- MOBIファイルを出力しました
212
- Kindleへ送信しています....
213
- F:/documents/[理不尽な孫の手] 無職転生 - 異世界行ったら本気だす -.mobi へコピーしました
214
- ```
215
- これは更新があった時の表示例です。downloadコマンド実行直後は更新は当然ありませんので、『更新はありません』と表示されます。
216
-
217
- この **updateコマンド** は、現在管理している全ての小説の更新をチェックするコマンドです。これもまたよく使うコマンドなので、`narou u` という短縮コマンドを覚えましょう。
218
-
219
- updateコマンドは指定した小説のみアップデートする機能もあります。
220
- ```
221
- narou update 0
222
- ```
223
- と先ほどlistコマンドで取得したIDをupdateに続いて指定しました。これで無職転生のみの更新を取得することが出来ます。
224
-
225
- (ここまで書いた)
226
-
227
- #### 読み終わったら評価、感想を書こう
228
-
229
- 小説家になろうの作品を読んだら評価や感想を書きましょう。
230
-
231
- ```
232
- narou browser 0 --vote
233
- ```
234
- ブラウザが開き、評価投票、感想を書くページが表示されます。--vote オプションを付けなかった場合は目次ページが表示されます。
235
-
236
- サポート - Support
237
- ------------------
238
- https://twitter.com/sasalove7 , http://whiteleaf.hatenablog.com/
239
-
240
- 上記のツイッター及びブログで今後要望等を取り扱いたいと思います。
241
-
242
- 動作環境 - Platform
243
- -------------------
244
-
245
- ### OS別動作状況
246
-
247
- |OS名 |Rubyバージョン|動作|備考 |
248
- |---------------|--------------|:--:|----------------------------------------|
249
- |Windows7 64 bit|Ruby 1.9.3 | ◎ |製作者と同じ環境 |
250
- |Windows7 64 bit|Ruby 1.9.2 | × |1.9.2から前は対応していません |
251
- |WindowsXP |Ruby 1.9.3 | ◎ | |
252
- |Windows7 64 bit|Ruby 2.0.0 | ○ |動くが一部ライブラリで警告が出る |
253
- |Mac OS X |Ruby x.x.x | △ |動作未確認 |
254
- |Linux |Ruby 1.9.3 | ○ |SL6で軽く確認。folderとbrowserは動かない|
255
-
256
- > ◎:動作確認済み、○:動くが一部に何か問題がありそう、△:多分動くかも、×:動きません
257
-
258
- send コマンドに関しては現在 Windows 専用となっております。要望と情報があれば対応します。
259
-
260
- ### 端末の自動認識での対応リスト
261
-
262
- |電子書籍端末名 |対応状況|備考 |
263
- |--------------------|:------:|--------------------------------------------------------------|
264
- |Kindle Paperwhite | ◎ |表示の確認も動作確認も済。この端末を元にチューニングしています|
265
- |Kindle Fire | △ |動くかもしれませんが未確認 |
266
- |Kobo シリーズ | △ |情報を元に設定してありますが、動作未確認です。多分動きます |
267
- |Sony Reader シリーズ| ? |情報が全くありません |
268
- |他各種端末/アプリ | ? |USBにつながるタイプならまだ望みはあります |
269
-
270
- Kobo については暫定で対応しておりますが、動作未確認です。
271
- Kindle Paperwhite 以外の環境の対応については、以下の情報があれば対応可能です。(Windowsの場合)
272
- - USB接続した場合のボリュームラベル
273
- - 書籍データを保存するフォルダ名
274
- - 対応電子書籍データの種類(.epubかどうか等)
275
-
276
- 出力したEPUBを手動でコピーする分には動作対応などは全く関係は無いです。
277
-
278
- 添付のDMincho.ttfについて - About DMincho font
279
- ----------------------------------------------
280
- WEB小説でよく見かける「あ゛」のような表現を、縦書でも再現するための濁点つきフォントです。
281
-
282
- 青キン明朝フォントをカスタマイズして使用しています。
283
-
284
- オリジナルはIPA明朝フォントであり、ライセンスは **IPAフォントライセンスv1.0** の元に「派生プログラム」として
285
- 再配布されています。
286
-
287
- ライセンスに基づく一般公開は以下のURLになります。また、
288
- オリジナルなIPA明朝フォントに戻す場合、下記からDL出来るアーカイブに同梱の ipam.otf で上書きして下さい。
12
+ 縦書に特化しており、どんな文章だろうとほぼ違和感なく縦書で読むことができるように変換します。また、若干の校正機能もありますので、
13
+ 小説としては許されない記述法などは矯正します。(例:感嘆符のあとにはスペースが必ずくる)
289
14
 
290
- http://ux.getuploader.com/whiteleaf/download/23/ipam.rar
15
+ 詳細な説明やインストール方法は[Narou.rb 説明書](https://github.com/whiteleaf7/narou/wiki)を御覧ください。
291
16
 
292
17
  更新履歴 - ChangeLog
293
18
  --------------------
294
19
 
295
- 1.1.0.rc1 : 2013/03/02
296
- - 1.1.0の正式リリースに向けてのテストリリース
297
- (1.0.x 系はテスト用非公開バージョン)
20
+ 2013/03/07 : **1.1.0.rc2**
21
+ * Bug Fix
22
+ - `update` コマンドに存在しない小説を指定した場合にエラーが出るバグを修正
23
+ - `convert -o` オプションが正常に動いていなかったバグを修正
24
+ - テキストファイル変換時のバグ修正
25
+
26
+ * 追加機能もしくは仕様変更
27
+ - `update` コマンドで全ての小説を更新する場合、 `convert.no-open` の設定にかかわらず
28
+ 保存フォルダは開かないようにした
29
+ - 18禁小説をDL時に年齢認証をするようにした
30
+ - ルビの大きさは 0.6em に調整
298
31
 
299
- 1.0.0 : 2013/02/24
300
- - first release (create gem repository)
32
+ 2013/03/02 : **1.1.0.rc1**
33
+ * 1.1.0の正式リリースに向けてのテストリリース
34
+ (1.0 系はテスト用非公開バージョン)
301
35
 
36
+ 2013/02/24 : **1.0.0**
37
+ * first release (closed beta version)
@@ -95,7 +95,7 @@ module Command
95
95
  return
96
96
  end
97
97
  @output_filename = @options["output"]
98
- if @output_filename && argv.length > 1
98
+ if @output_filename
99
99
  @ext = File.extname(@output_filename)
100
100
  @basename = File.basename(@output_filename, @ext)
101
101
  else
@@ -115,10 +115,14 @@ module Command
115
115
  def convert_novels(argv)
116
116
  argv.each.with_index(1) do |target, i|
117
117
  Helper.print_horizontal_rule if i > 1
118
- @output_filename = @basename ? "#{@basename} (#{i})#{@ext}" : nil
118
+ if @basename
119
+ @basename << " (#{i})" if argv.length > 1
120
+ @output_filename = @basename + @ext
121
+ end
122
+
119
123
  if File.file?(target.to_s)
120
124
  @argument_target_type = :file
121
- res = convert_txt(target) or next
125
+ res = convert_txt(target)
122
126
  else
123
127
  @argument_target_type = :novel
124
128
  unless Downloader.novel_exists?(target)
@@ -16,7 +16,6 @@ module Command
16
16
  ・一度に複数の小説を指定する場合は空白で区切って下さい。
17
17
  ・ダウンロード終了後に変換処理を行います。ダウンロードのみする場合は-nオプションを指定して下さい。
18
18
  ・すでにダウンロード済みの小説の場合は何もしません。
19
- ・ダウンロード済みの小説を再度ダウンロードする場合、IDや小説名を指定出来ますが、-fオプションを付けて下さい。
20
19
 
21
20
  Example:
22
21
  narou download n9669bk
@@ -27,7 +26,7 @@ module Command
27
26
 
28
27
  Options:
29
28
  EOS
30
- @opt.on("-f", "--force", "ダウンロード済みでも強制ダウンロードして上書きする") {
29
+ @opt.on("-f", "--force", "全話を再ダウンロードする。中身が同じなら上書きはしない") {
31
30
  @options["force"] = true
32
31
  }
33
32
  @opt.on("-n", "--no-convert", "変換をせずダウンロードのみ実行する") {
data/lib/command/init.rb CHANGED
@@ -97,8 +97,9 @@ module Command
97
97
  puts chuki_tag_path
98
98
  puts
99
99
  # ファイルコピー
100
- src = ["AozoraEpub3.ini", "vertical_font.css", "DMincho.ttf"]
101
- dst = ["AozoraEpub3.ini", "template/OPS/css_custom/vertical_font.css", "template/OPS/fonts/DMincho.ttf"]
100
+ src = ["AozoraEpub3.ini", "vertical_font.css", "DMincho.ttf", "xhtml_nav.vm"]
101
+ dst = ["AozoraEpub3.ini", "template/OPS/css_custom/vertical_font.css", "template/OPS/fonts/DMincho.ttf",
102
+ "template/OPS/xhtml/xhtml_nav.vm"]
102
103
  puts "(次のファイルをコピーor上書きしました)"
103
104
  src.count.times do |i|
104
105
  src_full_path = File.join(Narou.get_preset_dir, src[i])
@@ -246,6 +246,7 @@ module Command
246
246
  "aozoraepub3dir" => [:directory, "AozoraEpub3のあるフォルダを指定", INVISIBLE],
247
247
  "difftool" => [:string, "Diffで使うツールのパスを指定する"],
248
248
  "difftool.arg" => [:string, "difftoolで使う引数を設定(オプション)"],
249
+ "over18" => [:boolean, "", INVISIBLE],
249
250
  }
250
251
  }
251
252
 
@@ -17,6 +17,7 @@ module Command
17
17
  IDは #{@opt.program_name} list を参照して下さい。
18
18
  ・対象を指定しなかった場合、すべての小説の更新をチェックします。
19
19
  ・一度に複数の小説を指定する場合は空白で区切って下さい。
20
+ ・全て更新する場合、convert.no-openが設定されていなくても保存フォルダは開きません。
20
21
 
21
22
  Example:
22
23
  narou update # 全て更新
@@ -34,20 +35,21 @@ module Command
34
35
  def execute(argv)
35
36
  super
36
37
  update_target_list = argv.dup
38
+ no_open = false
37
39
  if update_target_list.empty?
38
40
  Database.instance.each do |id, _|
39
41
  update_target_list << id
40
42
  end
43
+ no_open = true
41
44
  end
42
45
  update_target_list.each_with_index do |target, i|
43
46
  display_message = nil
44
47
  data = Downloader.get_data_by_target(target)
45
- title = data["title"]
46
48
  if !data
47
- display_message = "#{target} は存在しません"
49
+ display_message = "#{target} は管理小説の中に存在しません"
48
50
  elsif Narou.novel_frozen?(target)
49
51
  if argv.length > 0
50
- display_message = "#{title} は凍結中です"
52
+ display_message = "#{data["title"]} は凍結中です"
51
53
  else
52
54
  next
53
55
  end
@@ -60,10 +62,10 @@ module Command
60
62
  is_updated = Downloader.start(target)
61
63
  if is_updated
62
64
  unless @options["no-convert"]
63
- Convert.execute_and_rescue_exit([target])
65
+ Convert.execute_and_rescue_exit([target, (no_open ? "--no-open" : "")])
64
66
  end
65
67
  else
66
- puts "#{title} に更新はありません"
68
+ puts "#{data["title"]} に更新はありません"
67
69
  end
68
70
  end
69
71
  rescue Interrupt