PluginProbe
ActivityPub / 3.2.4
ActivityPub v3.2.4
9.3.1 9.3.0 9.2.2 9.2.1 9.2.0 9.1.0 9.0.2 9.0.1 9.0.0 8.3.0 8.2.1 8.2.0 8.1.1 1.0.5 1.0.6 1.0.7 1.0.8 1.0.9 1.1.0 1.2.0 1.3.0 2.0.0 2.0.1 2.1.0 2.1.1 All 160 releases
← All changes | includes/activity/class-actor.php +27 -240 9.2.23.2.4 View file →
@@ -2,10 +2,8 @@
2 2 /**
3 3 * Inspired by the PHP ActivityPub Library by @Landrok
4 4 *
5 5 * @link https://github.com/landrok/activitypub
6 - *
7 - * @package Activitypub
8 6 */
9 7
10 8 namespace Activitypub\Activity;
11 9
@@ -15,54 +13,8 @@
15 13 *
16 14 * Represents an individual actor.
17 15 *
18 16 * @see https://www.w3.org/TR/activitystreams-vocabulary/#actor-types
19 - *
20 - * @method string[]|null get_also_known_as() Gets the also known as property of the actor.
21 - * @method array|null get_attribution_domains() Gets domains allowed to use fediverse:creator for this actor.
22 - * @method bool|null get_discoverable() Gets whether the actor is discoverable.
23 - * @method string[]|null get_endpoints() Gets the endpoint property of the actor.
24 - * @method string|null get_featured() Gets the featured posts collection of the actor.
25 - * @method string|null get_featured_tags() Gets the featured tags collection of the actor.
26 - * @method string|null get_followers() Gets the followers collection of the actor.
27 - * @method string|null get_following() Gets the following collection of the actor.
28 - * @method array|null get_implements() Gets the list of implemented specifications.
29 - * @method string|null get_inbox() Gets the inbox property of the actor.
30 - * @method bool|null get_indexable() Gets whether the actor is indexable.
31 - * @method bool|null get_invisible() Gets whether the actor is invisible.
32 - * @method string|null get_liked() Gets the liked collection of the actor.
33 - * @method bool|null get_manually_approves_followers() Gets whether the actor manually approves followers.
34 - * @method string|null get_moderators() Gets the moderators endpoint URL.
35 - * @method string|null get_moved_to() Gets the target of the actor move.
36 - * @method string|null get_outbox() Gets the outbox property of the actor.
37 - * @method bool|null get_posting_restricted_to_mods() Gets whether posting is restricted to moderators.
38 - * @method string|null get_preferred_username() Gets the preferred username of the actor.
39 - * @method string|array|null get_public_key() Gets the public key of the actor.
40 - * @method array get_streams() Gets the list of supplementary collections.
41 - * @method string|null get_webfinger() Gets the WebFinger resource.
42 - *
43 - * @method Actor set_also_known_as( array $also_known_as ) Sets the also known as property of the actor.
44 - * @method Actor set_attribution_domains( array $attribution_domains ) Sets domains allowed to use fediverse:creator for this actor.
45 - * @method Actor set_discoverable( bool $discoverable ) Sets whether the actor is discoverable.
46 - * @method Actor set_endpoints( string|array $endpoints ) Sets the endpoint property of the actor.
47 - * @method Actor set_featured( string $featured ) Sets the featured posts collection of the actor.
48 - * @method Actor set_featured_tags( string $featured_tags ) Sets the featured tags collection of the actor.
49 - * @method Actor set_followers( string $followers ) Sets the followers collection of the actor.
50 - * @method Actor set_following( string $following ) Sets the following collection of the actor.
51 - * @method Actor set_implements( array $implements ) Sets the list of implemented specifications.
52 - * @method Actor set_inbox( string $inbox ) Sets the inbox property of the actor.
53 - * @method Actor set_indexable( bool $indexable ) Sets whether the actor is indexable.
54 - * @method Actor set_invisible( bool $invisible ) Sets whether the actor is invisible.
55 - * @method Actor set_liked( string $liked ) Sets the liked collection of the actor.
56 - * @method Actor set_manually_approves_followers( bool $manually_approves_followers ) Sets whether the actor manually approves followers.
57 - * @method Actor set_moderators( string $moderators ) Sets the moderators endpoint URL.
58 - * @method Actor set_moved_to( string $moved_to ) Sets the target of the actor move.
59 - * @method Actor set_outbox( string $outbox ) Sets the outbox property of the actor.
60 - * @method Actor set_posting_restricted_to_mods( bool $posting_restricted_to_mods ) Sets whether posting is restricted to moderators.
61 - * @method Actor set_preferred_username( string $preferred_username ) Sets the preferred username of the actor.
62 - * @method Actor set_public_key( string|array $public_key ) Sets the public key of the actor.
63 - * @method Actor set_streams( array $streams ) Sets the list of supplementary collections.
64 - * @method Actor set_webfinger( string $webfinger ) Sets the WebFinger resource.
65 17 */
66 18 class Actor extends Base_Object {
67 19 // Reduced context for actors. TODO: still unused.
68 20 const JSON_LD_CONTEXT = array(
@@ -69,83 +21,34 @@
69 21 'https://www.w3.org/ns/activitystreams',
70 22 'https://w3id.org/security/v1',
71 23 'https://purl.archive.org/socialweb/webfinger',
72 24 array(
73 - 'schema' => 'http://schema.org#',
74 - 'toot' => 'http://joinmastodon.org/ns#',
75 - 'lemmy' => 'https://join-lemmy.org/ns#',
76 - 'litepub' => 'http://litepub.social/ns#',
77 - 'gts' => 'https://gotosocial.org/ns#',
25 + 'schema' => 'http://schema.org#',
26 + 'toot' => 'http://joinmastodon.org/ns#',
27 + 'lemmy' => 'https://join-lemmy.org/ns#',
78 28 'manuallyApprovesFollowers' => 'as:manuallyApprovesFollowers',
79 - 'PropertyValue' => 'schema:PropertyValue',
80 - 'value' => 'schema:value',
81 - 'Hashtag' => 'as:Hashtag',
82 - 'featured' => array(
83 - '@id' => 'toot:featured',
29 + 'PropertyValue' => 'schema:PropertyValue',
30 + 'value' => 'schema:value',
31 + 'Hashtag' => 'as:Hashtag',
32 + 'featured' => array(
33 + '@id' => 'toot:featured',
84 34 '@type' => '@id',
85 35 ),
86 - 'featuredTags' => array(
87 - '@id' => 'toot:featuredTags',
36 + 'featuredTags' => array(
37 + '@id' => 'toot:featuredTags',
88 38 '@type' => '@id',
89 39 ),
90 - 'moderators' => array(
91 - '@id' => 'lemmy:moderators',
40 + 'moderators' => array(
41 + '@id' => 'lemmy:moderators',
92 42 '@type' => '@id',
93 43 ),
94 - 'alsoKnownAs' => array(
95 - '@id' => 'as:alsoKnownAs',
96 - '@type' => '@id',
97 - ),
98 - 'movedTo' => array(
99 - '@id' => 'as:movedTo',
100 - '@type' => '@id',
101 - ),
102 - 'attributionDomains' => array(
103 - '@id' => 'toot:attributionDomains',
104 - '@type' => '@id',
105 - ),
106 - 'implements' => array(
107 - '@id' => 'https://w3id.org/fep/844e/implements',
108 - '@type' => '@id',
109 - '@container' => '@list',
110 - ),
111 - 'interactionPolicy' => array(
112 - '@id' => 'gts:interactionPolicy',
113 - '@type' => '@id',
114 - ),
115 - 'canFeature' => array(
116 - '@id' => 'https://w3id.org/fep/7aa9#canFeature',
117 - '@type' => '@id',
118 - ),
119 - 'automaticApproval' => array(
120 - '@id' => 'gts:automaticApproval',
121 - '@type' => '@id',
122 - ),
123 - 'postingRestrictedToMods' => 'lemmy:postingRestrictedToMods',
124 - 'discoverable' => 'toot:discoverable',
125 - 'indexable' => 'toot:indexable',
126 - 'invisible' => 'litepub:invisible',
44 + 'postingRestrictedToMods' => 'lemmy:postingRestrictedToMods',
45 + 'discoverable' => 'toot:discoverable',
46 + 'indexable' => 'toot:indexable',
127 47 ),
128 48 );
129 49
130 50 /**
131 - * The default types for Actors.
132 - *
133 - * @see https://www.w3.org/TR/activitystreams-vocabulary/#actor-types
134 - *
135 - * @var array
136 - */
137 - const TYPES = array(
138 - 'Application',
139 - 'Group',
140 - 'Organization',
141 - 'Person',
142 - 'Service',
143 - );
144 -
145 - /**
146 - * The type of the object.
147 - *
148 51 * @var string
149 52 */
150 53 protected $type;
151 54
@@ -154,9 +57,10 @@
154 57 * all the messages received by the actor.
155 58 *
156 59 * @see https://www.w3.org/TR/activitypub/#inbox
157 60 *
158 - * @var string|null
61 + * @var string
62 + * | null
159 63 */
160 64 protected $inbox;
161 65
162 66 /**
@@ -164,9 +68,10 @@
164 68 * all the messages produced by the actor.
165 69 *
166 70 * @see https://www.w3.org/TR/activitypub/#outbox
167 71 *
168 - * @var string|null
72 + * @var string
73 + * | null
169 74 */
170 75 protected $outbox;
171 76
172 77 /**
@@ -231,15 +136,16 @@
231 136 */
232 137 protected $endpoints;
233 138
234 139 /**
235 - * It's not part of the ActivityPub protocol, but it's a quite common
140 + * It's not part of the ActivityPub protocol but it's a quite common
236 141 * practice to handle an actor public key with a publicKey array:
237 142 * [
238 - * 'id' => 'https://my-example.com/actor#main-key'
239 - * 'owner' => 'https://my-example.com/actor',
143 + * 'id' => 'https://my-example.com/actor#main-key'
144 + * 'owner' => 'https://my-example.com/actor',
240 145 * 'publicKeyPem' => '-----BEGIN PUBLIC KEY-----
241 - * [...]
146 + * MIIBI [...]
147 + * DQIDAQAB
242 148 * -----END PUBLIC KEY-----'
243 149 * ]
244 150 *
245 151 * @see https://www.w3.org/wiki/SocialCG/ActivityPub/Authentication_Authorization#Signing_requests_using_HTTP_Signatures
@@ -248,10 +154,10 @@
248 154 */
249 155 protected $public_key;
250 156
251 157 /**
252 - * It's not part of the ActivityPub protocol, but it's a quite common
253 - * practice to lock an account. If enabled, new followers will not be
158 + * It's not part of the ActivityPub protocol but it's a quite common
159 + * practice to lock an account. If anabled, new followers will not be
254 160 * automatically accepted, but will instead require you to manually
255 161 * approve them.
256 162 *
257 163 * WordPress does only support 'false' at the moment.
@@ -259,127 +165,8 @@
259 165 * @see https://docs.joinmastodon.org/spec/activitypub/#as
260 166 *
261 167 * @context as:manuallyApprovesFollowers
262 168 *
263 - * @var boolean|null
169 + * @var boolean
264 170 */
265 171 protected $manually_approves_followers = false;
266 -
267 - /**
268 - * Domains allowed to use `fediverse:creator` for this actor in
269 - * published articles.
270 - *
271 - * @see https://blog.joinmastodon.org/2024/07/highlighting-journalism-on-mastodon/
272 - *
273 - * @var array|null
274 - */
275 - protected $attribution_domains = null;
276 -
277 - /**
278 - * The target of the actor.
279 - *
280 - * @var string|null
281 - */
282 - protected $moved_to;
283 -
284 - /**
285 - * The alsoKnownAs of the actor.
286 - *
287 - * @var array|null
288 - */
289 - protected $also_known_as;
290 -
291 - /**
292 - * The Featured-Posts.
293 - *
294 - * @see https://docs.joinmastodon.org/spec/activitypub/#featured
295 - *
296 - * @context {
297 - * "@id": "http://joinmastodon.org/ns#featured",
298 - * "@type": "@id"
299 - * }
300 - *
301 - * @var string|null
302 - */
303 - protected $featured;
304 -
305 - /**
306 - * The Featured-Tags.
307 - *
308 - * @see https://docs.joinmastodon.org/spec/activitypub/#featuredTags
309 - *
310 - * @context {
311 - * "@id": "http://joinmastodon.org/ns#featuredTags",
312 - * "@type": "@id"
313 - * }
314 - *
315 - * @var string|null
316 - */
317 - protected $featured_tags;
318 -
319 - /**
320 - * Whether the User is discoverable.
321 - *
322 - * @see https://docs.joinmastodon.org/spec/activitypub/#discoverable
323 - *
324 - * @context http://joinmastodon.org/ns#discoverable
325 - *
326 - * @var boolean|null
327 - */
328 - protected $discoverable;
329 -
330 - /**
331 - * Whether the User is indexable.
332 - *
333 - * @see https://docs.joinmastodon.org/spec/activitypub/#indexable
334 - *
335 - * @context http://joinmastodon.org/ns#indexable
336 - *
337 - * @var boolean|null
338 - */
339 - protected $indexable;
340 -
341 - /**
342 - * The WebFinger Resource.
343 - *
344 - * @see https://codeberg.org/fediverse/fep/src/branch/main/fep/2c59/fep-2c59.md
345 - *
346 - * @var string|null
347 - */
348 - protected $webfinger;
349 -
350 - /**
351 - * URL to the Moderators endpoint.
352 - *
353 - * @see https://join-lemmy.org/docs/contributors/05-federation.html
354 - *
355 - * @var string|null
356 - */
357 - protected $moderators;
358 -
359 - /**
360 - * Restrict posting to mods.
361 - *
362 - * @see https://join-lemmy.org/docs/contributors/05-federation.html
363 - *
364 - * @var boolean|null
365 - */
366 - protected $posting_restricted_to_mods;
367 -
368 - /**
369 - * Listing Implemented Specifications on the Application Actor
370 - *
371 - * @see https://codeberg.org/fediverse/fep/src/branch/main/fep/844e/fep-844e.md
372 - *
373 - * @var array|null
374 - */
375 - protected $implements;
376 -
377 - /**
378 - * Whether the User is invisible.
379 - *
380 - * @see https://litepub.social/
381 - *
382 - * @var boolean|null
383 - */
384 - protected $invisible = null;
385 172 }