2023-06-23 14:54:29 +02:00
|
|
|
<?php
|
|
|
|
/**
|
|
|
|
* Inspired by the PHP ActivityPub Library by @Landrok
|
|
|
|
*
|
|
|
|
* @link https://github.com/landrok/activitypub
|
|
|
|
*/
|
|
|
|
|
|
|
|
namespace Activitypub\Activity;
|
|
|
|
|
2023-07-03 11:20:44 +02:00
|
|
|
/**
|
|
|
|
* \Activitypub\Activity\Actor is an implementation of
|
|
|
|
* one an Activity Streams Actor.
|
|
|
|
*
|
|
|
|
* Represents an individual actor.
|
|
|
|
*
|
|
|
|
* @see https://www.w3.org/TR/activitystreams-vocabulary/#actor-types
|
|
|
|
*/
|
2023-06-26 11:08:04 +02:00
|
|
|
class Actor extends Base_Object {
|
2023-06-23 14:54:29 +02:00
|
|
|
/**
|
|
|
|
* @var string
|
|
|
|
*/
|
2023-12-12 17:00:35 +01:00
|
|
|
protected $type = 'Group';
|
2023-06-23 14:54:29 +02:00
|
|
|
|
|
|
|
/**
|
|
|
|
* A reference to an ActivityStreams OrderedCollection comprised of
|
|
|
|
* all the messages received by the actor.
|
|
|
|
*
|
|
|
|
* @see https://www.w3.org/TR/activitypub/#inbox
|
|
|
|
*
|
|
|
|
* @var string
|
|
|
|
* | null
|
|
|
|
*/
|
|
|
|
protected $inbox;
|
|
|
|
|
|
|
|
/**
|
|
|
|
* A reference to an ActivityStreams OrderedCollection comprised of
|
|
|
|
* all the messages produced by the actor.
|
|
|
|
*
|
|
|
|
* @see https://www.w3.org/TR/activitypub/#outbox
|
|
|
|
*
|
|
|
|
* @var string
|
|
|
|
* | null
|
|
|
|
*/
|
|
|
|
protected $outbox;
|
|
|
|
|
|
|
|
/**
|
|
|
|
* A link to an ActivityStreams collection of the actors that this
|
|
|
|
* actor is following.
|
|
|
|
*
|
|
|
|
* @see https://www.w3.org/TR/activitypub/#following
|
|
|
|
*
|
|
|
|
* @var string
|
|
|
|
*/
|
|
|
|
protected $following;
|
|
|
|
|
|
|
|
/**
|
|
|
|
* A link to an ActivityStreams collection of the actors that
|
|
|
|
* follow this actor.
|
|
|
|
*
|
|
|
|
* @see https://www.w3.org/TR/activitypub/#followers
|
|
|
|
*
|
|
|
|
* @var string
|
|
|
|
*/
|
|
|
|
protected $followers;
|
|
|
|
|
|
|
|
/**
|
|
|
|
* A link to an ActivityStreams collection of objects this actor has
|
|
|
|
* liked.
|
|
|
|
*
|
|
|
|
* @see https://www.w3.org/TR/activitypub/#liked
|
|
|
|
*
|
|
|
|
* @var string
|
|
|
|
*/
|
|
|
|
protected $liked;
|
|
|
|
|
|
|
|
/**
|
|
|
|
* A list of supplementary Collections which may be of interest.
|
|
|
|
*
|
|
|
|
* @see https://www.w3.org/TR/activitypub/#streams-property
|
|
|
|
*
|
|
|
|
* @var array
|
|
|
|
*/
|
|
|
|
protected $streams = array();
|
|
|
|
|
|
|
|
/**
|
|
|
|
* A short username which may be used to refer to the actor, with no
|
|
|
|
* uniqueness guarantees.
|
|
|
|
*
|
|
|
|
* @see https://www.w3.org/TR/activitypub/#preferredUsername
|
|
|
|
*
|
|
|
|
* @var string|null
|
|
|
|
*/
|
|
|
|
protected $preferred_username;
|
|
|
|
|
|
|
|
/**
|
|
|
|
* A JSON object which maps additional typically server/domain-wide
|
|
|
|
* endpoints which may be useful either for this actor or someone
|
|
|
|
* referencing this actor. This mapping may be nested inside the
|
|
|
|
* actor document as the value or may be a link to a JSON-LD
|
|
|
|
* document with these properties.
|
|
|
|
*
|
|
|
|
* @see https://www.w3.org/TR/activitypub/#endpoints
|
|
|
|
*
|
|
|
|
* @var string|array|null
|
|
|
|
*/
|
|
|
|
protected $endpoints;
|
|
|
|
|
|
|
|
/**
|
|
|
|
* It's not part of the ActivityPub protocol but it's a quite common
|
|
|
|
* practice to handle an actor public key with a publicKey array:
|
|
|
|
* [
|
|
|
|
* 'id' => 'https://my-example.com/actor#main-key'
|
|
|
|
* 'owner' => 'https://my-example.com/actor',
|
|
|
|
* 'publicKeyPem' => '-----BEGIN PUBLIC KEY-----
|
|
|
|
* MIIBI [...]
|
|
|
|
* DQIDAQAB
|
|
|
|
* -----END PUBLIC KEY-----'
|
|
|
|
* ]
|
|
|
|
*
|
|
|
|
* @see https://www.w3.org/wiki/SocialCG/ActivityPub/Authentication_Authorization#Signing_requests_using_HTTP_Signatures
|
|
|
|
*
|
|
|
|
* @var string|array|null
|
|
|
|
*/
|
|
|
|
protected $public_key;
|
2023-06-28 14:22:27 +02:00
|
|
|
|
|
|
|
/**
|
|
|
|
* It's not part of the ActivityPub protocol but it's a quite common
|
|
|
|
* practice to lock an account. If anabled, new followers will not be
|
|
|
|
* automatically accepted, but will instead require you to manually
|
|
|
|
* approve them.
|
|
|
|
*
|
|
|
|
* WordPress does only support 'false' at the moment.
|
|
|
|
*
|
|
|
|
* @see https://docs.joinmastodon.org/spec/activitypub/#as
|
|
|
|
*
|
|
|
|
* @var boolean
|
|
|
|
*/
|
|
|
|
protected $manually_approves_followers = false;
|
2023-06-23 14:54:29 +02:00
|
|
|
}
|