From f10821f915dda47aa5cc06b8a7bd46510d86d7cd Mon Sep 17 00:00:00 2001 From: Hank Grabowski Date: Fri, 17 Feb 2023 17:42:55 -0500 Subject: [PATCH] Add friendica->title input to Mastodon Status POST API for explicitly setting title - update logic so that if it is provided with a spoiler text then the spoiler text is always used as actual spoiler text and the title is the title. --- src/Module/Api/Mastodon/Statuses.php | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/src/Module/Api/Mastodon/Statuses.php b/src/Module/Api/Mastodon/Statuses.php index c803835d1..602087025 100644 --- a/src/Module/Api/Mastodon/Statuses.php +++ b/src/Module/Api/Mastodon/Statuses.php @@ -107,6 +107,7 @@ class Statuses extends BaseApi 'visibility' => '', // Visibility of the posted status. One of: "public", "unlisted", "private" or "direct". 'scheduled_at' => '', // ISO 8601 Datetime at which to schedule a status. Providing this paramter will cause ScheduledStatus to be returned instead of Status. Must be at least 5 minutes in the future. 'language' => '', // ISO 639 language code for this status. + 'friendica' => [], // Friendica extensions to the standard Mastodon API spec ], $request); $owner = User::getOwnerDataById($uid); @@ -208,8 +209,13 @@ class Statuses extends BaseApi $item['quote-uri-id'] = $request['quote_id']; } + $has_title = array_key_exists('title', $request['friendica']); + if ($has_title != null && !$request['in_reply_to_id']) { + $item['title'] = $request['friendica']['title']; + } + if (!empty($request['spoiler_text'])) { - if (!$request['in_reply_to_id'] && DI::pConfig()->get($uid, 'system', 'api_spoiler_title', true)) { + if (!$has_title && !$request['in_reply_to_id'] && DI::pConfig()->get($uid, 'system', 'api_spoiler_title', true)) { $item['title'] = $request['spoiler_text']; } else { $item['body'] = '[abstract=' . Protocol::ACTIVITYPUB . ']' . $request['spoiler_text'] . "[/abstract]\n" . $item['body'];