diff --git a/CHANGELOG.md b/CHANGELOG.md index fa3d93138..2135aa216 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -31,6 +31,8 @@ - Update VerifyCsrfToken middleware, add oauth token. Fixes #5426 ([79ebbc2d](https://github.com/pixelfed/pixelfed/commit/79ebbc2d)) - Update AdminSettingsController, increase max photo size limit from 50MB to 1GB ([aa448354](https://github.com/pixelfed/pixelfed/commit/aa448354)) - Update BearerTokenResponse, return scopes in /oauth/token endpoint. Fixes #5286 ([d8f5c302](https://github.com/pixelfed/pixelfed/commit/d8f5c302)) +- Update hashtag component, fix missing video thumbnails ([witten](https://github.com/witten)) ([#5427](https://github.com/pixelfed/pixelfed/pull/5427)) +- Update AP Status Transformer, fix inReplyTo. Fixes #5409 ([83cc932f](https://github.com/pixelfed/pixelfed/commit/83cc932f)) - ([](https://github.com/pixelfed/pixelfed/commit/)) ## [v0.12.4 (2024-11-08)](https://github.com/pixelfed/pixelfed/compare/v0.12.4...dev) diff --git a/app/Transformer/ActivityPub/StatusTransformer.php b/app/Transformer/ActivityPub/StatusTransformer.php index c7f61b88b..86beb321c 100644 --- a/app/Transformer/ActivityPub/StatusTransformer.php +++ b/app/Transformer/ActivityPub/StatusTransformer.php @@ -3,6 +3,7 @@ namespace App\Transformer\ActivityPub; use App\Services\MediaService; +use App\Services\StatusService; use App\Status; use App\Util\Lexer\Autolink; use League\Fractal; @@ -11,7 +12,16 @@ class StatusTransformer extends Fractal\TransformerAbstract { public function transform(Status $status) { - $content = $status->caption ? nl2br(Autolink::create()->autolink($status->caption)) : ""; + $content = $status->caption ? nl2br(Autolink::create()->autolink($status->caption)) : ''; + + $inReplyTo = null; + + if ($status->in_reply_to_id) { + $reply = StatusService::get($status->in_reply_to_id, true); + if ($reply && isset($reply['url'])) { + $inReplyTo = $reply['url']; + } + } return [ '@context' => [ @@ -25,30 +35,20 @@ class StatusTransformer extends Fractal\TransformerAbstract ], ], 'id' => $status->url(), - - // TODO: handle other types 'type' => 'Note', - - // XXX: CW Title 'summary' => null, 'content' => $content, - 'inReplyTo' => null, - - // TODO: fix date format + 'inReplyTo' => $inReplyTo, 'published' => $status->created_at->toAtomString(), 'url' => $status->url(), 'attributedTo' => $status->profile->permalink(), 'to' => [ - // TODO: handle proper scope 'https://www.w3.org/ns/activitystreams#Public', ], 'cc' => [ - // TODO: add cc's $status->profile->permalink('/followers'), ], 'sensitive' => (bool) $status->is_nsfw, - 'atomUri' => $status->url(), - 'inReplyToAtomUri' => null, 'attachment' => MediaService::activitypub($status->id), 'tag' => [], 'location' => $status->place_id ? [