]> git.mxchange.org Git - friendica.git/commitdiff
Improved support for Mastodon style content warnings
authorMichael <heluecht@pirati.ca>
Sun, 6 Mar 2022 11:49:55 +0000 (11:49 +0000)
committerMichael <heluecht@pirati.ca>
Sun, 6 Mar 2022 11:49:55 +0000 (11:49 +0000)
src/Content/Feature.php
src/Model/Item.php
src/Object/Post.php
view/lang/C/messages.po

index 13c9b314273a09fb10eaeb742c8f53e082fd9ced..d594891b85d5366ad46a9902e0f2771ee237afa7 100644 (file)
@@ -104,6 +104,7 @@ class Feature
                                DI::l10n()->t('Post Composition Features'),
                                ['aclautomention', DI::l10n()->t('Auto-mention Forums'), DI::l10n()->t('Add/remove mention when a forum page is selected/deselected in ACL window.'), false, DI::config()->get('feature_lock', 'aclautomention', false)],
                                ['explicit_mentions', DI::l10n()->t('Explicit Mentions'), DI::l10n()->t('Add explicit mentions to comment box for manual control over who gets mentioned in replies.'), false, DI::config()->get('feature_lock', 'explicit_mentions', false)],
+                               ['add_abstract', DI::l10n()->t('Add an abstract from ActivityPub content warnings'), DI::l10n()->t('Add an abstract when commenting on ActivityPub posts with a content warning. Abstracts are displayed as content warning on systems like Mastodon or Pleroma.'), false, DI::config()->get('feature_lock', 'add_abstract', false)],
                        ],
 
                        // Item tools
index 4a3b6ed580df7d732e4520ec0746b10bdd15c9ec..09abf959975cd0b1be641d8d0dcbe8cf65938a20 100644 (file)
@@ -1076,6 +1076,13 @@ class Item
                        unset($item['causer-id']);
                }
 
