narou 1.5.5.1 → 1.5.6
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 +14 -0
- data/README.md +15 -1
- data/lib/command.rb +1 -2
- data/lib/command/flag.rb +67 -0
- data/lib/command/list.rb +3 -1
- data/lib/converterbase.rb +9 -0
- data/lib/device.rb +6 -4
- data/lib/downloader.rb +0 -1
- data/lib/narou.rb +2 -1
- data/lib/novelconverter.rb +16 -0
- data/lib/novelsetting.rb +16 -1
- data/lib/version.rb +1 -1
- data/narou.gemspec +12 -2
- data/template/ibunko_novel.txt.erb +1 -1
- data/template/novel.txt.erb +1 -1
- metadata +15 -4
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: ef2aeefc024c45084bb4fd0a17518b1c89a1e296
|
4
|
+
data.tar.gz: ba120878f4b92456ea2e63d2e35d21c27c78aae3
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 8673a4a6635c68e05005ffec6f38361cbb2ece14358c17caa3e901b0a982184f64e1af2282d95c1f5ccfc20e652ef51a6f7cdda4e1c17b5d824ccfafbdd42648
|
7
|
+
data.tar.gz: 4cce8ff69f855c71da55bd091cf801c057deb3c18ed27a024fd8336fe414b8fba2bab3c7cce145512566bc3604c2abab62de3fe73aaf00c365757018049c3b00
|
data/ChangeLog.md
CHANGED
@@ -2,6 +2,20 @@
|
|
2
2
|
更新履歴 - ChangeLog
|
3
3
|
--------------------
|
4
4
|
|
5
|
+
2014/06/04 : **1.5.6**
|
6
|
+
* 追加機能もしくは仕様変更
|
7
|
+
- 小説のタイトルに更新日をつける機能を追加しました
|
8
|
+
+ `narou s force.enable_add_date_to_title=true` として設定して下さい(標準ではオフ)
|
9
|
+
+ 書式は `title_date_format` 、位置は `title_date_align` で指定出来ます(詳細は setting.ini 参照)
|
10
|
+
- `flag` コマンドを追加しました
|
11
|
+
+ `narou flag end 10` と指定出来ます
|
12
|
+
+ 現在は end(完結フラグ)のみ指定できます。`list` コマンド及び、小説タイトルに (完結) と表示されるようになります
|
13
|
+
- 小説の管理フォルダ(narou initしたところ)に `device` フォルダをつくることで、 `send` コマンド用の設定ファイルを
|
14
|
+
独自に用意出来るようになりました。
|
15
|
+
+ 設定ファイルは https://github.com/whiteleaf7/narou/tree/master/lib/device を参考に作成して下さい。
|
16
|
+
* Bug Fix
|
17
|
+
- !?の一文字表記(0x2049)等でゴミが出てしまう問題を修正
|
18
|
+
|
5
19
|
2014/05/15 : **1.5.5.1**
|
6
20
|
* Bug Fix
|
7
21
|
- 暁の小説で一部正常にDLできないものがあったので修正
|
data/README.md
CHANGED
@@ -11,7 +11,7 @@ Narou.rb ― 「小説家になろう」「小説を読もう!」ダウンロ
|
|
11
11
|
[ノクターンノベルズ](http://noc.syosetu.com/)及び[ムーンライトノベルズ](http://mnlt.syosetu.com/)にも対応しています。
|
12
12
|
|
13
13
|
**NEW!!**
|
14
|
-
[ハーメルン](http://syosetu.org/)、[Arcadia](http://www.mai-net.net/)
|
14
|
+
[ハーメルン](http://syosetu.org/)、[Arcadia](http://www.mai-net.net/)(理想郷)、[暁](http://www.akatsuki-novels.com/)にも対応しました!
|
15
15
|
|
16
16
|
全てコンソールで操作するCUIアプリケーションです。
|
17
17
|
|
@@ -24,6 +24,20 @@ Narou.rb ― 「小説家になろう」「小説を読もう!」ダウンロ
|
|
24
24
|
更新履歴 - ChangeLog
|
25
25
|
--------------------
|
26
26
|
|
27
|
+
2014/06/04 : **1.5.6**
|
28
|
+
* 追加機能もしくは仕様変更
|
29
|
+
- 小説のタイトルに更新日をつける機能を追加しました
|
30
|
+
+ `narou s force.enable_add_date_to_title=true` として設定して下さい(標準ではオフ)
|
31
|
+
+ 書式は `title_date_format` 、位置は `title_date_align` で指定出来ます(詳細は setting.ini 参照)
|
32
|
+
- `flag` コマンドを追加しました
|
33
|
+
+ `narou flag end 10` と指定出来ます
|
34
|
+
+ 現在は end(完結フラグ)のみ指定できます。`list` コマンド及び、小説タイトルに (完結) と表示されるようになります
|
35
|
+
- 小説の管理フォルダ(narou initしたところ)に `device` フォルダをつくることで、 `send` コマンド用の設定ファイルを
|
36
|
+
独自に用意出来るようになりました。
|
37
|
+
+ 設定ファイルは https://github.com/whiteleaf7/narou/tree/master/lib/device を参考に作成して下さい。
|
38
|
+
* Bug Fix
|
39
|
+
- !?の一文字表記(0x2049)等でゴミが出てしまう問題を修正
|
40
|
+
|
27
41
|
2014/05/15 : **1.5.5.1**
|
28
42
|
* Bug Fix
|
29
43
|
- 暁の小説で一部正常にDLできないものがあったので修正
|
data/lib/command.rb
CHANGED
@@ -31,11 +31,10 @@ module Command
|
|
31
31
|
"browser" => Browser.new,
|
32
32
|
"remove" => Remove.new,
|
33
33
|
"freeze" => Freeze.new,
|
34
|
+
"flag" => Flag.new,
|
34
35
|
"mail" => Mail.new,
|
35
36
|
"help" => Help.new,
|
36
37
|
"version" => Version.new,
|
37
|
-
#"new" => New.new,
|
38
|
-
#"interactive" => Interactive.new,
|
39
38
|
"init" => Init.new
|
40
39
|
}
|
41
40
|
|
data/lib/command/flag.rb
ADDED
@@ -0,0 +1,67 @@
|
|
1
|
+
# -*- coding: utf-8 -*-
|
2
|
+
#
|
3
|
+
# Copyright 2013 whiteleaf. All rights reserved.
|
4
|
+
#
|
5
|
+
|
6
|
+
require_relative "../database"
|
7
|
+
require_relative "../downloader"
|
8
|
+
require_relative "../localsetting"
|
9
|
+
|
10
|
+
module Command
|
11
|
+
class Flag < CommandBase
|
12
|
+
ATTRIBUTES = %w(end)
|
13
|
+
|
14
|
+
def oneline_help
|
15
|
+
"小説の各種フラグを設定します"
|
16
|
+
end
|
17
|
+
|
18
|
+
def initialize
|
19
|
+
super("<attribute> <target> [<target2> ...]")
|
20
|
+
@opt.separator <<-EOS
|
21
|
+
|
22
|
+
・指定した小説に各種フラグを設定します
|
23
|
+
・再実行で解除
|
24
|
+
・現在指定可能なフラグ
|
25
|
+
end : 小説が完結状態かどうか
|
26
|
+
|
27
|
+
Example:
|
28
|
+
narou flag end 100 # ID:100の小説を完結状態にする
|
29
|
+
EOS
|
30
|
+
end
|
31
|
+
|
32
|
+
def execute(argv)
|
33
|
+
super
|
34
|
+
if argv.empty?
|
35
|
+
puts @opt.help
|
36
|
+
return
|
37
|
+
end
|
38
|
+
attribute = (argv.shift || "").downcase
|
39
|
+
unless ATTRIBUTES.include?(attribute)
|
40
|
+
error "有効なフラグを指定して下さい\n指定可能なフラグ:#{ATTRIBUTES.join(', ')}"
|
41
|
+
exit 1
|
42
|
+
end
|
43
|
+
if argv.length < 1
|
44
|
+
error "対象小説を指定して下さい"
|
45
|
+
exit 1
|
46
|
+
end
|
47
|
+
database = Database.instance
|
48
|
+
argv.each do |target|
|
49
|
+
data = Downloader.get_data_by_target(target)
|
50
|
+
unless data
|
51
|
+
error "#{target} は存在しません"
|
52
|
+
next
|
53
|
+
end
|
54
|
+
flags = data["flags"] || {}
|
55
|
+
if flags.include?(attribute)
|
56
|
+
flags.delete(attribute)
|
57
|
+
puts "#{data['title']} から #{attribute} フラグを削除しました"
|
58
|
+
else
|
59
|
+
flags[attribute] = true
|
60
|
+
puts "#{data['title']} の #{attribute} フラグを設定しました"
|
61
|
+
end
|
62
|
+
database[data["id"]]["flags"] = flags
|
63
|
+
end
|
64
|
+
database.save_database
|
65
|
+
end
|
66
|
+
end
|
67
|
+
end
|
data/lib/command/list.rb
CHANGED
@@ -68,6 +68,7 @@ module Command
|
|
68
68
|
frozen = Narou.novel_frozen?(id)
|
69
69
|
disp_id = ((frozen ? "*" : "") + id.to_s).rjust(4)
|
70
70
|
disp_id = disp_id.sub("*", "<cyan>*</cyan>").termcolor if frozen
|
71
|
+
flags = novel["flags"] || {}
|
71
72
|
puts [
|
72
73
|
disp_id,
|
73
74
|
novel["last_update"].strftime("%y/%m/%d").tap { |s|
|
@@ -82,7 +83,8 @@ module Command
|
|
82
83
|
@options["type"] ? NOVEL_TYPE_LABEL[novel_type] : nil,
|
83
84
|
novel["title"] + (!@options["type"] && novel_type == 2 ?
|
84
85
|
" <gray>(#{NOVEL_TYPE_LABEL[novel_type]})</gray>".termcolor :
|
85
|
-
"")
|
86
|
+
"") +
|
87
|
+
(flags["end"] ? " <gray>(完結)</gray>".termcolor : ""),
|
86
88
|
@options["url"] ? novel["toc_url"] : nil
|
87
89
|
].compact.join(" | ")
|
88
90
|
end
|
data/lib/converterbase.rb
CHANGED
@@ -997,6 +997,14 @@ class ConverterBase
|
|
997
997
|
end
|
998
998
|
end
|
999
999
|
|
1000
|
+
#
|
1001
|
+
# 表示上化けてしまうゴミ削除
|
1002
|
+
#
|
1003
|
+
def delete_dust_char(data)
|
1004
|
+
data.gsub!("︎", "")
|
1005
|
+
data.gsub!("︎", "")
|
1006
|
+
end
|
1007
|
+
|
1000
1008
|
#
|
1001
1009
|
# 小説データ全体に対して施す変換
|
1002
1010
|
#
|
@@ -1125,6 +1133,7 @@ class ConverterBase
|
|
1125
1133
|
convert_horizontal_ellipsis(data)
|
1126
1134
|
# ルビ化されなくて残ったギュメを二重山括弧(の外字)に変換
|
1127
1135
|
convert_double_angle_quotation_to_gaiji(data)
|
1136
|
+
delete_dust_char(data)
|
1128
1137
|
data.strip!
|
1129
1138
|
progressbar.clear if @text_type == "textfile"
|
1130
1139
|
@write_fp
|
data/lib/device.rb
CHANGED
@@ -25,10 +25,12 @@ class Device
|
|
25
25
|
attr_reader :name, :ebook_file_ext, :display_name
|
26
26
|
|
27
27
|
DEVICES = {}.tap do |h|
|
28
|
-
|
29
|
-
|
30
|
-
|
31
|
-
|
28
|
+
[File.dirname(__FILE__), Narou.get_root_dir].each do |dir|
|
29
|
+
Dir.glob(File.join(dir, "device", "*.rb")).each do |path|
|
30
|
+
eval(File.read(path, encoding: Encoding::UTF_8))
|
31
|
+
name = File.basename(path, ".rb")
|
32
|
+
h[name] = eval(name.capitalize)
|
33
|
+
end
|
32
34
|
end
|
33
35
|
end
|
34
36
|
|
data/lib/downloader.rb
CHANGED
data/lib/narou.rb
CHANGED
@@ -7,7 +7,6 @@ require "fileutils"
|
|
7
7
|
require_relative "helper"
|
8
8
|
require_relative "localsetting"
|
9
9
|
require_relative "globalsetting"
|
10
|
-
require_relative "device"
|
11
10
|
|
12
11
|
module Narou
|
13
12
|
extend self
|
@@ -147,6 +146,8 @@ module Narou
|
|
147
146
|
File.join(dir, create_novel_filename(data, ext))
|
148
147
|
end
|
149
148
|
|
149
|
+
require_relative "device"
|
150
|
+
|
150
151
|
def get_device(device_name = nil)
|
151
152
|
device_name = LocalSetting.get["local_setting"]["device"] unless device_name
|
152
153
|
if device_name && Device.exists?(device_name)
|
data/lib/novelconverter.rb
CHANGED
@@ -246,6 +246,22 @@ class NovelConverter
|
|
246
246
|
cover_chuki = @cover_chuki
|
247
247
|
device = Narou.get_device
|
248
248
|
setting = @setting
|
249
|
+
processed_title = toc["title"]
|
250
|
+
data = Database.instance.get_data("id", @novel_id)
|
251
|
+
# タイトルに更新日を付加する
|
252
|
+
if @setting.enable_add_date_to_title
|
253
|
+
date_str = data["last_update"].strftime(@setting.title_date_format)
|
254
|
+
if @setting.title_date_align == "left"
|
255
|
+
processed_title = date_str + processed_title
|
256
|
+
else # right
|
257
|
+
processed_title += date_str
|
258
|
+
end
|
259
|
+
end
|
260
|
+
# タイトルに完結したかどうかを付加する
|
261
|
+
flags = data["flags"] || {}
|
262
|
+
if flags["end"]
|
263
|
+
processed_title += " (完結)"
|
264
|
+
end
|
249
265
|
# タイトルがルビ化されてしまうのを抑制
|
250
266
|
toc["title"] = toc["title"].gsub("《", "※[#始め二重山括弧]").gsub("》", "※[#終わり二重山括弧]")
|
251
267
|
tempalte_name = (device && device.ibunko? ? NOVEL_TEXT_TEMPLATE_NAME_FOR_IBUNKO : NOVEL_TEXT_TEMPLATE_NAME)
|
data/lib/novelsetting.rb
CHANGED
@@ -199,7 +199,7 @@ class NovelSetting
|
|
199
199
|
{
|
200
200
|
name: "date_format",
|
201
201
|
value: "%Y年%m月%d日",
|
202
|
-
help: "書式は http://
|
202
|
+
help: "書式は http://bit.ly/1m5e3w7 を参考"
|
203
203
|
},
|
204
204
|
{
|
205
205
|
name: "enable_convert_horizontal_ellipsis",
|
@@ -226,5 +226,20 @@ class NovelSetting
|
|
226
226
|
value: true,
|
227
227
|
help: "小説の最後に本を読み終わった表示をするかどうか"
|
228
228
|
},
|
229
|
+
{
|
230
|
+
name: "enable_add_date_to_title",
|
231
|
+
value: false,
|
232
|
+
help: "変換後の小説のタイトルに更新日の日付を付加するかどうか"
|
233
|
+
},
|
234
|
+
{
|
235
|
+
name: "title_date_format",
|
236
|
+
value: " (%-m/%-d)",
|
237
|
+
help: "enable_add_date_to_title で付与する日付のフォーマット。書式は http://bit.ly/1m5e3w7 を参照"
|
238
|
+
},
|
239
|
+
{
|
240
|
+
name: "title_date_align",
|
241
|
+
value: "right",
|
242
|
+
help: "enable_add_date_to_title で付与する日付の位置。left か right"
|
243
|
+
},
|
229
244
|
]
|
230
245
|
end
|
data/lib/version.rb
CHANGED
data/narou.gemspec
CHANGED
@@ -52,9 +52,19 @@ narou コマンドのインストール or アップデートが完了しまし
|
|
52
52
|
* Bug Fix
|
53
53
|
- タイトルに " が含まれている場合に正常に変換できない問題を修正
|
54
54
|
|
55
|
-
2014/
|
55
|
+
2014/06/04 : **1.5.6**
|
56
|
+
* 追加機能もしくは仕様変更
|
57
|
+
- 小説のタイトルに更新日をつける機能を追加しました
|
58
|
+
+ `narou s force.enable_add_date_to_title=true` として設定して下さい(標準ではオフ)
|
59
|
+
+ 書式は `title_date_format` 、位置は `title_date_align` で指定出来ます(詳細は setting.ini 参照)
|
60
|
+
- `flag` コマンドを追加しました
|
61
|
+
+ `narou flag end 10` と指定出来ます
|
62
|
+
+ 現在は end(完結フラグ)のみ指定できます。`list` コマンド及び、小説タイトルに (完結) と表示されるようになります
|
63
|
+
- 小説の管理フォルダ(narou initしたところ)に `device` フォルダをつくることで、 `send` コマンド用の設定ファイルを
|
64
|
+
独自に用意出来るようになりました。
|
65
|
+
+ 設定ファイルは https://github.com/whiteleaf7/narou/tree/master/lib/device を参考に作成して下さい。
|
56
66
|
* Bug Fix
|
57
|
-
-
|
67
|
+
- !?の一文字表記(0x2049)等でゴミが出てしまう問題を修正
|
58
68
|
|
59
69
|
#{"*" * 79}
|
60
70
|
EOS
|
data/template/novel.txt.erb
CHANGED
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.6
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- whiteleaf7
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2014-
|
11
|
+
date: 2014-06-04 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: termcolor
|
@@ -88,6 +88,7 @@ files:
|
|
88
88
|
- lib/command/convert.rb
|
89
89
|
- lib/command/diff.rb
|
90
90
|
- lib/command/download.rb
|
91
|
+
- lib/command/flag.rb
|
91
92
|
- lib/command/folder.rb
|
92
93
|
- lib/command/freeze.rb
|
93
94
|
- lib/command/help.rb
|
@@ -196,9 +197,19 @@ post_install_message: |
|
|
196
197
|
* Bug Fix
|
197
198
|
- タイトルに " が含まれている場合に正常に変換できない問題を修正
|
198
199
|
|
199
|
-
2014/
|
200
|
+
2014/06/04 : **1.5.6**
|
201
|
+
* 追加機能もしくは仕様変更
|
202
|
+
- 小説のタイトルに更新日をつける機能を追加しました
|
203
|
+
+ `narou s force.enable_add_date_to_title=true` として設定して下さい(標準ではオフ)
|
204
|
+
+ 書式は `title_date_format` 、位置は `title_date_align` で指定出来ます(詳細は setting.ini 参照)
|
205
|
+
- `flag` コマンドを追加しました
|
206
|
+
+ `narou flag end 10` と指定出来ます
|
207
|
+
+ 現在は end(完結フラグ)のみ指定できます。`list` コマンド及び、小説タイトルに (完結) と表示されるようになります
|
208
|
+
- 小説の管理フォルダ(narou initしたところ)に `device` フォルダをつくることで、 `send` コマンド用の設定ファイルを
|
209
|
+
独自に用意出来るようになりました。
|
210
|
+
+ 設定ファイルは https://github.com/whiteleaf7/narou/tree/master/lib/device を参考に作成して下さい。
|
200
211
|
* Bug Fix
|
201
|
-
-
|
212
|
+
- !?の一文字表記(0x2049)等でゴミが出てしまう問題を修正
|
202
213
|
|
203
214
|
*******************************************************************************
|
204
215
|
rdoc_options: []
|