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 +4 -4
- data/ChangeLog.md +6 -0
- data/README.md +6 -0
- data/lib/command/diff.rb +19 -2
- data/lib/converterbase.rb +16 -6
- data/lib/sitesetting.rb +3 -3
- data/lib/version.rb +1 -1
- data/lib/watcher.rb +61 -0
- data/narou.gemspec +3 -9
- data/narou.rb +8 -0
- metadata +6 -11
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 2d079914379ec269516a611594fe4cebaadcea73
|
4
|
+
data.tar.gz: de5f4483ab9aadf522695ad3380a763611d3668a
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
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)
|
47
|
+
@opt.on("-n NUM", "--number", "比較する差分を遡って指定する。最新のアップデートと直前のデータを比較するなら-n 1、2個前のアップデートなら-n 2。(デフォルトは-n 1)", Integer) { |number|
|
48
48
|
@options["number"] = number if number > 1
|
49
|
-
|
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.
|
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.
|
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
|
-
|
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
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/
|
49
|
+
2014/02/28 : **1.4.6**
|
50
50
|
* 追加機能もしくは仕様変更
|
51
|
-
- `narou
|
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.
|
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-
|
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/
|
166
|
+
2014/02/28 : **1.4.6**
|
166
167
|
* 追加機能もしくは仕様変更
|
167
|
-
- `narou
|
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: []
|