jekyll-activity-pub 0.1.0rc13 → 0.1.0rc15
Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 85320eb7b8fa252e8e66bb733d4ab51478b379f4ebd6211c0fbc6387f425cffc
|
4
|
+
data.tar.gz: 122b5349c06408910f743f255112df2acc3318cc0ede289ea5811a030fda3b65
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: a2111ddfe7cf26d72088b000014c6ac690a731235c392e9d2cb86a7831913a53d1e27a6a6920c599a52218f275eaf29f473dc37b03b561bbc8abe64d0ddafb6c
|
7
|
+
data.tar.gz: 5ec690882fbc64d533a1f02741252215e71b9a156d7697228afa5b71bbd927d4bda149d3724f88ca598bd9e58530c21f350ae5c59694e1e1a9cb0256c505be32
|
@@ -53,14 +53,20 @@ module Jekyll
|
|
53
53
|
@@site
|
54
54
|
end
|
55
55
|
|
56
|
+
def url
|
57
|
+
config['url'].tap do |u|
|
58
|
+
abort_if_missing('activity_pub.url', u, '_config.yml')
|
59
|
+
end
|
60
|
+
end
|
61
|
+
|
56
62
|
# @return [String]
|
57
63
|
def followers_url
|
58
|
-
"#{
|
64
|
+
"#{url}/v1/#{actor}/followers"
|
59
65
|
end
|
60
66
|
|
61
67
|
# @return [String]
|
62
68
|
def following_url
|
63
|
-
"#{
|
69
|
+
"#{url}/v1/#{actor}/following"
|
64
70
|
end
|
65
71
|
|
66
72
|
# Save the public key URL for later
|
@@ -70,11 +76,13 @@ module Jekyll
|
|
70
76
|
data['public_key_url'] = url
|
71
77
|
end
|
72
78
|
|
73
|
-
# Public key URL
|
79
|
+
# Public key URL, raises error if missing
|
74
80
|
#
|
75
|
-
# @return [String
|
81
|
+
# @return [String]
|
76
82
|
def public_key_url
|
77
|
-
data['public_key_url']
|
83
|
+
data['public_key_url'].tap do |pk|
|
84
|
+
abort_if_missing('public_key_url', pk)
|
85
|
+
end
|
78
86
|
end
|
79
87
|
|
80
88
|
def actor=(actor)
|
@@ -82,7 +90,9 @@ module Jekyll
|
|
82
90
|
end
|
83
91
|
|
84
92
|
def actor
|
85
|
-
data['actor']
|
93
|
+
data['actor'].tap do |a|
|
94
|
+
abort_if_missing('actor', a)
|
95
|
+
end
|
86
96
|
end
|
87
97
|
|
88
98
|
def actor_url=(url)
|
@@ -90,7 +100,9 @@ module Jekyll
|
|
90
100
|
end
|
91
101
|
|
92
102
|
def actor_url
|
93
|
-
data['actor_url']
|
103
|
+
data['actor_url'].tap do |au|
|
104
|
+
abort_if_missing('actor_url', au)
|
105
|
+
end
|
94
106
|
end
|
95
107
|
|
96
108
|
# Send notifications
|
@@ -104,10 +116,10 @@ module Jekyll
|
|
104
116
|
|
105
117
|
unless response.ok?
|
106
118
|
raise NotificationError,
|
107
|
-
"Could't fetch public key (#{response.code}: #{response.message})"
|
119
|
+
"Could't fetch public key (#{response.code}: #{response.message}). It needs to be available at #{public_key_url} before notifications can work, because it's used for signature verification."
|
108
120
|
end
|
109
121
|
|
110
|
-
unless client.private_key.compare? OpenSSL::PKey::RSA.new(response.
|
122
|
+
unless client.private_key.compare? OpenSSL::PKey::RSA.new(response.parsed_response.dig('publicKey', 'publicKeyPem'))
|
111
123
|
raise NotificationError, "Public key at #{public_key_url} differs from local version"
|
112
124
|
end
|
113
125
|
|
@@ -148,6 +160,8 @@ module Jekyll
|
|
148
160
|
|
149
161
|
# Store everything for later
|
150
162
|
save
|
163
|
+
rescue NotificationError => e
|
164
|
+
Jekyll.logger.abort_with 'ActivityPub:', e.message
|
151
165
|
end
|
152
166
|
|
153
167
|
# Return data
|
@@ -274,7 +288,9 @@ module Jekyll
|
|
274
288
|
#
|
275
289
|
# @return [String, nil]
|
276
290
|
def private_key_path
|
277
|
-
@@private_key_path ||= site.config['activity_pub_private_key']
|
291
|
+
@@private_key_path ||= site.config['activity_pub_private_key'].tap do |pk|
|
292
|
+
abort_if_missing '--key', pk, 'notify command'
|
293
|
+
end
|
278
294
|
end
|
279
295
|
|
280
296
|
# Returns the private key
|
@@ -283,8 +299,7 @@ module Jekyll
|
|
283
299
|
def private_key
|
284
300
|
@@private_key ||= File.read private_key_path
|
285
301
|
rescue StandardError
|
286
|
-
Jekyll.logger.
|
287
|
-
raise
|
302
|
+
Jekyll.logger.abort_with 'ActivityPub:', 'There\'s an issue with your private key'
|
288
303
|
end
|
289
304
|
|
290
305
|
# @return [Hash]
|
@@ -295,7 +310,7 @@ module Jekyll
|
|
295
310
|
def client
|
296
311
|
@@client ||= DistributedPress::V1::Social::Client.new(
|
297
312
|
private_key_pem: private_key,
|
298
|
-
url:
|
313
|
+
url: url,
|
299
314
|
public_key_url: public_key_url,
|
300
315
|
logger: Jekyll.logger
|
301
316
|
)
|
@@ -361,6 +376,12 @@ module Jekyll
|
|
361
376
|
PseudoObject.new(url: rel, site: site, relative_path: rel, data: data)
|
362
377
|
end
|
363
378
|
end
|
379
|
+
|
380
|
+
def abort_if_missing(key_name, value, file = '_data/activity_pub.yml')
|
381
|
+
return unless value.nil? || value.empty?
|
382
|
+
|
383
|
+
Jekyll.logger.abort_with 'ActivityPub:', "Missing #{key_name} in #{file}"
|
384
|
+
end
|
364
385
|
end
|
365
386
|
end
|
366
387
|
end
|
@@ -27,14 +27,14 @@ module Jekyll
|
|
27
27
|
|
28
28
|
actor.data['publicKey'] = self
|
29
29
|
|
30
|
-
Notifier.public_key_url =
|
30
|
+
Notifier.public_key_url = data['id']
|
31
31
|
|
32
32
|
trigger_hooks :post_init
|
33
33
|
end
|
34
34
|
|
35
35
|
def read_yaml(*)
|
36
36
|
self.data = {
|
37
|
-
'id' => absolute_url(url),
|
37
|
+
'id' => "#{absolute_url(@actor.url)}#main-key",
|
38
38
|
'owner' => absolute_url(@actor.url),
|
39
39
|
'publicKeyPem' => @public_key.public_to_pem
|
40
40
|
}
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: jekyll-activity-pub
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.1.
|
4
|
+
version: 0.1.0rc15
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Sutty
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2023-
|
11
|
+
date: 2023-11-07 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: distributed-press-api-client
|
@@ -16,14 +16,14 @@ dependencies:
|
|
16
16
|
requirements:
|
17
17
|
- - "~>"
|
18
18
|
- !ruby/object:Gem::Version
|
19
|
-
version: 0.3.
|
19
|
+
version: 0.3.0rc4
|
20
20
|
type: :runtime
|
21
21
|
prerelease: false
|
22
22
|
version_requirements: !ruby/object:Gem::Requirement
|
23
23
|
requirements:
|
24
24
|
- - "~>"
|
25
25
|
- !ruby/object:Gem::Version
|
26
|
-
version: 0.3.
|
26
|
+
version: 0.3.0rc4
|
27
27
|
- !ruby/object:Gem::Dependency
|
28
28
|
name: jekyll
|
29
29
|
requirement: !ruby/object:Gem::Requirement
|
@@ -143,7 +143,7 @@ files:
|
|
143
143
|
- lib/jekyll/activity_pub.rb
|
144
144
|
- lib/jekyll/activity_pub/activity.rb
|
145
145
|
- lib/jekyll/activity_pub/actor.rb
|
146
|
-
- lib/jekyll/activity_pub/cache.rb
|
146
|
+
- lib/jekyll/activity_pub/cache.rb~
|
147
147
|
- lib/jekyll/activity_pub/commands.rb
|
148
148
|
- lib/jekyll/activity_pub/create.rb
|
149
149
|
- lib/jekyll/activity_pub/delete.rb
|
@@ -158,7 +158,7 @@ files:
|
|
158
158
|
- lib/jekyll/activity_pub/outbox.rb
|
159
159
|
- lib/jekyll/activity_pub/property_value.rb
|
160
160
|
- lib/jekyll/activity_pub/public_key.rb
|
161
|
-
- lib/jekyll/activity_pub/tomsbtone.rb
|
161
|
+
- lib/jekyll/activity_pub/tomsbtone.rb~
|
162
162
|
- lib/jekyll/activity_pub/update.rb
|
163
163
|
- lib/jekyll/activity_pub/webfinger.rb
|
164
164
|
- lib/jekyll/command_extension.rb
|
File without changes
|
File without changes
|