jekyll-webmention_io 2.9.3 → 2.9.5
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/lib/jekyll/generators/gather_webmentions.rb +13 -2
- data/lib/jekyll/webmention_io.rb +17 -3
- data/lib/jekyll/webmention_io/version.rb +1 -1
- metadata +2 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: cd122620cc5cf4d2195470575097895be9183d57
|
4
|
+
data.tar.gz: 26ff0f36663bc3134fedd02931c423de07d40072
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 6f159198178ae48701cd58269466e807293a5c4db23164ffa958815efbd56f113373eddd58e240d9ced395b5b48e864cd59155e2053aec290931b155b88ba9ff
|
7
|
+
data.tar.gz: 475202c106eeaff3c98c565bfcabd754f1703e9b5f2174a25b783304c98a4d7a0348c4c963f944c0a18e897d6381f958278b6ed99c05eb0a3dab25e8ecbdeb5c
|
@@ -35,11 +35,15 @@ module Jekyll
|
|
35
35
|
|
36
36
|
@cached_webmentions = Jekyll::WebmentionIO.read_cached_webmentions "incoming"
|
37
37
|
|
38
|
+
@lookups = Jekyll::WebmentionIO.read_lookup_dates
|
39
|
+
|
38
40
|
posts = Jekyll::WebmentionIO.gather_documents(@site)
|
39
41
|
posts.each do |post|
|
40
42
|
check_for_webmentions(post)
|
41
43
|
end
|
42
44
|
|
45
|
+
Jekyll::WebmentionIO.cache_lookup_dates @lookups
|
46
|
+
|
43
47
|
Jekyll::WebmentionIO.cache_webmentions "incoming", @cached_webmentions
|
44
48
|
end # generate
|
45
49
|
|
@@ -48,12 +52,18 @@ module Jekyll
|
|
48
52
|
def check_for_webmentions(post)
|
49
53
|
Jekyll::WebmentionIO.log "info", "Checking for webmentions of #{post.url}."
|
50
54
|
|
51
|
-
# get the last webmention
|
52
55
|
last_webmention = @cached_webmentions.dig(post.url, @cached_webmentions.dig(post.url)&.keys&.last)
|
53
56
|
|
57
|
+
# get the last webmention
|
58
|
+
last_lookup = if @lookups[post.url]
|
59
|
+
@lookups[post.url]
|
60
|
+
else
|
61
|
+
Date.parse last_webmention.dig("raw", "verified_date")
|
62
|
+
end
|
63
|
+
|
54
64
|
# should we throttle?
|
55
65
|
if post.respond_to? "date" # Some docs have no date
|
56
|
-
if
|
66
|
+
if last_lookup && Jekyll::WebmentionIO.post_should_be_throttled?(post, post.date, last_lookup)
|
57
67
|
Jekyll::WebmentionIO.log "info", "Throttling this post."
|
58
68
|
return
|
59
69
|
end
|
@@ -74,6 +84,7 @@ module Jekyll
|
|
74
84
|
Jekyll::WebmentionIO.log "info", "No webmentions found."
|
75
85
|
end
|
76
86
|
|
87
|
+
@lookups[post.url] = Date.today
|
77
88
|
cache_new_webmentions(post.url, response)
|
78
89
|
end
|
79
90
|
|
data/lib/jekyll/webmention_io.rb
CHANGED
@@ -49,6 +49,7 @@ module Jekyll
|
|
49
49
|
"incoming" => "#{@cache_folder}/#{@file_prefix}received.yml",
|
50
50
|
"outgoing" => "#{@cache_folder}/#{@file_prefix}outgoing.yml",
|
51
51
|
"bad_uris" => "#{@cache_folder}/#{@file_prefix}bad_uris.yml",
|
52
|
+
"lookups" => "#{@cache_folder}/#{@file_prefix}lookups.yml"
|
52
53
|
}
|
53
54
|
@cache_files.each do |_key, file|
|
54
55
|
unless File.exist?(file)
|
@@ -160,14 +161,27 @@ module Jekyll
|
|
160
161
|
end
|
161
162
|
end
|
162
163
|
|
164
|
+
def self.read_lookup_dates()
|
165
|
+
cache_file = get_cache_file_path "lookups"
|
166
|
+
lookups = open(cache_file) { |f| YAML.load(f) }
|
167
|
+
lookups
|
168
|
+
end
|
169
|
+
|
170
|
+
def self.cache_lookup_dates(lookups)
|
171
|
+
cache_file = get_cache_file_path "lookups"
|
172
|
+
File.open(cache_file, "w") { |f| YAML.dump(lookups, f) }
|
173
|
+
|
174
|
+
Jekyll::WebmentionIO.log "msg", "Lookups have been cached."
|
175
|
+
end
|
176
|
+
|
163
177
|
# allowed throttles: last_week, last_month, last_year, older
|
164
178
|
# allowed values: daily, weekly, monthly, yearly, every X days|weeks|months|years
|
165
|
-
def self.post_should_be_throttled?(post, item_date,
|
179
|
+
def self.post_should_be_throttled?(post, item_date, last_lookup)
|
166
180
|
throttles = @config.dig("throttle_lookups")
|
167
|
-
if throttles && item_date &&
|
181
|
+
if throttles && item_date && last_lookup
|
168
182
|
age = get_timeframe_from_date(item_date)
|
169
183
|
throttle = throttles.dig(age)
|
170
|
-
if throttle &&
|
184
|
+
if throttle && last_lookup >= get_date_from_string(throttle)
|
171
185
|
log "info", "Throttling #{post.data["title"]} (Only checking it #{throttle})"
|
172
186
|
return true
|
173
187
|
end
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: jekyll-webmention_io
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 2.9.
|
4
|
+
version: 2.9.5
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Aaron Gustafson
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2018-
|
11
|
+
date: 2018-08-31 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: jekyll
|