Update Webfinger util, add avatar entity. Fixes #1629

This commit is contained in:
Daniel Supernault 2024-01-03 04:11:29 -07:00
parent 5f5cb0616d
commit bca2484994
No known key found for this signature in database
GPG key ID: 23740873EE6F76A1

View file

@ -11,6 +11,18 @@ class Webfinger
public function __construct($user) public function __construct($user)
{ {
$avatar = $user ? $user->avatarUrl() : url('/storage/avatars/default.jpg');
$avatarPath = parse_url($avatar, PHP_URL_PATH);
$extension = pathinfo($avatarPath, PATHINFO_EXTENSION);
$mimeTypes = [
'jpg' => 'image/jpeg',
'jpeg' => 'image/jpeg',
'png' => 'image/png',
'gif' => 'image/gif',
'svg' => 'image/svg',
];
$avatarType = $mimeTypes[$extension] ?? 'application/octet-stream';
$this->subject = 'acct:'.$user->username.'@'.parse_url(config('app.url'), PHP_URL_HOST); $this->subject = 'acct:'.$user->username.'@'.parse_url(config('app.url'), PHP_URL_HOST);
$this->aliases = [ $this->aliases = [
$user->url(), $user->url(),
@ -32,6 +44,11 @@ class Webfinger
'type' => 'application/activity+json', 'type' => 'application/activity+json',
'href' => $user->permalink(), 'href' => $user->permalink(),
], ],
[
'rel' => 'http://webfinger.net/rel/avatar',
'type' => $avatarType,
'href' => $avatar,
],
]; ];
} }