narou 1.4.5 → 1.4.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: e702c9dd18f52bcbcacf4ec486048696d02cd796
4
- data.tar.gz: 8922b4f892406b4d68f8e5a4ced9ac1c93f4a6da
3
+ metadata.gz: 2d079914379ec269516a611594fe4cebaadcea73
4
+ data.tar.gz: de5f4483ab9aadf522695ad3380a763611d3668a
5
5
  SHA512:
6
- metadata.gz: 2d55aef4c814907388bc57b7d8e211df13e274de7de08112a411115b477fe595e29fe5e471ea29d237c2508d4f4e0c2107a45c112204c715a597906bf219e0cf
7
- data.tar.gz: 814eed698f18cfe5f5fc79dc4919fc8ccc6441f8f2ec781afa5f2592e6c7388f6efaab8c9c82a56dd1abf8f55fe40d0a12c94a9a884693ca7e9ac05151b833dc
6
+ metadata.gz: 3239e1395b68e9f02b081900161b5043bb8add531dbf6a29e7c0db9b14aa741cf0ffb6f436b2e331446ac7e80ea917f5a0e86c0c5e37b527d7aa4592ddb9a21b
7
+ data.tar.gz: 4e461284c9a64d97c94df6b793114faa33585d2f3ed52b2a01bfe50109ce85acddd84059cb5e3ff8cb51ba9976a1100767ead44aa250fe973dca338cd2ffe45e
data/ChangeLog.md CHANGED
@@ -2,6 +2,12 @@
2
2
  更新履歴 - ChangeLog
3
3
  --------------------
4
4
 
5
+ 2014/02/28 : **1.4.6**
6
+ * 追加機能もしくは仕様変更
7
+ - `narou diff` コマンドに(凍結済を除く)全ての小説の差分データを削除する `--all-clean` オプションが追加されました
8
+ * Bug Fix
9
+ - 傍点化の処理が特殊な状況下で Index Error を吐いて止まっていた問題を修正
10
+
5
11
  2014/02/27 : **1.4.5**
6
12
  * 追加機能もしくは仕様変更
7
13
  - `narou send` コマンドに凍結済み小説は送信しない `--without-freeze` オプションが追加されました
data/README.md CHANGED
@@ -21,6 +21,12 @@ Narou.rb ― 「小説家になろう」「小説を読もう!」ダウンロ
21
21
  更新履歴 - ChangeLog
22
22
  --------------------
23
23
 
24
+ 2014/02/28 : **1.4.6**
25
+ * 追加機能もしくは仕様変更
26
+ - `narou diff` コマンドに(凍結済を除く)全ての小説の差分データを削除する `--all-clean` オプションが追加されました
27
+ * Bug Fix
28
+ - 傍点化の処理が特殊な状況下で Index Error を吐いて止まっていた問題を修正
29
+
24
30
  2014/02/27 : **1.4.5**
25
31
  * 追加機能もしくは仕様変更
26
32
  - `narou send` コマンドに凍結済み小説は送信しない `--without-freeze` オプションが追加されました
data/lib/command/diff.rb CHANGED
@@ -44,15 +44,18 @@ module Command
44
44
  EOS
45
45
 
46
46
  @options["number"] = 1
47
- @opt.on("-n NUM", "--number", "比較する差分を遡って指定する。最新のアップデートと直前のデータを比較するなら-n 1、2個前のアップデートなら-n 2。(デフォルトは-n 1)", Integer) do |number|
47
+ @opt.on("-n NUM", "--number", "比較する差分を遡って指定する。最新のアップデートと直前のデータを比較するなら-n 1、2個前のアップデートなら-n 2。(デフォルトは-n 1)", Integer) { |number|
48
48
  @options["number"] = number if number > 1
49
- end
49
+ }
50
50
  @opt.on("-l", "--list", "指定した小説の差分一覧を表示する") {
51
51
  @options["list"] = true
52
52
  }
53
53
  @opt.on("-c", "--clean", "指定した小説の差分データを全て削除する") {
54
54
  @options["clean"] = true
55
55
  }
