1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495 |
- <?php
- namespace App\Models;
- use Illuminate\Database\Eloquent\Factories\HasFactory;
- use Illuminate\Database\Eloquent\Model;
- class InstanceActor extends Model
- {
- use HasFactory;
- const PROFILE_BASE = '/i/actor';
- const KEY_ID = '/i/actor#main-key';
- const PROFILE_KEY = 'federation:_v3:instance:actor:profile';
- const PKI_PUBLIC = 'federation:_v1:instance:actor:profile:pki_public';
- const PKI_PRIVATE = 'federation:_v1:instance:actor:profile:pki_private';
- public function permalink($suffix = '')
- {
- return url(self::PROFILE_BASE . $suffix);
- }
- public function getActor()
- {
- return [
- "@context" => [
- "https://www.w3.org/ns/activitystreams",
- "https://w3id.org/security/v1",
- [
- "manuallyApprovesFollowers" => "as:manuallyApprovesFollowers",
- "toot" => "http://joinmastodon.org/ns#",
- "featured" => [
- "@id" => "toot:featured",
- "@type" => "@id"
- ],
- "featuredTags" => [
- "@id" => "toot:featuredTags",
- "@type" => "@id"
- ],
- "alsoKnownAs" => [
- "@id" => "as:alsoKnownAs",
- "@type" => "@id"
- ],
- "movedTo" => [
- "@id" => "as:movedTo",
- "@type" => "@id"
- ],
- "schema" => "http://schema.org#",
- "PropertyValue" => "schema:PropertyValue",
- "value" => "schema:value",
- "discoverable" => "toot:discoverable",
- "Device" => "toot:Device",
- "Ed25519Signature" => "toot:Ed25519Signature",
- "Ed25519Key" => "toot:Ed25519Key",
- "Curve25519Key" => "toot:Curve25519Key",
- "EncryptedMessage" => "toot:EncryptedMessage",
- "publicKeyBase64" => "toot:publicKeyBase64",
- "deviceId" => "toot:deviceId",
- "claim" => [
- "@type" => "@id",
- "@id" => "toot:claim"
- ],
- "fingerprintKey" => [
- "@type" => "@id",
- "@id" => "toot:fingerprintKey"
- ],
- "identityKey" => [
- "@type" => "@id",
- "@id" => "toot:identityKey"
- ],
- "devices" => [
- "@type" => "@id",
- "@id" => "toot:devices"
- ],
- "messageFranking" => "toot:messageFranking",
- "messageType" => "toot:messageType",
- "cipherText" => "toot:cipherText",
- "suspended" => "toot:suspended"
- ]
- ],
- 'id' => $this->permalink(),
- 'type' => 'Application',
- 'inbox' => $this->permalink('/inbox'),
- 'outbox' => $this->permalink('/outbox'),
- 'preferredUsername' => config('pixelfed.domain.app'),
- 'publicKey' => [
- 'id' => $this->permalink('#main-key'),
- 'owner' => $this->permalink(),
- 'publicKeyPem' => $this->public_key
- ],
- 'manuallyApprovesFollowers' => true,
- 'url' => url('/site/kb/instance-actor')
- ];
- }
- }
|