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 -227 8.2.13.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,70 +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#',
25 + 'schema' => 'http://schema.org#',
26 + 'toot' => 'http://joinmastodon.org/ns#',
27 + 'lemmy' => 'https://join-lemmy.org/ns#',
77 28 'manuallyApprovesFollowers' => 'as:manuallyApprovesFollowers',
78 - 'PropertyValue' => 'schema:PropertyValue',
79 - 'value' => 'schema:value',
80 - 'Hashtag' => 'as:Hashtag',
81 - 'featured' => array(
82 - '@id' => 'toot:featured',
29 + 'PropertyValue' => 'schema:PropertyValue',
30 + 'value' => 'schema:value',
31 + 'Hashtag' => 'as:Hashtag',
32 + 'featured' => array(
33 + '@id' => 'toot:featured',
83 34 '@type' => '@id',
84 35 ),
85 - 'featuredTags' => array(
86 - '@id' => 'toot:featuredTags',
36 + 'featuredTags' => array(
37 + '@id' => 'toot:featuredTags',
87 38 '@type' => '@id',
88 39 ),
89 - 'moderators' => array(
90 - '@id' => 'lemmy:moderators',
40 + 'moderators' => array(
41 + '@id' => 'lemmy:moderators',
91 42 '@type' => '@id',
92 43 ),
93 - 'alsoKnownAs' => array(
94 - '@id' => 'as:alsoKnownAs',
95 - '@type' => '@id',
96 - ),
97 - 'movedTo' => array(
98 - '@id' => 'as:movedTo',
99 - '@type' => '@id',
100 - ),
101 - 'attributionDomains' => array(
102 - '@id' => 'toot:attributionDomains',
103 - '@type' => '@id',
104 - ),
105 - 'implements' => array(
106 - '@id' => 'https://w3id.org/fep/844e/implements',
107 - '@type' => '@id',
108 - '@container' => '@list',
109 - ),
110 - 'postingRestrictedToMods' => 'lemmy:postingRestrictedToMods',
111 - 'discoverable' => 'toot:discoverable',
112 - 'indexable' => 'toot:indexable',
113 - 'invisible' => 'litepub:invisible',
44 + 'postingRestrictedToMods' => 'lemmy:postingRestrictedToMods',
45 + 'discoverable' => 'toot:discoverable',
46 + 'indexable' => 'toot:indexable',
114 47 ),
115 48 );
116 49
117 50 /**
118 - * The default types for Actors.
119 - *
120 - * @see https://www.w3.org/TR/activitystreams-vocabulary/#actor-types
121 - *
122 - * @var array
123 - */
124 - const TYPES = array(
125 - 'Application',
126 - 'Group',
127 - 'Organization',
128 - 'Person',
129 - 'Service',
130 - );
131 -
132 - /**
133 - * The type of the object.
134 - *
135 51 * @var string
136 52 */
137 53 protected $type;
138 54
@@ -141,9 +57,10 @@
141 57 * all the messages received by the actor.
142 58 *
143 59 * @see https://www.w3.org/TR/activitypub/#inbox
144 60 *
145 - * @var string|null
61 + * @var string
62 + * | null
146 63 */
147 64 protected $inbox;
148 65
149 66 /**
@@ -151,9 +68,10 @@
151 68 * all the messages produced by the actor.
152 69 *
153 70 * @see https://www.w3.org/TR/activitypub/#outbox
154 71 *
155 - * @var string|null
72 + * @var string
73 + * | null
156 74 */
157 75 protected $outbox;
158 76
159 77 /**
@@ -218,15 +136,16 @@
218 136 */
219 137 protected $endpoints;
220 138
221 139 /**
222 - * 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
223 141 * practice to handle an actor public key with a publicKey array:
224 142 * [
225 - * 'id' => 'https://my-example.com/actor#main-key'
226 - * 'owner' => 'https://my-example.com/actor',
143 + * 'id' => 'https://my-example.com/actor#main-key'
144 + * 'owner' => 'https://my-example.com/actor',
227 145 * 'publicKeyPem' => '-----BEGIN PUBLIC KEY-----
228 - * [...]
146 + * MIIBI [...]
147 + * DQIDAQAB
229 148 * -----END PUBLIC KEY-----'
230 149 * ]
231 150 *
232 151 * @see https://www.w3.org/wiki/SocialCG/ActivityPub/Authentication_Authorization#Signing_requests_using_HTTP_Signatures
@@ -235,10 +154,10 @@
235 154 */
236 155 protected $public_key;
237 156
238 157 /**
239 - * It's not part of the ActivityPub protocol, but it's a quite common
240 - * 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
241 160 * automatically accepted, but will instead require you to manually
242 161 * approve them.
243 162 *
244 163 * WordPress does only support 'false' at the moment.
@@ -246,127 +165,8 @@
246 165 * @see https://docs.joinmastodon.org/spec/activitypub/#as
247 166 *
248 167 * @context as:manuallyApprovesFollowers
249 168 *
250 - * @var boolean|null
169 + * @var boolean
251 170 */
252 171 protected $manually_approves_followers = false;
253 -
254 - /**
255 - * Domains allowed to use `fediverse:creator` for this actor in
256 - * published articles.
257 - *
258 - * @see https://blog.joinmastodon.org/2024/07/highlighting-journalism-on-mastodon/
259 - *
260 - * @var array|null
261 - */
262 - protected $attribution_domains = null;
263 -
264 - /**
265 - * The target of the actor.
266 - *
267 - * @var string|null
268 - */
269 - protected $moved_to;
270 -
271 - /**
272 - * The alsoKnownAs of the actor.
273 - *
274 - * @var array|null
275 - */
276 - protected $also_known_as;
277 -
278 - /**
279 - * The Featured-Posts.
280 - *
281 - * @see https://docs.joinmastodon.org/spec/activitypub/#featured
282 - *
283 - * @context {
284 - * "@id": "http://joinmastodon.org/ns#featured",
285 - * "@type": "@id"
286 - * }
287 - *
288 - * @var string|null
289 - */
290 - protected $featured;
291 -
292 - /**
293 - * The Featured-Tags.
294 - *
295 - * @see https://docs.joinmastodon.org/spec/activitypub/#featuredTags
296 - *
297 - * @context {
298 - * "@id": "http://joinmastodon.org/ns#featuredTags",
299 - * "@type": "@id"
300 - * }
301 - *
302 - * @var string|null
303 - */
304 - protected $featured_tags;
305 -
306 - /**
307 - * Whether the User is discoverable.
308 - *
309 - * @see https://docs.joinmastodon.org/spec/activitypub/#discoverable
310 - *
311 - * @context http://joinmastodon.org/ns#discoverable
312 - *
313 - * @var boolean|null
314 - */
315 - protected $discoverable;
316 -
317 - /**
318 - * Whether the User is indexable.
319 - *
320 - * @see https://docs.joinmastodon.org/spec/activitypub/#indexable
321 - *
322 - * @context http://joinmastodon.org/ns#indexable
323 - *
324 - * @var boolean|null
325 - */
326 - protected $indexable;
327 -
328 - /**
329 - * The WebFinger Resource.
330 - *
331 - * @see https://codeberg.org/fediverse/fep/src/branch/main/fep/2c59/fep-2c59.md
332 - *
333 - * @var string|null
334 - */
335 - protected $webfinger;
336 -
337 - /**
338 - * URL to the Moderators endpoint.
339 - *
340 - * @see https://join-lemmy.org/docs/contributors/05-federation.html
341 - *
342 - * @var string|null
343 - */
344 - protected $moderators;
345 -
346 - /**
347 - * Restrict posting to mods.
348 - *
349 - * @see https://join-lemmy.org/docs/contributors/05-federation.html
350 - *
351 - * @var boolean|null
352 - */
353 - protected $posting_restricted_to_mods;
354 -
355 - /**
356 - * Listing Implemented Specifications on the Application Actor
357 - *
358 - * @see https://codeberg.org/fediverse/fep/src/branch/main/fep/844e/fep-844e.md
359 - *
360 - * @var array|null
361 - */
362 - protected $implements;
363 -
364 - /**
365 - * Whether the User is invisible.
366 - *
367 - * @see https://litepub.social/
368 - *
369 - * @var boolean|null
370 - */
371 - protected $invisible = null;
372 172 }