nhkore 0.3.4 → 0.3.5
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +4 -4
- data/CHANGELOG.md +11 -1
- data/lib/nhkore/app.rb +2 -1
- data/lib/nhkore/article.rb +24 -7
- data/lib/nhkore/dict_scraper.rb +1 -1
- data/lib/nhkore/news.rb +13 -4
- data/lib/nhkore/search_link.rb +35 -16
- data/lib/nhkore/version.rb +1 -1
- metadata +3 -3
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: cef37a085d0bb5b9143d8cf685729d84a4ec3665954ca6bcbdcf188ee6f43ac5
|
4
|
+
data.tar.gz: bf866f3c827b5a2e853133f1f62f71c76d7699df28d0cd838bef9cf5893eb556
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 583c214ed3fb70a8ee7cce7378dba5595060780d55e4111d17ccb39cecffb2aa4ae67ede3c8f8215b52f485ac967c72a96be662ec35f40a75d4ff03cef0c070e
|
7
|
+
data.tar.gz: 5ac717084e1e9ea92243e16266dcaa123e01bf066574ee8ae747a196bdc8d9ae96227429843f2a6a09d6a3c849c91d3373109a2657c996a558cd4b4f2954ea17
|
data/CHANGELOG.md
CHANGED
@@ -2,7 +2,17 @@
|
|
2
2
|
|
3
3
|
Format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/).
|
4
4
|
|
5
|
-
## [[Unreleased]](https://github.com/esotericpig/nhkore/compare/v0.3.
|
5
|
+
## [[Unreleased]](https://github.com/esotericpig/nhkore/compare/v0.3.5...master)
|
6
|
+
|
7
|
+
## [v0.3.5] - 2020-05-04
|
8
|
+
|
9
|
+
### Added
|
10
|
+
- Added check for environment var `NO_COLOR`
|
11
|
+
- [https://no-color.org/](https://no-color.org/)
|
12
|
+
|
13
|
+
### Fixed
|
14
|
+
- Fixed URLs stored in YAML data to always be of type String (not URI)
|
15
|
+
- This initially caused a problem in DictScraper.parse_url() from ArticleScraper, but fixed it for all data
|
6
16
|
|
7
17
|
## [v0.3.4] - 2020-04-25
|
8
18
|
|
data/lib/nhkore/app.rb
CHANGED
data/lib/nhkore/article.rb
CHANGED
@@ -33,11 +33,11 @@ module NHKore
|
|
33
33
|
# @since 0.2.0
|
34
34
|
###
|
35
35
|
class Article
|
36
|
-
|
37
|
-
|
36
|
+
attr_reader :datetime
|
37
|
+
attr_reader :futsuurl
|
38
38
|
attr_accessor :sha256
|
39
39
|
attr_accessor :title
|
40
|
-
|
40
|
+
attr_reader :url
|
41
41
|
attr_reader :words
|
42
42
|
|
43
43
|
def initialize()
|
@@ -79,19 +79,18 @@ module NHKore
|
|
79
79
|
|
80
80
|
coder[:datetime] = @datetime.nil?() ? @datetime : @datetime.iso8601()
|
81
81
|
coder[:title] = @title
|
82
|
-
coder[:url] = @url
|
83
|
-
coder[:futsuurl] = @futsuurl
|
82
|
+
coder[:url] = @url.nil?() ? nil : @url.to_s()
|
83
|
+
coder[:futsuurl] = @futsuurl.nil?() ? nil : @futsuurl.to_s()
|
84
84
|
coder[:sha256] = @sha256
|
85
85
|
coder[:words] = @words
|
86
86
|
end
|
87
87
|
|
88
88
|
def self.load_data(key,hash)
|
89
|
-
datetime = hash[:datetime]
|
90
89
|
words = hash[:words]
|
91
90
|
|
92
91
|
article = Article.new()
|
93
92
|
|
94
|
-
article.datetime =
|
93
|
+
article.datetime = hash[:datetime]
|
95
94
|
article.futsuurl = hash[:futsuurl]
|
96
95
|
article.sha256 = hash[:sha256]
|
97
96
|
article.title = hash[:title]
|
@@ -107,6 +106,24 @@ module NHKore
|
|
107
106
|
return article
|
108
107
|
end
|
109
108
|
|
109
|
+
def datetime=(value)
|
110
|
+
if value.is_a?(Time)
|
111
|
+
@datetime = value
|
112
|
+
else
|
113
|
+
@datetime = Util.empty_web_str?(value) ? nil : Time.iso8601(value)
|
114
|
+
end
|
115
|
+
end
|
116
|
+
|
117
|
+
def futsuurl=(value)
|
118
|
+
# Don't store URI, store String.
|
119
|
+
@futsuurl = value.nil?() ? nil : value.to_s()
|
120
|
+
end
|
121
|
+
|
122
|
+
def url=(value)
|
123
|
+
# Don't store URI, store String.
|
124
|
+
@url = value.nil?() ? nil : value.to_s()
|
125
|
+
end
|
126
|
+
|
110
127
|
def to_s(mini: false)
|
111
128
|
s = ''.dup()
|
112
129
|
|
data/lib/nhkore/dict_scraper.rb
CHANGED
data/lib/nhkore/news.rb
CHANGED
@@ -49,7 +49,10 @@ module NHKore
|
|
49
49
|
end
|
50
50
|
|
51
51
|
def add_article(article,key: nil,overwrite: false)
|
52
|
-
|
52
|
+
url = article.url
|
53
|
+
url = url.to_s() unless url.nil?()
|
54
|
+
|
55
|
+
key = key.nil?() ? url : key.to_s()
|
53
56
|
|
54
57
|
if !overwrite
|
55
58
|
raise ArgumentError,"duplicate article[#{key}] in articles" if @articles.key?(key)
|
@@ -57,7 +60,7 @@ module NHKore
|
|
57
60
|
end
|
58
61
|
|
59
62
|
@articles[key] = article
|
60
|
-
@sha256s[article.sha256] =
|
63
|
+
@sha256s[article.sha256] = url
|
61
64
|
|
62
65
|
return self
|
63
66
|
end
|
@@ -91,16 +94,20 @@ module NHKore
|
|
91
94
|
end
|
92
95
|
|
93
96
|
def update_article(article,url)
|
97
|
+
url = url.to_s() unless url.nil?()
|
98
|
+
|
94
99
|
# Favor https.
|
95
|
-
return if article.url =~ FAVORED_URL
|
100
|
+
return if article.url.to_s() =~ FAVORED_URL
|
96
101
|
return if url !~ FAVORED_URL
|
97
102
|
|
98
|
-
@articles.delete(article.url)
|
103
|
+
@articles.delete(article.url) # Probably no to_s() here
|
99
104
|
@articles[url] = article
|
100
105
|
article.url = url
|
101
106
|
end
|
102
107
|
|
103
108
|
def article(key)
|
109
|
+
key = key.to_s() unless key.nil?()
|
110
|
+
|
104
111
|
return @articles[key]
|
105
112
|
end
|
106
113
|
|
@@ -119,6 +126,8 @@ module NHKore
|
|
119
126
|
end
|
120
127
|
|
121
128
|
def article?(key)
|
129
|
+
key = key.to_s() unless key.nil?()
|
130
|
+
|
122
131
|
return @articles.key?(key)
|
123
132
|
end
|
124
133
|
|
data/lib/nhkore/search_link.rb
CHANGED
@@ -34,12 +34,12 @@ module NHKore
|
|
34
34
|
# @since 0.2.0
|
35
35
|
###
|
36
36
|
class SearchLink
|
37
|
-
|
38
|
-
|
37
|
+
attr_reader :datetime
|
38
|
+
attr_reader :futsuurl
|
39
39
|
attr_accessor? :scraped
|
40
40
|
attr_accessor :sha256
|
41
41
|
attr_accessor :title
|
42
|
-
|
42
|
+
attr_reader :url
|
43
43
|
|
44
44
|
def initialize(url,scraped: false)
|
45
45
|
super()
|
@@ -49,29 +49,27 @@ module NHKore
|
|
49
49
|
@scraped = scraped
|
50
50
|
@sha256 = sha256
|
51
51
|
@title = nil
|
52
|
-
|
52
|
+
self.url = url
|
53
53
|
end
|
54
54
|
|
55
55
|
def encode_with(coder)
|
56
56
|
# Order matters.
|
57
57
|
|
58
|
-
coder[:url] = @url
|
58
|
+
coder[:url] = @url.nil?() ? nil : @url.to_s()
|
59
59
|
coder[:scraped] = @scraped
|
60
|
-
coder[:datetime] = @datetime.nil?() ?
|
60
|
+
coder[:datetime] = @datetime.nil?() ? nil : @datetime.iso8601()
|
61
61
|
coder[:title] = @title
|
62
|
-
coder[:futsuurl] = @futsuurl
|
62
|
+
coder[:futsuurl] = @futsuurl.nil?() ? nil : @futsuurl.to_s()
|
63
63
|
coder[:sha256] = @sha256
|
64
64
|
end
|
65
65
|
|
66
66
|
def self.load_data(key,hash)
|
67
|
-
datetime = hash[:datetime]
|
68
|
-
|
69
67
|
slink = SearchLink.new(
|
70
68
|
hash[:url],
|
71
|
-
scraped: hash[:scraped]
|
69
|
+
scraped: hash[:scraped],
|
72
70
|
)
|
73
71
|
|
74
|
-
slink.datetime =
|
72
|
+
slink.datetime = hash[:datetime]
|
75
73
|
slink.futsuurl = hash[:futsuurl]
|
76
74
|
slink.sha256 = hash[:sha256]
|
77
75
|
slink.title = hash[:title]
|
@@ -82,13 +80,31 @@ module NHKore
|
|
82
80
|
def update_from_article(article)
|
83
81
|
# Don't update the url, as it may be different (e.g., http vs https).
|
84
82
|
|
85
|
-
|
86
|
-
|
83
|
+
self.datetime = article.datetime if @datetime.nil?()
|
84
|
+
self.futsuurl = article.futsuurl if Util.empty_web_str?(@futsuurl)
|
87
85
|
@scraped = true # If we have an article, it's been scraped
|
88
86
|
@sha256 = article.sha256 if Util.empty_web_str?(@sha256)
|
89
87
|
@title = article.title if Util.empty_web_str?(@title)
|
90
88
|
end
|
91
89
|
|
90
|
+
def datetime=(value)
|
91
|
+
if value.is_a?(Time)
|
92
|
+
@datetime = value
|
93
|
+
else
|
94
|
+
@datetime = Util.empty_web_str?(value) ? nil : Time.iso8601(value)
|
95
|
+
end
|
96
|
+
end
|
97
|
+
|
98
|
+
def futsuurl=(value)
|
99
|
+
# Don't store URI, store String.
|
100
|
+
@futsuurl = value.nil?() ? nil : value.to_s()
|
101
|
+
end
|
102
|
+
|
103
|
+
def url=(value)
|
104
|
+
# Don't store URI, store String.
|
105
|
+
@url = value.nil?() ? nil : value.to_s()
|
106
|
+
end
|
107
|
+
|
92
108
|
def to_s(mini: false)
|
93
109
|
s = ''.dup()
|
94
110
|
|
@@ -136,9 +152,11 @@ module NHKore
|
|
136
152
|
end
|
137
153
|
|
138
154
|
def add_link(link)
|
139
|
-
|
155
|
+
url = link.url.nil?() ? nil : link.url.to_s()
|
156
|
+
|
157
|
+
return self if @links.key?(url)
|
140
158
|
|
141
|
-
@links[
|
159
|
+
@links[url] = link
|
142
160
|
|
143
161
|
return self
|
144
162
|
end
|
@@ -162,7 +180,7 @@ module NHKore
|
|
162
180
|
|
163
181
|
if !links.nil?()
|
164
182
|
links.each() do |key,hash|
|
165
|
-
key = key.to_s()
|
183
|
+
key = key.to_s() unless key.nil?()
|
166
184
|
slinks.links[key] = SearchLink.load_data(key,hash)
|
167
185
|
end
|
168
186
|
end
|
@@ -172,6 +190,7 @@ module NHKore
|
|
172
190
|
|
173
191
|
def [](url)
|
174
192
|
url = url.url if url.respond_to?(:url)
|
193
|
+
url = url.to_s() unless url.nil?()
|
175
194
|
|
176
195
|
return @links[url]
|
177
196
|
end
|
data/lib/nhkore/version.rb
CHANGED
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: nhkore
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.3.
|
4
|
+
version: 0.3.5
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Jonathan Bradley Whited (@esotericpig)
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2020-04
|
11
|
+
date: 2020-05-04 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: attr_bool
|
@@ -390,7 +390,7 @@ metadata:
|
|
390
390
|
changelog_uri: https://github.com/esotericpig/nhkore/blob/master/CHANGELOG.md
|
391
391
|
homepage_uri: https://github.com/esotericpig/nhkore
|
392
392
|
source_code_uri: https://github.com/esotericpig/nhkore
|
393
|
-
post_install_message: " \n NHKore v0.3.
|
393
|
+
post_install_message: " \n NHKore v0.3.5\n \n You can now use [nhkore] on the
|
394
394
|
command line.\n \n Homepage: https://github.com/esotericpig/nhkore\n \n Code:
|
395
395
|
\ https://github.com/esotericpig/nhkore\n Changelog: https://github.com/esotericpig/nhkore/blob/master/CHANGELOG.md\n
|
396
396
|
\ Bugs: https://github.com/esotericpig/nhkore/issues\n \n"
|