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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 11847f586ba963c8af17b2c7eae2c60ba683b8b6
4
- data.tar.gz: f22c78d4cb69332af11c2fc3ab3607b0a119e899
3
+ metadata.gz: ef2aeefc024c45084bb4fd0a17518b1c89a1e296
4
+ data.tar.gz: ba120878f4b92456ea2e63d2e35d21c27c78aae3
5
5
  SHA512:
6
- metadata.gz: 9e7d3cc4645334706e464ff7eb15f44a96d8b1bdd6a9ebb741746ce759d5eca7316dd69bf29d8c96c416e0ce3a529633d36bf5f9b2a305d31ff6a219008ea39a
7
- data.tar.gz: aab5e7cfa0728ef33b43138ef3484a06cc4ad1325d1b6e273c5f73716a02858d83da75b6a44f21f05690e9aaf146e6dcf9d46ef1c72c69a0a69b514e1b46979f
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
 
@@ -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
- Dir.glob(File.join(File.dirname(__FILE__), "device", "*.rb")).each do |name|
29
- name = File.basename(name, ".rb")
30
- require_relative "device/#{name}"
31
- h[name] = eval(name.capitalize)
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
@@ -425,7 +425,6 @@ class Downloader
425
425
  # データベース更新
426
426
  #
427
427
  def update_database
428
-
429
428
  data = {
430
429
  "id" => @id,
431
430
  "author" => @setting["author"],
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)
@@ -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://goo.gl/gvJ5u を参考"
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
@@ -3,7 +3,7 @@
3
3
  # Copyright 2013 whiteleaf. All rights reserved.
4
4
  #
5
5
 
6
- Version = "1.5.5.1"
6
+ Version = "1.5.6"
7
7
 
8
8
  cv_path = File.expand_path(File.join(File.dirname(__FILE__), "../commitversion"))
9
9
  if File.exists?(cv_path)
data/narou.gemspec CHANGED
@@ -52,9 +52,19 @@ narou コマンドのインストール or アップデートが完了しまし
52
52
  * Bug Fix
53
53
  - タイトルに " が含まれている場合に正常に変換できない問題を修正
54
54
 
55
- 2014/05/15 : **1.5.5.1**
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
- - 暁の小説で一部正常にDLできないものがあったので修正
67
+ - !?の一文字表記(0x2049)等でゴミが出てしまう問題を修正
58
68
 
59
69
  #{"*" * 79}
60
70
  EOS
@@ -1,6 +1,6 @@
1
1
  <%# -*- coding: utf-8 -*- -%>
2
2
  <% Template.target_binary_version(1.0) -%>
3
- <%= toc["title"] %>
3
+ <%= processed_title %>
4
4
  <%= toc["author"] %>
5
5
  <%= cover_chuki %>
6
6
  ――――――――――――――――――――――――
@@ -1,6 +1,6 @@
1
1
  <%# -*- coding: utf-8 -*- -%>
2
2
  <% Template.target_binary_version(1.0) -%>
3
- <%= toc["title"] %>
3
+ <%= processed_title %>
4
4
  <%= toc["author"] %>
5
5
  <%= cover_chuki %>
6
6
  [#区切り線]
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.5.1
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-05-19 00:00:00.000000000 Z
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/05/15 : **1.5.5.1**
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
- - 暁の小説で一部正常にDLできないものがあったので修正
212
+ - !?の一文字表記(0x2049)等でゴミが出てしまう問題を修正
202
213
 
203
214
  *******************************************************************************
204
215
  rdoc_options: []