56
+ @opt.on("--all-clean", "凍結済を除く全小説の差分データを削除する") {
57
+ @options["all-clean"] = true
58
+ }
56
59
  end
57
60
 
58
61
  # 引数の中の -数字 オプション(-n 数字の省略形)を -n 数字 に変換する
@@ -97,6 +100,10 @@ module Command
97
100
  clean_diff(id)
98
101
  return
99
102
  end
103
+ if @options["all-clean"]
104
+ clean_all_diff
105
+ return
106
+ end
100
107
  @difftool = GlobalSetting.get["global_setting"]["difftool"]
101
108
  unless @difftool
102
109
  error "difftool が設定されていません。narou setting で difftool を設定して下さい"
@@ -228,5 +235,15 @@ module Command
228
235
  end
229
236
  end
230
237
  end
238
+
239
+ def clean_all_diff
240
+ Database.instance.each do |id, data|
241
+ next if Narou.novel_frozen?(id)
242
+ cache_root_dir = Downloader.get_cache_root_dir(id)
243
+ next unless File.exists?(cache_root_dir)
244
+ FileUtils.remove_entry_secure(cache_root_dir)
245
+ puts "#{data["title"]} の差分を削除しました"
246
+ end
247
+ end
231
248
  end
232
249
  end
data/lib/converterbase.rb CHANGED
@@ -1,4 +1,4 @@
1
- # -*- coding: utf-8 -*-
1
+ # -*- coding: utf-8 -*-
2
2
  #
3
3
  # Copyright 2013 whiteleaf. All rights reserved.
4
4
  #
