narou 3.0.2 → 3.0.3
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 +11 -0
- data/README.md +11 -0
- data/lib/command/update/general_lastup_updater.rb +10 -26
- data/lib/downloader.rb +10 -6
- data/lib/helper.rb +6 -1
- data/lib/novelinfo.rb +0 -2
- data/lib/version.rb +1 -1
- data/narou.gemspec +11 -0
- data/webnovel/https.syosetu.org.yaml +2 -2
- data/webnovel/kakuyomu.jp.yaml +6 -8
- data/webnovel/syosetu.org.yaml +2 -2
- metadata +13 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: b72005dc3f53a757cf0baa8bcfb3eb71cb039079
|
4
|
+
data.tar.gz: c8a87140d7333724f722754575e3e627288c7fcf
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 874775767768e313e6b971548f2a23595fcb1e825def6b2d166683260a30224922bf1d1da87e769129263975d6c96036a171e1e6996d1f1b58d54fc428650f99
|
7
|
+
data.tar.gz: ac511f95ddf151c004f71248fc494f02a4db3ae3e5102e147007b8dbce717202cab80f642367f0d8bf466ee56825996850dfd383a23f1ca8103895c76857133e
|
data/ChangeLog.md
CHANGED
@@ -2,6 +2,17 @@
|
|
2
2
|
更新履歴 - ChangeLog
|
3
3
|
====================
|
4
4
|
|
5
|
+
3.0.3 : 2016/12/03
|
6
|
+
-------------------
|
7
|
+
#### 仕様変更
|
8
|
+
- カクヨムの小説の最新話掲載日が今までは「最終更新日」から取得していたのを、
|
9
|
+
目次の一番新しい話の日付を割り当てるように変更
|
10
|
+
|
11
|
+
#### 修正内容
|
12
|
+
- その他の小説の最新話掲載日を確認しようとするとクラッシュする場合がある問題
|
13
|
+
+ カクヨムの小説が含まれていると発生していた
|
14
|
+
|
15
|
+
|
5
16
|
3.0.2 : 2016/11/29
|
6
17
|
-------------------
|
7
18
|
#### 修正内容
|
data/README.md
CHANGED
@@ -33,6 +33,17 @@ Narou.rb ― 「小説家になろう」「小説を読もう!」ダウンロ
|
|
33
33
|
更新履歴 - ChangeLog
|
34
34
|
--------------------
|
35
35
|
|
36
|
+
3.0.3 : 2016/12/03
|
37
|
+
-------------------
|
38
|
+
#### 仕様変更
|
39
|
+
- カクヨムの小説の最新話掲載日が今までは「最終更新日」から取得していたのを、
|
40
|
+
目次の一番新しい話の日付を割り当てるように変更
|
41
|
+
|
42
|
+
#### 修正内容
|
43
|
+
- その他の小説の最新話掲載日を確認しようとするとクラッシュする場合がある問題
|
44
|
+
+ カクヨムの小説が含まれていると発生していた
|
45
|
+
|
46
|
+
|
36
47
|
3.0.2 : 2016/11/29
|
37
48
|
-------------------
|
38
49
|
#### 修正内容
|
@@ -60,46 +60,30 @@ module Command
|
|
60
60
|
progressbar.output(index)
|
61
61
|
interval.wait
|
62
62
|
begin
|
63
|
-
|
64
|
-
|
65
|
-
dates =
|
66
|
-
|
67
|
-
|
68
|
-
|
69
|
-
}
|
70
|
-
else
|
71
|
-
# 小説情報ページがない場合は目次から取得する
|
72
|
-
get_latest_dates(id)
|
73
|
-
end
|
63
|
+
downloader = Downloader.new(id)
|
64
|
+
next unless downloader.get_latest_table_of_contents(through_error: true)
|
65
|
+
dates = {
|
66
|
+
"novelupdated_at" => downloader.get_novelupdated_at,
|
67
|
+
"general_lastup" => downloader.get_general_lastup
|
68
|
+
}
|
74
69
|
rescue OpenURI::HTTPError, Errno::ECONNRESET
|
75
|
-
setting.clear
|
70
|
+
downloader.setting.clear
|
76
71
|
next
|
77
72
|
end
|
78
73
|
data = @database[id]
|
79
74
|
data.merge!(dates)
|
80
75
|
last_check_date = data["last_check_date"] || data["last_update"]
|
81
|
-
|
76
|
+
novelupdated_at = data["novelupdated_at"]
|
77
|
+
if novelupdated_at && novelupdated_at > last_check_date
|
82
78
|
tags = @database[id]["tags"] ||= []
|
83
79
|
tags << Narou::MODIFIED_TAG unless tags.include?(Narou::MODIFIED_TAG)
|
84
80
|
end
|
85
81
|
data["last_check_date"] = Time.now
|
86
|
-
setting.clear
|
82
|
+
downloader.setting.clear
|
87
83
|
end
|
88
84
|
ensure
|
89
85
|
progressbar.clear if progressbar
|
90
86
|
end
|
91
|
-
|
92
|
-
# オンラインの目次からgeneral_lastupを取得する
|
93
|
-
# ただし、toc.yaml に最新話が存在し、かつsubdateが設定されていたらそれを使う
|
94
|
-
def get_latest_dates(target)
|
95
|
-
downloader = Downloader.new(target)
|
96
|
-
old_toc = downloader.load_toc_file
|
97
|
-
downloader.get_latest_table_of_contents(old_toc, through_error: true)
|
98
|
-
{
|
99
|
-
"novelupdated_at" => downloader.get_novelupdated_at,
|
100
|
-
"general_lastup" => downloader.get_general_lastup
|
101
|
-
}
|
102
|
-
end
|
103
87
|
end
|
104
88
|
end
|
105
89
|
end
|
data/lib/downloader.rb
CHANGED
@@ -35,7 +35,7 @@ class Downloader
|
|
35
35
|
DISPLAY_LIMIT_DIGITS = 4 # indexの表示桁数限界
|
36
36
|
DEFAULT_INTERVAL_WAIT = 0.7 # download.interval のデフォルト値(秒)
|
37
37
|
|
38
|
-
attr_reader :id
|
38
|
+
attr_reader :id, :setting
|
39
39
|
|
40
40
|
class InvalidTarget < StandardError; end
|
41
41
|
|
@@ -573,11 +573,15 @@ class Downloader
|
|
573
573
|
FileUtils.remove_entry_secure(@cache_dir, true) if @cache_dir
|
574
574
|
end
|
575
575
|
|
576
|
-
def __search_latest_update_time(key, subtitles)
|
576
|
+
def __search_latest_update_time(key, subtitles, subkey: nil)
|
577
577
|
latest = Time.new(0)
|
578
578
|
subtitles.each do |subtitle|
|
579
|
-
|
580
|
-
|
579
|
+
value = subtitle[key]
|
580
|
+
if value.to_s.empty? && subkey
|
581
|
+
value = subtitle[subkey]
|
582
|
+
end
|
583
|
+
time = Helper.date_string_to_time(value)
|
584
|
+
latest = time if time && latest < time
|
581
585
|
end
|
582
586
|
latest
|
583
587
|
end
|
@@ -590,7 +594,7 @@ class Downloader
|
|
590
594
|
if info["novelupdated_at"]
|
591
595
|
info["novelupdated_at"]
|
592
596
|
else
|
593
|
-
__search_latest_update_time("subupdate", @setting["subtitles"])
|
597
|
+
__search_latest_update_time("subupdate", @setting["subtitles"], subkey: "subdate")
|
594
598
|
end
|
595
599
|
end
|
596
600
|
|
@@ -966,7 +970,7 @@ class Downloader
|
|
966
970
|
"subtitle" => @setting["title"],
|
967
971
|
"file_subtitle" => title_to_filename(@setting["title"]),
|
968
972
|
"subdate" => info["general_firstup"],
|
969
|
-
"subupdate" => info["novelupdated_at"]
|
973
|
+
"subupdate" => info["novelupdated_at"] || info["general_lastup"] || info["general_firstup"]
|
970
974
|
}
|
971
975
|
[subtitle]
|
972
976
|
end
|
data/lib/helper.rb
CHANGED
@@ -289,7 +289,12 @@ module Helper
|
|
289
289
|
# 日付形式の文字列をTime型に変換する
|
290
290
|
#
|
291
291
|
def date_string_to_time(date)
|
292
|
-
|
292
|
+
case date
|
293
|
+
when Time
|
294
|
+
date
|
295
|
+
when String
|
296
|
+
Time.parse(date.sub(/[\((].+?[\))]/, "").tr("年月日時分秒@;", "///::: :"))
|
297
|
+
end
|
293
298
|
rescue ArgumentError
|
294
299
|
nil
|
295
300
|
end
|
data/lib/novelinfo.rb
CHANGED
@@ -73,8 +73,6 @@ class NovelInfo
|
|
73
73
|
%w(general_firstup novelupdated_at general_lastup).each do |elm|
|
74
74
|
result[elm] = Helper.date_string_to_time(@setting[elm])
|
75
75
|
end
|
76
|
-
result["novelupdated_at"] ||= result["general_firstup"]
|
77
|
-
result["general_lastup"] ||= result["novelupdated_at"]
|
78
76
|
|
79
77
|
result
|
80
78
|
end
|
data/lib/version.rb
CHANGED
data/narou.gemspec
CHANGED
@@ -32,6 +32,17 @@ Gem::Specification.new do |gem|
|
|
32
32
|
install_message = <<-EOS
|
33
33
|
#{"*" * 60}
|
34
34
|
|
35
|
+
3.0.3 : 2016/12/03
|
36
|
+
-------------------
|
37
|
+
#### 仕様変更
|
38
|
+
- カクヨムの小説の最新話掲載日が今までは「最終更新日」から取得していたのを、
|
39
|
+
目次の一番新しい話の日付を割り当てるように変更
|
40
|
+
|
41
|
+
#### 修正内容
|
42
|
+
- その他の小説の最新話掲載日を確認しようとするとクラッシュする場合がある問題
|
43
|
+
+ カクヨムの小説が含まれていると発生していた
|
44
|
+
|
45
|
+
|
35
46
|
3.0.2 : 2016/11/29
|
36
47
|
-------------------
|
37
48
|
#### 修正内容
|
@@ -58,8 +58,8 @@ s: "あらすじ</td><td colspan=3 bgcolor=#FFFFFF>(?<story>.+?)</td>"
|
|
58
58
|
# general_firstup 初回掲載日
|
59
59
|
gf: 掲載開始</td><td>(?<general_firstup>.+?)</td>
|
60
60
|
|
61
|
-
# novelupdated_at
|
62
|
-
nu:
|
61
|
+
# novelupdated_at 小説の更新時刻
|
62
|
+
nu: null
|
63
63
|
|
64
64
|
# general_lastup 最終掲載日
|
65
65
|
gl: 最新投稿</td><td>(?<general_lastup>.+?)</td>
|
data/webnovel/kakuyomu.jp.yaml
CHANGED
@@ -64,18 +64,16 @@ s: |-
|
|
64
64
|
|
65
65
|
# general_firstup 初回掲載日
|
66
66
|
gf: |-2
|
67
|
-
|
68
|
-
|
67
|
+
<dt><span>公開日</span></dt>
|
68
|
+
<dd><time itemprop="datePublished" datetime="(?<general_firstup>.+?)">.+?</time>
|
69
69
|
|
70
70
|
# novelupdated_at 小説の更新時刻。最終掲載日で代用
|
71
71
|
nu: |-2
|
72
|
-
|
73
|
-
|
72
|
+
<dt><span>最終更新日</span></dt>
|
73
|
+
<dd><time itemprop="dateModified" datetime="(?<novelupdated_at>.+?)">.+?</time>
|
74
74
|
|
75
|
-
# general_lastup
|
76
|
-
gl:
|
77
|
-
<dt><span>最終更新日</span></dt>
|
78
|
-
<dd><time itemprop="dateModified" datetime="(?<general_lastup>.+?)">.+?</time>
|
75
|
+
# general_lastup 最新話掲載日
|
76
|
+
gl: null
|
79
77
|
|
80
78
|
# writer 作者名
|
81
79
|
w: |-
|
data/webnovel/syosetu.org.yaml
CHANGED
@@ -58,8 +58,8 @@ s: "あらすじ</td><td colspan=3 bgcolor=#FFFFFF>(?<story>.+?)</td>"
|
|
58
58
|
# general_firstup 初回掲載日
|
59
59
|
gf: 掲載開始</td><td>(?<general_firstup>.+?)</td>
|
60
60
|
|
61
|
-
# novelupdated_at
|
62
|
-
nu:
|
61
|
+
# novelupdated_at 小説の更新時刻
|
62
|
+
nu: null
|
63
63
|
|
64
64
|
# general_lastup 最終掲載日
|
65
65
|
gl: 最新投稿</td><td>(?<general_lastup>.+?)</td>
|
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: 3.0.
|
4
|
+
version: 3.0.3
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- whiteleaf7
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2016-
|
11
|
+
date: 2016-12-03 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: termcolorlight
|
@@ -485,6 +485,17 @@ metadata: {}
|
|
485
485
|
post_install_message: |
|
486
486
|
************************************************************
|
487
487
|
|
488
|
+
3.0.3 : 2016/12/03
|
489
|
+
-------------------
|
490
|
+
#### 仕様変更
|
491
|
+
- カクヨムの小説の最新話掲載日が今までは「最終更新日」から取得していたのを、
|
492
|
+
目次の一番新しい話の日付を割り当てるように変更
|
493
|
+
|
494
|
+
#### 修正内容
|
495
|
+
- その他の小説の最新話掲載日を確認しようとするとクラッシュする場合がある問題
|
496
|
+
+ カクヨムの小説が含まれていると発生していた
|
497
|
+
|
498
|
+
|
488
499
|
3.0.2 : 2016/11/29
|
489
500
|
-------------------
|
490
501
|
#### 修正内容
|