+               if (in_array($item['network'], [Protocol::ACTIVITYPUB, Protocol::DFRN])) {
+                       $content_warning = BBCode::getAbstract($item['body'], Protocol::ACTIVITYPUB);
+                       if (!empty($content_warning) && empty($item['content-warning'])) {
+                               $item['content-warning'] = $content_warning;
+                       }
+               }
+
                Post::insert($item['uri-id'], $item);
 
                if ($item['gravity'] == GRAVITY_PARENT) {
@@ -1238,7 +1245,7 @@ class Item
 
                $self_contact = Contact::selectFirst(['id'], ['uid' => $item['uid'], 'self' => true]);
                $self = !empty($self_contact) ? $self_contact['id'] : 0;
-               
+
                $cid = Contact::getIdForURL($author['url'], $item['uid']);
                if (empty($cid) || (!Contact::isSharing($cid, $item['uid']) && ($cid != $self))) {
                        Logger::info('The resharer is not a following contact: quit', ['resharer' => $author['url'], 'uid' => $item['uid'], 'cid' => $cid]);
index bbd1e9ce1c037bb73dec3e9435af5020f115a6ea..253b4b4f18a42d467b0e286e3e5909b895bf06f6 100644 (file)
@@ -891,22 +891,26 @@ class Post
 
                $owner = User::getOwnerDataById($a->getLoggedInUserId());
 
-               if (!Feature::isEnabled(local_user(), 'explicit_mentions')) {
-                       return '';
-               }
-
-               $item = PostModel::selectFirst(['author-addr', 'uri-id', 'network', 'gravity'], ['id' => $this->getId()]);
+               $item = PostModel::selectFirst(['author-addr', 'uri-id', 'network', 'gravity', 'content-warning'], ['id' => $this->getId()]);
                if (!DBA::isResult($item) || empty($item['author-addr'])) {
                        // Should not happen
                        return '';
                }
 
-               if (($item['author-addr'] != $owner['addr']) && (($item['gravity'] != GRAVITY_PARENT) || !in_array($item['network'], [Protocol::DIASPORA]))) {
-                       $text = '@' . $item['author-addr'] . ' ';
+               if (!empty($item['content-warning']) && Feature::isEnabled(local_user(), 'add_abstract')) {
+                       $text = '[abstract=' . Protocol::ACTIVITYPUB . ']' . $item['content-warning'] . "[/abstract]\n";
                } else {
                        $text = '';
                }
 
+               if (!Feature::isEnabled(local_user(), 'explicit_mentions')) {
+                       return $text;
+               }
+
+               if (($item['author-addr'] != $owner['addr']) && (($item['gravity'] != GRAVITY_PARENT) || !in_array($item['network'], [Protocol::DIASPORA]))) {
+                       $text .= '@' . $item['author-addr'] . ' ';
+               }
+
                $terms = Tag::getByURIId($item['uri-id'], [Tag::MENTION, Tag::IMPLICIT_MENTION, Tag::EXCLUSIVE_MENTION]);
                foreach ($terms as $term) {
                        if (!$term['url']) {
index 0ec51c216774ffe1254efe971277192e4aada8a8..b9d23a778549816558d29fe6e838e88500c686e1 100644 (file)
@@ -8,7 +8,7 @@ msgid ""
 msgstr ""
 "Project-Id-Version: 2022.05-dev\n"
 "Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2022-02-24 09:39-0500\n"
+"POT-Creation-Date: 2022-03-06 11:22+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"
@@ -118,7 +118,7 @@ msgid "The feed for this item is unavailable."
 msgstr ""
 
 #: mod/editpost.php:38 mod/events.php:220 mod/follow.php:56 mod/follow.php:130
-#: mod/item.php:184 mod/item.php:189 mod/item.php:918 mod/message.php:69
+#: mod/item.php:184 mod/item.php:189 mod/item.php:877 mod/message.php:69
 #: mod/message.php:111 mod/notes.php:44 mod/ostatus_subscribe.php:32
 #: mod/photos.php:160 mod/photos.php:897 mod/repair_ostatus.php:31
 #: mod/settings.php:47 mod/settings.php:57 mod/settings.php:417
@@ -163,7 +163,7 @@ msgid "Save"
 msgstr ""
 
 #: mod/editpost.php:92 mod/photos.php:1344 src/Content/Conversation.php:326
-#: src/Module/Contact/Poke.php:176 src/Object/Post.php:982
+#: src/Module/Contact/Poke.php:176 src/Object/Post.php:986
 msgid "Loading..."
 msgstr ""
 
@@ -261,7 +261,7 @@ msgstr ""
 
 #: mod/editpost.php:128 mod/events.php:517 mod/photos.php:1343
 #: mod/photos.php:1399 mod/photos.php:1473 src/Content/Conversation.php:370
-#: src/Module/Item/Compose.php:160 src/Object/Post.php:992
+#: src/Module/Item/Compose.php:160 src/Object/Post.php:996
 msgid "Preview"
 msgstr ""
 
@@ -273,37 +273,37 @@ msgid "Cancel"
 msgstr ""
 
 #: mod/editpost.php:134 src/Content/Conversation.php:331
-#: src/Module/Item/Compose.php:151 src/Object/Post.php:983
+#: src/Module/Item/Compose.php:151 src/Object/Post.php:987
 msgid "Bold"
 msgstr ""
 
 #: mod/editpost.php:135 src/Content/Conversation.php:332
-#: src/Module/Item/Compose.php:152 src/Object/Post.php:984
+#: src/Module/Item/Compose.php:152 src/Object/Post.php:988
 msgid "Italic"
 msgstr ""
 
 #: mod/editpost.php:136 src/Content/Conversation.php:333
-#: src/Module/Item/Compose.php:153 src/Object/Post.php:985
+#: src/Module/Item/Compose.php:153 src/Object/Post.php:989
 msgid "Underline"
 msgstr ""
 
 #: mod/editpost.php:137 src/Content/Conversation.php:334
-#: src/Module/Item/Compose.php:154 src/Object/Post.php:986
+#: src/Module/Item/Compose.php:154 src/Object/Post.php:990
 msgid "Quote"
 msgstr ""
 
 #: mod/editpost.php:138 src/Content/Conversation.php:335
-#: src/Module/Item/Compose.php:155 src/Object/Post.php:987
+#: src/Module/Item/Compose.php:155 src/Object/Post.php:991
 msgid "Code"
 msgstr ""
 
 #: mod/editpost.php:139 src/Content/Conversation.php:337
-#: src/Module/Item/Compose.php:157 src/Object/Post.php:989
+#: src/Module/Item/Compose.php:157 src/Object/Post.php:993
 msgid "Link"
 msgstr ""
 
 #: mod/editpost.php:140 src/Content/Conversation.php:338
-#: src/Module/Item/Compose.php:158 src/Object/Post.php:990
+#: src/Module/Item/Compose.php:158 src/Object/Post.php:994
 msgid "Link or Media"
 msgstr ""
 
@@ -411,7 +411,7 @@ msgstr ""
 #: src/Module/Install.php:252 src/Module/Install.php:294
 #: src/Module/Install.php:331 src/Module/Invite.php:177
 #: src/Module/Item/Compose.php:150 src/Module/Profile/Profile.php:247
-#: src/Module/Settings/Profile/Index.php:222 src/Object/Post.php:981
+#: src/Module/Settings/Profile/Index.php:222 src/Object/Post.php:985
 #: view/theme/duepuntozero/config.php:69 view/theme/frio/config.php:160
 #: view/theme/quattro/config.php:71 view/theme/vier/config.php:119
 msgid "Submit"
@@ -464,7 +464,7 @@ msgstr ""
 msgid "OStatus support is disabled. Contact can't be added."
 msgstr ""
 
-#: mod/follow.php:138 src/Content/Item.php:452 src/Content/Widget.php:76
+#: mod/follow.php:138 src/Content/Item.php:455 src/Content/Widget.php:76
 #: src/Model/Contact.php:1083 src/Model/Contact.php:1095
 #: view/theme/vier/theme.php:172
 msgid "Connect/Follow"
@@ -518,19 +518,19 @@ msgstr ""
 msgid "Empty post discarded."
 msgstr ""
 
-#: mod/item.php:724
+#: mod/item.php:689
 msgid "Post updated."
 msgstr ""
 
-#: mod/item.php:734 mod/item.php:739
+#: mod/item.php:699 mod/item.php:704
 msgid "Item wasn't stored."
 msgstr ""
 
-#: mod/item.php:750
+#: mod/item.php:715
 msgid "Item couldn't be fetched."
 msgstr ""
 
-#: mod/item.php:896 src/Module/Admin/Themes/Details.php:39
+#: mod/item.php:855 src/Module/Admin/Themes/Details.php:39
 #: src/Module/Admin/Themes/Index.php:59 src/Module/Debug/ItemBody.php:41
 #: src/Module/Debug/ItemBody.php:56
 msgid "Item not found."
@@ -1066,12 +1066,12 @@ msgstr ""
 
 #: mod/photos.php:1339 mod/photos.php:1395 mod/photos.php:1469
 #: src/Module/Contact.php:544 src/Module/Item/Compose.php:148
-#: src/Object/Post.php:978
+#: src/Object/Post.php:982
 msgid "This is you"
 msgstr ""
 
 #: mod/photos.php:1341 mod/photos.php:1397 mod/photos.php:1471
-#: src/Object/Post.php:514 src/Object/Post.php:980
+#: src/Object/Post.php:514 src/Object/Post.php:984
 msgid "Comment"
 msgstr ""
 
@@ -1967,15 +1967,15 @@ msgstr ""
 msgid "Friend Suggestions"
 msgstr ""
 
-#: mod/tagger.php:78 src/Content/Item.php:335 src/Model/Item.php:2670
+#: mod/tagger.php:78 src/Content/Item.php:338 src/Model/Item.php:2670
 msgid "photo"
 msgstr ""
 
-#: mod/tagger.php:78 src/Content/Item.php:330 src/Content/Item.php:339
+#: mod/tagger.php:78 src/Content/Item.php:333 src/Content/Item.php:342
 msgid "status"
 msgstr ""
 
-#: mod/tagger.php:111 src/Content/Item.php:349
+#: mod/tagger.php:111 src/Content/Item.php:352
 #, php-format
 msgid "%1$s tagged %2$s's %3$s with %4$s"
 msgstr ""
@@ -2478,7 +2478,7 @@ msgid "Visible to <strong>everybody</strong>"
 msgstr ""
 
 #: src/Content/Conversation.php:308 src/Module/Item/Compose.php:159
-#: src/Object/Post.php:991
+#: src/Object/Post.php:995
 msgid "Please enter a image/video/audio/webpage URL:"
 msgstr ""
 
@@ -2507,7 +2507,7 @@ msgid "Share"
 msgstr ""
 
 #: src/Content/Conversation.php:336 src/Module/Item/Compose.php:156
-#: src/Object/Post.php:988
+#: src/Object/Post.php:992
 msgid "Image"
 msgstr ""
 
@@ -2652,43 +2652,54 @@ msgid ""
 "mentioned in replies."
 msgstr ""
 
-#: src/Content/Feature.php:111
-msgid "Post/Comment Tools"
+#: src/Content/Feature.php:107
+msgid "Add an abstract from ActivityPub content warnings"
+msgstr ""
+
+#: src/Content/Feature.php:107
+msgid ""
+"Add an abstract when commenting on ActivityPub posts with a content warning. "
+"Abstracts are displayed as content warning on systems like Mastodon or "
+"Pleroma."
 msgstr ""
 
 #: src/Content/Feature.php:112
+msgid "Post/Comment Tools"
+msgstr ""
+
+#: src/Content/Feature.php:113
 msgid "Post Categories"
 msgstr ""
 
-#: src/Content/Feature.php:112
+#: src/Content/Feature.php:113
 msgid "Add categories to your posts"
 msgstr ""
 
-#: src/Content/Feature.php:117
+#: src/Content/Feature.php:118
 msgid "Advanced Profile Settings"
 msgstr ""
 
-#: src/Content/Feature.php:118
+#: src/Content/Feature.php:119
 msgid "List Forums"
 msgstr ""
 
-#: src/Content/Feature.php:118
+#: src/Content/Feature.php:119
 msgid "Show visitors public community forums at the Advanced Profile Page"
 msgstr ""
 
-#: src/Content/Feature.php:119
+#: src/Content/Feature.php:120
 msgid "Tag Cloud"
 msgstr ""
 
-#: src/Content/Feature.php:119
+#: src/Content/Feature.php:120
 msgid "Provide a personal tag cloud on your profile page"
 msgstr ""
 
-#: src/Content/Feature.php:120
+#: src/Content/Feature.php:121
 msgid "Display Membership Date"
 msgstr ""
 
-#: src/Content/Feature.php:120
+#: src/Content/Feature.php:121
 msgid "Display membership date in profile"
 msgstr ""
 
@@ -2710,55 +2721,55 @@ msgstr ""
 msgid "show more"
 msgstr ""
 
-#: src/Content/Item.php:294
+#: src/Content/Item.php:297
 #, php-format
 msgid "%1$s poked %2$s"
 msgstr ""
 
-#: src/Content/Item.php:327 src/Model/Item.php:2668
+#: src/Content/Item.php:330 src/Model/Item.php:2668
 msgid "event"
 msgstr ""
 
-#: src/Content/Item.php:431 view/theme/frio/theme.php:254
+#: src/Content/Item.php:434 view/theme/frio/theme.php:254
 msgid "Follow Thread"
 msgstr ""
 
-#: src/Content/Item.php:432 src/Model/Contact.php:1088
+#: src/Content/Item.php:435 src/Model/Contact.php:1088
 msgid "View Status"
 msgstr ""
 
-#: src/Content/Item.php:433 src/Content/Item.php:455 src/Model/Contact.php:1022
+#: src/Content/Item.php:436 src/Content/Item.php:458 src/Model/Contact.php:1022
 #: src/Model/Contact.php:1080 src/Model/Contact.php:1089
 #: src/Module/Directory.php:157 src/Module/Settings/Profile/Index.php:225
 msgid "View Profile"
 msgstr ""
 
-#: src/Content/Item.php:434 src/Model/Contact.php:1090
+#: src/Content/Item.php:437 src/Model/Contact.php:1090
 msgid "View Photos"
 msgstr ""
 
-#: src/Content/Item.php:435 src/Model/Contact.php:1081
+#: src/Content/Item.php:438 src/Model/Contact.php:1081
 #: src/Model/Contact.php:1091
 msgid "Network Posts"
 msgstr ""
 
-#: src/Content/Item.php:436 src/Model/Contact.php:1082
+#: src/Content/Item.php:439 src/Model/Contact.php:1082
 #: src/Model/Contact.php:1092
 msgid "View Contact"
 msgstr ""
 
-#: src/Content/Item.php:437 src/Model/Contact.php:1093
+#: src/Content/Item.php:440 src/Model/Contact.php:1093
 msgid "Send PM"
 msgstr ""
 
-#: src/Content/Item.php:438 src/Module/Admin/Blocklist/Contact.php:100
+#: src/Content/Item.php:441 src/Module/Admin/Blocklist/Contact.php:100
 #: src/Module/Admin/Users/Active.php:140 src/Module/Admin/Users/Index.php:154
 #: src/Module/Contact.php:398 src/Module/Contact/Profile.php:348
 #: src/Module/Contact/Profile.php:449
 msgid "Block"
 msgstr ""
 
-#: src/Content/Item.php:439 src/Module/Contact.php:399
+#: src/Content/Item.php:442 src/Module/Contact.php:399
 #: src/Module/Contact/Profile.php:349 src/Module/Contact/Profile.php:457
 #: src/Module/Notifications/Introductions.php:132
 #: src/Module/Notifications/Introductions.php:204
@@ -2766,11 +2777,11 @@ msgstr ""
 msgid "Ignore"
 msgstr ""
 
-#: src/Content/Item.php:443 src/Object/Post.php:443
+#: src/Content/Item.php:446 src/Object/Post.php:443
 msgid "Languages"
 msgstr ""
 
-#: src/Content/Item.php:447 src/Model/Contact.php:1094
+#: src/Content/Item.php:450 src/Model/Contact.php:1094
 msgid "Poke"
 msgstr ""