From 4c7bde1400820f36caf8b2a5374007384c3018f3 Mon Sep 17 00:00:00 2001 From: winter Date: Mon, 9 Dec 2024 21:31:54 +0000 Subject: rename to Digitigrade / PawPub :3 --- WpfTest/Model/Actor.php | 90 ------------------------------------------------- 1 file changed, 90 deletions(-) delete mode 100644 WpfTest/Model/Actor.php (limited to 'WpfTest/Model/Actor.php') diff --git a/WpfTest/Model/Actor.php b/WpfTest/Model/Actor.php deleted file mode 100644 index a745a96..0000000 --- a/WpfTest/Model/Actor.php +++ /dev/null @@ -1,90 +0,0 @@ -uri]) != null) - return 'uri = ' . $db->quote($this->uri); - if (self::findWhere('id = ?', [$this->id]) != null) - return "id = $this->id"; - return null; - } - - public static function findLocalByHandle(string $handle): ?self { - return self::findWhere('is_local = true AND handle = ?', [$handle]); - } - - public static function findByWebfinger(string $acct, bool $autoSave = true, bool $forceRefetch = false): ?self { - // normalise uri - if (!str_starts_with($acct, 'acct:')) { - if (str_starts_with($acct, '@')) { - $acct = substr($acct, 1); - } - $acct = "acct:$acct"; - } - // fetch it - $domain = explode('@', $acct, 2)[1]; - $data = @file_get_contents("https://$domain/.well-known/webfinger?resource=$acct", - context: stream_context_create([ - 'http' => ['header' => 'Accept: application/jrd+json, application/json'] - ]) - ); - if ($data === false) - return null; - $data = json_decode($data); - if ($data === null) - return null; - // find the right link - if (!isset($data->links)) - return null; - $matching = array_filter($data->links, function (\stdClass $linkObj) { - return $linkObj->rel == self::REL_URI; - }); - if (count($matching) == 0) - return null; - return self::findByUri($matching[0]->href, $autoSave, $forceRefetch); - } - - public function jsonSerialize(): array { - return [ - 'type' => 'actor', - 'self' => path_to_uri("/user/$this->handle"), - 'created' => $this->created?->format('c'), - 'modified' => $this->modified?->format('c'), - 'homepage' => path_to_uri("/$this->handle"), - 'handle' => $this->handle, - 'displayName' => $this->displayName, - 'bio' => $this->bio, - 'pronouns' => $this->pronouns, - 'automated' => $this->automated, - 'endpoints' => [ - 'basicFeed' => path_to_uri("/user/$this->handle/basicFeed"), - 'fullFeed' => path_to_uri("/user/$this->handle/fullFeed") - ] - ]; - } - - public function hydrate() { - $this->endpoints = ActorEndpoints::findWhere('actor_id = ?', [$this->id]); - } -} \ No newline at end of file -- cgit v1.3