@@ -796,11 +796,22 @@ class ConverterBase
796
796
  char =~ /[#{CHARACTER_OF_RUBY}]/
797
797
  end
798
798
 
799
+ def is_sesame?(str, ten, last_char)
800
+ ten =~ /^[・、]+$/ && (str.include?("|") || object_of_ruby?(last_char))
801
+ end
802
+
799
803
  def sesame(str, ten)
800
804
  if str.include?("|")
801
805
  str.sub("|", "[#傍点]") + "[#傍点終わり]"
802
806
  else
803
- str.insert(-(ten.length + 1), "[#傍点]") + "[#傍点終わり]"
807
+ str.sub(/([#{CHARACTER_OF_RUBY} ]+)$/) {
808
+ match_target = $1
809
+ if match_target =~ /^( +)/
810
+ "#{$1}[#傍点]#{match_target[$1.length..-1]}"
811
+ else
812
+ "[#傍点]#{match_target}"
813
+ end
814
+ } + "[#傍点終わり]"
804
815
  end
805
816
  end
806
817
 
@@ -814,14 +825,13 @@ class ConverterBase
814
825
  when last_char == "|"
815
826
  # 直前に|がある場合ルビ化は抑制される
816
827
  "#{m1[0...-1]}#{openclose_symbols[0]}#{m2}#{openclose_symbols[1]}"
817
- when m2 =~ /^・+$/
818
- # ルビが・だけの場合、傍点と判断
828
+ when is_sesame?(m1, m2, last_char)
819
829
  sesame(m1, m2)
820
830
  when m1.include?("|")
821
831
  "#{m1.sub(/|([^|]*)$/, "[#ルビ用縦線]\\1")}《#{m2}》"
822
832
  when object_of_ruby?(last_char)
823
833
  # なろうのルビ対象文字を辿って|を挿入する(青空文庫となろうのルビ仕様の差異吸収のため)
824
- m1.gsub(/([#{CHARACTER_OF_RUBY} ]+)$/) {
834
+ m1.sub(/([#{CHARACTER_OF_RUBY} ]+)$/) {
825
835
  match_target = $1
826
836
  if match_target =~ /^( +)/
827
837
  "#{$1}[#ルビ用縦線]#{match_target[$1.length..-1]}"
@@ -885,7 +895,7 @@ class ConverterBase
885
895
  # 中黒(・)や句読点を並べて三点リーダーもどきにしているのを三点リーダーに変換
886
896
  #
887
897
  def convert_horizontal_ellipsis(data)
888
- return if !@setting.enable_convert_horizontal_ellipsis || @text_type == "subtitle"
898
+ return if !@setting.enable_convert_horizontal_ellipsis || @text_type == "subtitle" || @text_type == "chapter"
889
899
  %w(・ 。 、).each do |char|
890
900
  data.gsub!(/#{char}{3,}/) do |match|
891
901
  pre_char, post_char = $`[-1], $'[0]
data/lib/sitesetting.rb CHANGED
@@ -53,12 +53,12 @@ class SiteSetting
53
53
 
54
54
  def replace_group_values(key, option_values = {})
55
55
  dest = option_values[key] || @match_values[key] || @yaml_setting[key]
56
- if dest.kind_of?(TrueClass) || dest.kind_of?(FalseClass)
56
+ begin
57
+ result = dest.dup
58
+ rescue TypeError
57
59
  return dest
58
60
  end
59
- return nil unless dest
60
61
  values = @yaml_setting.merge(@match_values).merge(option_values)
61
- result = dest.dup
62
62
  result.gsub!(/\\\\k<(.+?)>/) do |match|
63
63
  value = values[$1]
64
64
  if value
data/lib/version.rb CHANGED
@@ -3,7 +3,7 @@
3
3
  # Copyright 2013 whiteleaf. All rights reserved.
4
4
  #
5
5
 
6
- Version = "1.4.5"
6
+ Version = "1.4.6"
7
7
 
8
8
  cv_path = File.expand_path(File.join(File.dirname(__FILE__), "../commitversion"))
9
9
  if File.exists?(cv_path)
data/lib/watcher.rb ADDED
@@ -0,0 +1,61 @@
1
+ # -*- coding: utf-8 -*-
2
+ #
3
+ # Copyright 2014 whiteleaf. All rights reserved.
4
+ #
5
+
6
+ module Watcher
7
+ extend self
8
+
9
+ @@counter = {}
10
+
11
+ def included(klass)
12
+ return if @@counter[klass]
13
+ @@counter[klass] = {}
14
+ mod = Module.new
15
+ klass.class_eval do
16
+ alias_method(:org_initialize, :initialize)
17
+ define_method(:initialize) do |*init_argv, &init_b|
18
+ self.methods.each do |name|
19
+ next if Object.methods.include?(name) || name =~ /^__.+?__$/ || name == :included
20
+ @@counter[klass][name] = 0
21
+ mod.__send__(:define_method, name) do |*argv, &b|
22
+ @@counter[klass][name] += 1
23
+ super(*argv, &b)
24
+ end
25
+ end
26
+ self.extend mod
27
+ org_initialize(*init_argv, &init_b)
28
+ end
29
+ end
30
+ end
31
+
32
+ def __display_report__
33
+ puts
34
+ puts "=================="
35
+ puts " Watcher Report"
36
+ puts "=================="
37
+ @@counter.each do |klass, data|
38
+ next if data.count == 0
39
+ puts "class #{klass}"
40
+ data.select { |_, c| c > 0 }.each do |name, count|
41
+ puts "#{name.to_s.rjust(30)} = #{count}"
42
+ end
43
+ not_call_methods = data.select { |_, c| c == 0 }.keys
44
+ if not_call_methods.count > 0
45
+ puts "* not call methods *"
46
+ puts not_call_methods.join(", ")
47
+ end
48
+ puts
49
+ end
50
+ end
51
+
52
+ def __regist__(*klasses)
53
+ klasses.each do |klass|
54
+ klass.__send__(:include, self)
55
+ end
56
+ end
57
+ end
58
+
59
+ at_exit do
60
+ Watcher.__display_report__
61
+ end
data/narou.gemspec CHANGED
@@ -46,17 +46,11 @@ narou コマンドのインストール or アップデートが完了しまし
46
46
  初めてこのアプリケーションを使う場合、小説管理用のフォルダを初期化する必要があります。
47
47
  任意のフォルダで `narou init' を実行して下さい。
48
48
 
49
- 2014/02/27 : **1.4.5**
49
+ 2014/02/28 : **1.4.6**
50
50
  * 追加機能もしくは仕様変更
51
- - `narou send` コマンドに凍結済み小説は送信しない `--without-freeze` オプションが追加されました
52
- + 送信小説を個別に指定した場合は無視されます
53
- + `narou s send.without-freeze=true` と設定することで、オプションを毎回打たなくても有効になります
51
+ - `narou diff` コマンドに(凍結済を除く)全ての小説の差分データを削除する `--all-clean` オプションが追加されました
54
52
  * Bug Fix
55
- - 検索除外されている小説が全て短編小説と認識されてしまう問題を修正
56
- - WinMerge2.14で `narou diff` コマンドが使えなかった問題を修正
57
- - Ruby1.9.3で動かなくなっていたのを修正
58
- - issues #35 行頭に三点リーダーの代わりに連続中黒(・・・)が来た時自動字下げがされていなかったのを修正
59
- - 連続で小説をダウンロードする時に 503 エラーがでてしまう場合がある問題を修正
53
+ - 傍点化の処理が特殊な状況下で Index Error を吐いて止まっていた問題を修正
60
54
 
61
55
  #{"*" * 79}
62
56
  EOS
data/narou.rb CHANGED
@@ -7,6 +7,7 @@
7
7
  #
8
8
 
9
9
  $debug = File.exists?(File.join(File.expand_path(File.dirname($0)), "debug"))
10
+ watch = File.exists?(File.join(File.expand_path(File.dirname($0)), "watch"))
10
11
  Encoding.default_external = Encoding::UTF_8
11
12
 
12
13
  require_relative "lib/globalsetting"
@@ -22,6 +23,13 @@ require_relative "lib/commandline"
22
23
 
23
24
  rescue_level = $debug ? Exception : StandardError
24
25
 
26
+ if watch
27
+ require_relative "lib/watcher"
28
+ Watcher.__regist__ Helper, LocalSetting, Device, WinAPI, Narou, GlobalSetting, Command,
29
+ Database, SiteSetting, Template, Downloader, Ini, NovelSetting, Inspector,
30
+ Illustration, ProgressBar, ConverterBase, NovelConverter, CommandLine
31
+ end
32
+
25
33
  begin
26
34
  CommandLine.run(ARGV.map { |v| v.dup })
27
35
  rescue rescue_level => e
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.4.5
4
+ version: 1.4.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-02-27 00:00:00.000000000 Z
11
+ date: 2014-02-28 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: termcolor
@@ -117,6 +117,7 @@ files:
117
117
  - lib/sitesetting.rb
118
118
  - lib/template.rb
119
119
  - lib/version.rb
120
+ - lib/watcher.rb
120
121
  - narou.gemspec
121
122
  - narou.rb
122
123
  - preset/AozoraEpub3.ini
@@ -162,17 +163,11 @@ post_install_message: |
162
163
  初めてこのアプリケーションを使う場合、小説管理用のフォルダを初期化する必要があります。
163
164
  任意のフォルダで `narou init' を実行して下さい。
164
165
 
165
- 2014/02/27 : **1.4.5**
166
+ 2014/02/28 : **1.4.6**
166
167
  * 追加機能もしくは仕様変更
167
- - `narou send` コマンドに凍結済み小説は送信しない `--without-freeze` オプションが追加されました
168
- + 送信小説を個別に指定した場合は無視されます
169
- + `narou s send.without-freeze=true` と設定することで、オプションを毎回打たなくても有効になります
168
+ - `narou diff` コマンドに(凍結済を除く)全ての小説の差分データを削除する `--all-clean` オプションが追加されました
170
169
  * Bug Fix
171
- - 検索除外されている小説が全て短編小説と認識されてしまう問題を修正
172
- - WinMerge2.14で `narou diff` コマンドが使えなかった問題を修正
173
- - Ruby1.9.3で動かなくなっていたのを修正
174
- - issues #35 行頭に三点リーダーの代わりに連続中黒(・・・)が来た時自動字下げがされていなかったのを修正
175
- - 連続で小説をダウンロードする時に 503 エラーがでてしまう場合がある問題を修正
170
+ - 傍点化の処理が特殊な状況下で Index Error を吐いて止まっていた問題を修正
176
171
 
177
172
  *******************************************************************************
178
173
  rdoc_options: []