]> git.mxchange.org Git - friendica.git/commitdiff
Issue 12702: Let the user decide how to handle spoiler texts
authorMichael <heluecht@pirati.ca>
Sun, 22 Jan 2023 17:10:31 +0000 (17:10 +0000)
committerMichael <heluecht@pirati.ca>
Sun, 22 Jan 2023 17:10:31 +0000 (17:10 +0000)
src/Module/Api/Mastodon/Statuses.php
src/Module/Settings/Connectors.php
view/lang/C/messages.po
view/templates/settings/connectors.tpl
view/theme/frio/templates/settings/connectors.tpl

index b7b3ff14c4e8876a5d20e0511348e054776d11d1..4c161193e932663f04a8a66c82e64c68238665b3 100644 (file)
@@ -71,17 +71,17 @@ class Statuses extends BaseApi
                }
 
                // The imput is defined as text. So we can use Markdown for some enhancements
-               $item = ['body' => Markdown::toBBCode($request['status']), 'app' => $this->getApp()];
+               $item = ['body' => Markdown::toBBCode($request['status']), 'app' => $this->getApp(), 'title' => ''];
 
                if (!empty($request['language'])) {
                        $item['language'] = json_encode([$request['language'] => 1]);
                }
 
                if (!empty($request['spoiler_text'])) {
-                       if ($request['in_reply_to_id'] != $post['uri-id']) {
-                               $item['body'] = '[abstract=' . Protocol::ACTIVITYPUB . ']' . $request['spoiler_text'] . "[/abstract]\n" . $item['body'];
-                       } else {
+                       if (($request['in_reply_to_id'] == $post['uri-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'];
                        }
                }
 
@@ -119,6 +119,7 @@ class Statuses extends BaseApi
                $item['verb']       = Activity::POST;
                $item['contact-id'] = $owner['id'];
                $item['author-id']  = $item['owner-id'] = Contact::getPublicIdByUserId($uid);
+               $item['title']      = '';
                $item['body']       = $body;
                $item['app']        = $this->getApp();
 
@@ -187,13 +188,19 @@ class Statuses extends BaseApi
                        $item['thr-parent']  = $parent['uri'];
                        $item['gravity']     = Item::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']     = Item::GRAVITY_PARENT;
                        $item['object-type'] = Activity\ObjectType::NOTE;
-                       $item['title']       = $request['spoiler_text'];
+               }
+
+               if (!empty($request['spoiler_text'])) {
+                       if (!$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'];
+                       }
                }
 
                $item = DI::contentItem()->expandTags($item, $request['visibility'] == 'direct');
index 7c053e1681ef5e607a50b4cd39b8fc7f06413e4e..a48c9f80186bbd7413a93986f4b3de584254ee8d 100644 (file)
@@ -72,6 +72,7 @@ class Connectors extends BaseSettings
                        $this->pconfig->set($this->session->getLocalUserId(), 'system', 'no_intelligent_shortening', !intval($request['enable_smart_shortening']));
                        $this->pconfig->set($this->session->getLocalUserId(), 'system', 'simple_shortening', intval($request['simple_shortening']));
                        $this->pconfig->set($this->session->getLocalUserId(), 'system', 'attach_link_title', intval($request['attach_link_title']));
+                       $this->pconfig->set($this->session->getLocalUserId(), 'system', 'api_spoiler_title', intval($request['api_spoiler_title']));
                        $this->pconfig->set($this->session->getLocalUserId(), 'ostatus', 'legacy_contact', $request['legacy_contact']);
                } elseif (!empty($request['mail-submit']) && function_exists('imap_open') && !$this->config->get('system', 'imap_disabled')) {
                        $mail_server       =                 $request['mail_server'] ?? '';
@@ -134,6 +135,7 @@ class Connectors extends BaseSettings
                $enable_smart_shortening = !intval($this->pconfig->get($this->session->getLocalUserId(), 'system', 'no_intelligent_shortening'));
                $simple_shortening       =  intval($this->pconfig->get($this->session->getLocalUserId(), 'system', 'simple_shortening'));
                $attach_link_title       =  intval($this->pconfig->get($this->session->getLocalUserId(), 'system', 'attach_link_title'));
+               $api_spoiler_title       =  intval($this->pconfig->get($this->session->getLocalUserId(), 'system', 'api_spoiler_title', true));
                $legacy_contact          =         $this->pconfig->get($this->session->getLocalUserId(), 'ostatus', 'legacy_contact');
 
                if (!empty($legacy_contact)) {
@@ -218,8 +220,8 @@ class Connectors extends BaseSettings
                        '$enable_smart_shortening' => ['enable_smart_shortening', $this->t('Enable intelligent shortening'), $enable_smart_shortening, $this->t('Normally the system tries to find the best link to add to shortened posts. If disabled, every shortened post will always point to the original friendica post.')],
                        '$simple_shortening'       => ['simple_shortening', $this->t('Enable simple text shortening'), $simple_shortening, $this->t('Normally the system shortens posts at the next line feed. If this option is enabled then the system will shorten the text at the maximum character limit.')],
                        '$attach_link_title'       => ['attach_link_title', $this->t('Attach the link title'), $attach_link_title, $this->t('When activated, the title of the attached link will be added as a title on posts to Diaspora. This is mostly helpful with "remote-self" contacts that share feed content.')],
+                       '$api_spoiler_title'       => ['api_spoiler_title', $this->t('API: Use spoiler field as title'), $api_spoiler_title, $this->t('When activated, the "spoiler_text" field in the API will be used for the title on staring posts. When deactivated it will be used for spoiler text. For comments it will be used for spoiler text in any case.')],
                        '$legacy_contact'          => ['legacy_contact', $this->t('Your legacy ActivityPub/GNU Social account'), $legacy_contact, $this->t('If you enter your old account name from an ActivityPub based system or your GNU Social/Statusnet account name here (in the format user@domain.tld), your contacts will be added automatically. The field will be emptied when done.')],
-
                        '$repair_ostatus_url'  => 'ostatus/repair',
                        '$repair_ostatus_text' => $this->t('Repair OStatus subscriptions'),
 
index 7634bc8e8759a016364099b991d6e2dfb7b85021..848fd9ce5a99600fdd374aa157632c07e9d8fe9b 100644 (file)
@@ -8,7 +8,7 @@ msgid ""
 msgstr ""
 "Project-Id-Version: 2023.03-dev\n"
 "Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2023-01-21 09:22-0500\n"
+"POT-Creation-Date: 2023-01-22 17:07+0000\n"
 "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
 "Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
 "Language-Team: LANGUAGE <LL@li.org>\n"
@@ -625,7 +625,7 @@ msgstr ""
 #: src/Module/Moderation/Users/Active.php:136
 #: src/Module/Moderation/Users/Blocked.php:136
 #: src/Module/Moderation/Users/Index.php:151
-#: src/Module/Settings/Connectors.php:239
+#: src/Module/Settings/Connectors.php:241
 msgid "Delete"
 msgstr ""
 
@@ -653,7 +653,7 @@ msgstr ""
 msgid "No system theme config value set."
 msgstr ""
 
-#: src/App.php:592
+#: src/App.php:573
 msgid "Apologies but the website is unavailable at the moment."
 msgstr ""
 
@@ -1825,7 +1825,7 @@ msgstr ""
 msgid "See all notifications"
 msgstr ""
 
-#: src/Content/Nav.php:315 src/Module/Settings/Connectors.php:239
+#: src/Content/Nav.php:315 src/Module/Settings/Connectors.php:241
 msgid "Mark as seen"
 msgstr ""
 
@@ -3663,8 +3663,8 @@ msgstr ""
 #: src/Module/Admin/Logs/Settings.php:81 src/Module/Admin/Site.php:438
 #: src/Module/Admin/Themes/Index.php:113 src/Module/Admin/Tos.php:86
 #: src/Module/Settings/Account.php:560 src/Module/Settings/Addons.php:78
-#: src/Module/Settings/Connectors.php:156
-#: src/Module/Settings/Connectors.php:241
+#: src/Module/Settings/Connectors.php:158
+#: src/Module/Settings/Connectors.php:243
 #: src/Module/Settings/Delegation.php:169 src/Module/Settings/Display.php:247
 #: src/Module/Settings/Features.php:76
 msgid "Save Settings"
@@ -5476,7 +5476,7 @@ msgstr ""
 msgid "Display"
 msgstr ""
 
-#: src/Module/BaseSettings.php:127 src/Module/Settings/Connectors.php:200
+#: src/Module/BaseSettings.php:127 src/Module/Settings/Connectors.php:202
 msgid "Social Networks"
 msgstr ""
 
@@ -9365,73 +9365,73 @@ msgstr ""
 msgid "No Addon settings configured"
 msgstr ""
 
-#: src/Module/Settings/Connectors.php:118
+#: src/Module/Settings/Connectors.php:119
 msgid "Failed to connect with email account using the settings provided."
 msgstr ""
 
-#: src/Module/Settings/Connectors.php:162
-#: src/Module/Settings/Connectors.php:163
+#: src/Module/Settings/Connectors.php:164
+#: src/Module/Settings/Connectors.php:165
 msgid "Diaspora (Socialhome, Hubzilla)"
 msgstr ""
 
-#: src/Module/Settings/Connectors.php:162
-#: src/Module/Settings/Connectors.php:166
+#: src/Module/Settings/Connectors.php:164
+#: src/Module/Settings/Connectors.php:168
 #, php-format
 msgid "Built-in support for %s connectivity is enabled"
 msgstr ""
 
-#: src/Module/Settings/Connectors.php:163
 #: src/Module/Settings/Connectors.php:165
+#: src/Module/Settings/Connectors.php:167
 #, php-format
 msgid "Built-in support for %s connectivity is disabled"
 msgstr ""
 
-#: src/Module/Settings/Connectors.php:165
-#: src/Module/Settings/Connectors.php:166
+#: src/Module/Settings/Connectors.php:167
+#: src/Module/Settings/Connectors.php:168
 msgid "OStatus (GNU Social)"
 msgstr ""
 
-#: src/Module/Settings/Connectors.php:178
+#: src/Module/Settings/Connectors.php:180
 msgid "Email access is disabled on this site."
 msgstr ""
 
-#: src/Module/Settings/Connectors.php:193
-#: src/Module/Settings/Connectors.php:239
+#: src/Module/Settings/Connectors.php:195
+#: src/Module/Settings/Connectors.php:241
 msgid "None"
 msgstr ""
 
-#: src/Module/Settings/Connectors.php:205
+#: src/Module/Settings/Connectors.php:207
 msgid "General Social Media Settings"
 msgstr ""
 
-#: src/Module/Settings/Connectors.php:208
+#: src/Module/Settings/Connectors.php:210
 msgid "Followed content scope"
 msgstr ""
 
-#: src/Module/Settings/Connectors.php:210
+#: src/Module/Settings/Connectors.php:212
 msgid ""
 "By default, conversations in which your follows participated but didn't "
 "start will be shown in your timeline. You can turn this behavior off, or "
 "expand it to the conversations in which your follows liked a post."
 msgstr ""
 
-#: src/Module/Settings/Connectors.php:212
+#: src/Module/Settings/Connectors.php:214
 msgid "Only conversations my follows started"
 msgstr ""
 
-#: src/Module/Settings/Connectors.php:213
+#: src/Module/Settings/Connectors.php:215
 msgid "Conversations my follows started or commented on (default)"
 msgstr ""
 
-#: src/Module/Settings/Connectors.php:214
+#: src/Module/Settings/Connectors.php:216
 msgid "Any conversation my follows interacted with, including likes"
 msgstr ""
 
-#: src/Module/Settings/Connectors.php:217
+#: src/Module/Settings/Connectors.php:219
 msgid "Enable Content Warning"
 msgstr ""
 
-#: src/Module/Settings/Connectors.php:217
+#: src/Module/Settings/Connectors.php:219
 msgid ""
 "Users on networks like Mastodon or Pleroma are able to set a content warning "
 "field which collapse their post by default. This enables the automatic "
@@ -9439,104 +9439,115 @@ msgid ""
 "affect any other content filtering you eventually set up."
 msgstr ""
 
-#: src/Module/Settings/Connectors.php:218
+#: src/Module/Settings/Connectors.php:220
 msgid "Enable intelligent shortening"
 msgstr ""
 
-#: src/Module/Settings/Connectors.php:218
+#: src/Module/Settings/Connectors.php:220
 msgid ""
 "Normally the system tries to find the best link to add to shortened posts. "
 "If disabled, every shortened post will always point to the original "
 "friendica post."
 msgstr ""
 
-#: src/Module/Settings/Connectors.php:219
+#: src/Module/Settings/Connectors.php:221
 msgid "Enable simple text shortening"
 msgstr ""
 
-#: src/Module/Settings/Connectors.php:219
+#: src/Module/Settings/Connectors.php:221
 msgid ""
 "Normally the system shortens posts at the next line feed. If this option is "
 "enabled then the system will shorten the text at the maximum character limit."
 msgstr ""
 
-#: src/Module/Settings/Connectors.php:220
+#: src/Module/Settings/Connectors.php:222
 msgid "Attach the link title"
 msgstr ""
 
-#: src/Module/Settings/Connectors.php:220
+#: src/Module/Settings/Connectors.php:222
 msgid ""
 "When activated, the title of the attached link will be added as a title on "
 "posts to Diaspora. This is mostly helpful with \"remote-self\" contacts that "
 "share feed content."
 msgstr ""
 
-#: src/Module/Settings/Connectors.php:221
+#: src/Module/Settings/Connectors.php:223
+msgid "API: Use spoiler field as title"
+msgstr ""
+
+#: src/Module/Settings/Connectors.php:223
+msgid ""
+"When activated, the \"spoiler_text\" field in the API will be used for the "
+"title on staring posts. When deactivated it will be used for spoiler text. "
+"For comments it will be used for spoiler text in any case."
+msgstr ""
+
+#: src/Module/Settings/Connectors.php:224
 msgid "Your legacy ActivityPub/GNU Social account"
 msgstr ""
 
-#: src/Module/Settings/Connectors.php:221
+#: src/Module/Settings/Connectors.php:224
 msgid ""
 "If you enter your old account name from an ActivityPub based system or your "
 "GNU Social/Statusnet account name here (in the format user@domain.tld), your "
 "contacts will be added automatically. The field will be emptied when done."
 msgstr ""
 
-#: src/Module/Settings/Connectors.php:224
+#: src/Module/Settings/Connectors.php:226
 msgid "Repair OStatus subscriptions"
 msgstr ""
 
-#: src/Module/Settings/Connectors.php:228
+#: src/Module/Settings/Connectors.php:230
 msgid "Email/Mailbox Setup"
 msgstr ""
 
-#: src/Module/Settings/Connectors.php:229
+#: src/Module/Settings/Connectors.php:231
 msgid ""
 "If you wish to communicate with email contacts using this service "
 "(optional), please specify how to connect to your mailbox."
 msgstr ""
 
-#: src/Module/Settings/Connectors.php:230
+#: src/Module/Settings/Connectors.php:232
 msgid "Last successful email check:"
 msgstr ""
 
-#: src/Module/Settings/Connectors.php:232
+#: src/Module/Settings/Connectors.php:234
 msgid "IMAP server name:"
 msgstr ""
 
-#: src/Module/Settings/Connectors.php:233
+#: src/Module/Settings/Connectors.php:235
 msgid "IMAP port:"
 msgstr ""
 
-#: src/Module/Settings/Connectors.php:234
+#: src/Module/Settings/Connectors.php:236
 msgid "Security:"
 msgstr ""
 
-#: src/Module/Settings/Connectors.php:235
+#: src/Module/Settings/Connectors.php:237
 msgid "Email login name:"
 msgstr ""
 
-#: src/Module/Settings/Connectors.php:236
+#: src/Module/Settings/Connectors.php:238
 msgid "Email password:"
 msgstr ""
 
-#: src/Module/Settings/Connectors.php:237
+#: src/Module/Settings/Connectors.php:239
 msgid "Reply-to address:"
 msgstr ""
 
-#: src/Module/Settings/Connectors.php:238
+#: src/Module/Settings/Connectors.php:240
 msgid "Send public posts to all email contacts:"
 msgstr ""
 
-#: src/Module/Settings/Connectors.php:239
+#: src/Module/Settings/Connectors.php:241
 msgid "Action after import:"
 msgstr ""
 
-#: src/Module/Settings/Connectors.php:239
+#: src/Module/Settings/Connectors.php:241
 msgid "Move to folder"
 msgstr ""
 
-#: src/Module/Settings/Connectors.php:240
+#: src/Module/Settings/Connectors.php:242
 msgid "Move to folder:"
 msgstr ""
 
index 1cd0f73cd6abf0cb005de6608941f49c197f3d8d..ae345ce2d3a2af6d4725e11a767e8efbe550ec42 100644 (file)
@@ -16,6 +16,7 @@
                {{include file="field_checkbox.tpl" field=$enable_smart_shortening}}
                {{include file="field_checkbox.tpl" field=$simple_shortening}}
                {{include file="field_checkbox.tpl" field=$attach_link_title}}
+               {{include file="field_checkbox.tpl" field=$api_spoiler_title}}
                {{include file="field_input.tpl" field=$legacy_contact}}
 
                <p><a href="{{$repair_ostatus_url}}">{{$repair_ostatus_text}}</a></p>
index 409512d5ea09c65ccc76fd2ae6161e31f7e1c2f9..c1ebd64f3f92e27a7bb0f75f226068a3d6565d84 100644 (file)
@@ -28,6 +28,8 @@
 
                                        {{include file="field_checkbox.tpl" field=$attach_link_title}}
 
+                                       {{include file="field_checkbox.tpl" field=$api_spoiler_title}}
+
                                        {{include file="field_input.tpl" field=$legacy_contact}}
 
                                        <p><a href="{{$repair_ostatus_url}}">{{$repair_ostatus_text}}</a></p>