jekyll-activity-pub 0.1.0rc13 → 0.1.0rc14

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: 2c1484d32011db73dd1d0db605244a6ac077f0820aa4ef0b2c78111a210f0c04
4
- data.tar.gz: 17841d449364d36b5b8a78377234b0215aa09951797776c51a8fd4835142c758
3
+ metadata.gz: aaea38dc037b09e85e37555dfcf89e0f974107a0699a600d9c2f8f5f031f6a72
4
+ data.tar.gz: fef291e74969a128d2ed950ea9a0f2fda5fc93b5fc45fa851ea8b6f07d15aed9
5
5
  SHA512:
6
- metadata.gz: 1ec20c6425542d0b83a2e995dcf38e3d9196728fcb5358e782ee66f23ba26aa625ab1523bd9235eebb2684cc1548912f9dd3a24ceac6ec30660fd0664969fac2
7
- data.tar.gz: 8ec390af344d3e4f7558119a00e153c194029206af5c6b431282f2af1d73de22eeeafa6001757ebd368a8d0c5433753df7e09a8596de75b03915a1fca9a0cf2f
6
+ metadata.gz: e27745239477eef2a66b1d0dee32af27b4e58219d381e5720abf0d158a38ea31a3e113a9b812b40b4faadbfed48925e0e242c7012d9c4cd428fd725e77f18f07
7
+ data.tar.gz: ee3dff54f5c6f549286bc3009063d99513a2d2fc73ffaec6d188f9988866d1c15135dc8662ca0cc1a4b9d9dfc4891546a9391bec7e579ef88481e4f6e6f64176
@@ -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
- "#{config['url']}/v1/#{actor}/followers"
64
+ "#{url}/v1/#{actor}/followers"
59
65
  end
60
66
 
61
67
  # @return [String]
62
68
  def following_url
63
- "#{config['url']}/v1/#{actor}/following"
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,nil]
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
@@ -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.warn 'ActivityPub:', 'There\'s an issue with your private key'
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: config['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
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.0rc13
4
+ version: 0.1.0rc14
5
5
  platform: ruby
6
6
  authors:
7
7
  - Sutty
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2023-10-05 00:00:00.000000000 Z
11
+ date: 2023-10-25 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: distributed-press-api-client
@@ -143,7 +143,6 @@ 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
147
146
  - lib/jekyll/activity_pub/commands.rb
148
147
  - lib/jekyll/activity_pub/create.rb
149
148
  - lib/jekyll/activity_pub/delete.rb
@@ -158,7 +157,6 @@ files:
158
157
  - lib/jekyll/activity_pub/outbox.rb
159
158
  - lib/jekyll/activity_pub/property_value.rb
160
159
  - lib/jekyll/activity_pub/public_key.rb
161
- - lib/jekyll/activity_pub/tomsbtone.rb
162
160
  - lib/jekyll/activity_pub/update.rb
163
161
  - lib/jekyll/activity_pub/webfinger.rb
164
162
  - lib/jekyll/command_extension.rb
@@ -1,10 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- require 'jekyll/cache'
4
-
5
- module Jekyll
6
- module ActivityPub
7
- class Cache < Jekyll::Cache
8
- end
9
- end
10
- end
@@ -1,61 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- require 'jekyll/page'
4
- require_relative 'helper'
5
-
6
- module Jekyll
7
- module ActivityPub
8
- # Represents a removed activity
9
- class Tombstone < Jekyll::Page
10
- include Helper
11
-
12
- # @param :object_id [String]
13
- attr_reader :object_id
14
-
15
- # Initialize with default data
16
- #
17
- # @param :site [Jekyll::Site]
18
- # @param :object_id [String]
19
- def initialize(site, object_id, )
20
- @context = StubContext.new(registers: { site: site })
21
- @object_id = object_id
22
-
23
- dest = Pathname.new(object.destination(site.dest)).relative_path_from(site.dest)
24
- name = 'tombstone.jsonld'
25
- dir = File.join(
26
- File.dirname(dest),
27
- File.basename(dest, '.jsonld')
28
- )
29
-
30
- super(site, '', dir, name)
31
-
32
- trigger_hooks :post_init
33
- end
34
-
35
- def read_yaml(*)
36
- @data = {
37
- '@context' => 'https://www.w3.org/ns/activitystreams',
38
- 'type' => 'Tomsbtone',
39
- 'id' => absolute_url(object_id),
40
- 'published' => object.data[DATE_ATTRIBUTE],
41
- 'to' => object.data['to'],
42
- 'cc' => object.data['cc'],
43
- 'object' => object.data,
44
- 'inReplyTo' => object.data['in_reply_to']
45
- }
46
- end
47
-
48
- # @return [Time]
49
- def date
50
- @date ||= Time.parse(object.data[DATE_ATTRIBUTE])
51
- end
52
-
53
- private
54
-
55
- def type
56
- @type ||= self.class.name.split('::').last
57
- end
58
- end
59
- end
60
- end
61
-