From e0468ac914d9526625a583335318b20c11ae2690 Mon Sep 17 00:00:00 2001 From: Michael Date: Tue, 8 Mar 2022 18:32:09 +0000 Subject: [PATCH] API: Improve support for the summary field --- src/Factory/Api/Mastodon/Status.php | 4 ++-- src/Module/Api/Mastodon/Statuses.php | 4 +++- src/Object/Api/Mastodon/Status.php | 4 ++-- src/Protocol/ActivityPub/Transmitter.php | 1 + 4 files changed, 8 insertions(+), 5 deletions(-) diff --git a/src/Factory/Api/Mastodon/Status.php b/src/Factory/Api/Mastodon/Status.php index 002a48e6aa..9015591ad3 100644 --- a/src/Factory/Api/Mastodon/Status.php +++ b/src/Factory/Api/Mastodon/Status.php @@ -76,8 +76,8 @@ class Status extends BaseFactory */ public function createFromUriId(int $uriId, $uid = 0): \Friendica\Object\Api\Mastodon\Status { - $fields = ['uri-id', 'uid', 'author-id', 'author-link', 'starred', 'app', 'title', 'body', 'raw-body', 'created', 'network', - 'thr-parent-id', 'parent-author-id', 'language', 'uri', 'plink', 'private', 'vid', 'gravity']; + $fields = ['uri-id', 'uid', 'author-id', 'author-link', 'starred', 'app', 'title', 'body', 'raw-body', 'content-warning', + 'created', 'network', 'thr-parent-id', 'parent-author-id', 'language', 'uri', 'plink', 'private', 'vid', 'gravity']; $item = Post::selectFirst($fields, ['uri-id' => $uriId, 'uid' => [0, $uid]], ['order' => ['uid' => true]]); if (!$item) { $mail = DBA::selectFirst('mail', ['id'], ['uri-id' => $uriId, 'uid' => $uid]); diff --git a/src/Module/Api/Mastodon/Statuses.php b/src/Module/Api/Mastodon/Statuses.php index 4cb9bdb1dc..50e0eaa725 100644 --- a/src/Module/Api/Mastodon/Statuses.php +++ b/src/Module/Api/Mastodon/Statuses.php @@ -69,7 +69,6 @@ class Statuses extends BaseApi $item['verb'] = Activity::POST; $item['contact-id'] = $owner['id']; $item['author-id'] = $item['owner-id'] = Contact::getPublicIdByUserId($uid); - $item['title'] = $request['spoiler_text']; $item['body'] = $body; if (!empty(self::getCurrentApplication()['name'])) { @@ -141,14 +140,17 @@ class Statuses extends BaseApi if ($request['in_reply_to_id']) { $parent = Post::selectFirst(['uri'], ['uri-id' => $request['in_reply_to_id'], 'uid' => [0, $uid]]); + $item['thr-parent'] = $parent['uri']; $item['gravity'] = GRAVITY_COMMENT; $item['object-type'] = Activity\ObjectType::COMMENT; + $item['body'] = '[abstract=' . Protocol::ACTIVITYPUB . ']' . $request['spoiler_text'] . "[/abstract]\n" . $item['body']; } else { self::checkThrottleLimit(); $item['gravity'] = GRAVITY_PARENT; $item['object-type'] = Activity\ObjectType::NOTE; + $item['title'] = $request['spoiler_text']; } $item = DI::contentItem()->expandTags($item, $request['visibility'] == 'direct'); diff --git a/src/Object/Api/Mastodon/Status.php b/src/Object/Api/Mastodon/Status.php index 987cf00e6a..12fef7ac8f 100644 --- a/src/Object/Api/Mastodon/Status.php +++ b/src/Object/Api/Mastodon/Status.php @@ -107,8 +107,8 @@ class Status extends BaseDataTransferObject $this->in_reply_to_account_id = (string)$item['parent-author-id']; } - $this->sensitive = $sensitive; - $this->spoiler_text = $item['title']; + $this->sensitive = $sensitive; + $this->spoiler_text = $item['title'] ?: $item['content-warning']; $visibility = ['public', 'private', 'unlisted']; $this->visibility = $visibility[$item['private']]; diff --git a/src/Protocol/ActivityPub/Transmitter.php b/src/Protocol/ActivityPub/Transmitter.php index c65265396e..47c3cdaab5 100644 --- a/src/Protocol/ActivityPub/Transmitter.php +++ b/src/Protocol/ActivityPub/Transmitter.php @@ -911,6 +911,7 @@ class Transmitter $mail['title'] = ''; } + $mail['content-warning'] = ''; $mail['author-link'] = $mail['owner-link'] = $mail['from-url']; $mail['owner-id'] = $mail['author-id']; $mail['allow_cid'] = '<'.$mail['contact-id'].'>'; -- 2.39.5