From 78b969cb1905312ebe5ce0c7a26dd77031dc5920 Mon Sep 17 00:00:00 2001 From: Michael Date: Fri, 14 Apr 2023 17:21:20 +0000 Subject: [PATCH 1/3] Store "audience" and "attributedTo" data --- src/Content/Conversation.php | 3 + src/Model/Item.php | 3 +- src/Model/Tag.php | 14 ++-- src/Module/PermissionTooltip.php | 10 ++- src/Protocol/ActivityPub/ClientToServer.php | 7 +- src/Protocol/ActivityPub/Processor.php | 7 +- src/Protocol/ActivityPub/Receiver.php | 12 ++- view/lang/C/messages.po | 91 ++++++++++++--------- 8 files changed, 90 insertions(+), 57 deletions(-) diff --git a/src/Content/Conversation.php b/src/Content/Conversation.php index 458a0a690..6e7820a6f 100644 --- a/src/Content/Conversation.php +++ b/src/Content/Conversation.php @@ -873,6 +873,9 @@ class Conversation case ItemModel::PR_BCC: $row['direction'] = ['direction' => 7, 'title' => $this->l10n->t('You had been addressed (%s).', 'bcc')]; break; + case ItemModel::PR_AUDIENCE: + $row['direction'] = ['direction' => 7, 'title' => $this->l10n->t('You had been addressed (%s).', 'audience')]; + break; case ItemModel::PR_FOLLOWER: $row['direction'] = ['direction' => 6, 'title' => $this->l10n->t('You are following %s.', $row['causer-name'] ?: $row['author-name'])]; break; diff --git a/src/Model/Item.php b/src/Model/Item.php index d7de9ca49..89446c492 100644 --- a/src/Model/Item.php +++ b/src/Model/Item.php @@ -79,6 +79,7 @@ class Item const PR_DISTRIBUTE = 79; const PR_PUSHED = 80; const PR_LOCAL = 81; + const PR_AUDIENCE = 82; // system.accept_only_sharer setting values const COMPLETION_NONE = 1; @@ -1624,7 +1625,7 @@ class Item if (($uid != 0) && (($item['gravity'] == self::GRAVITY_PARENT) || $is_reshare) && DI::pConfig()->get($uid, 'system', 'accept_only_sharer') == self::COMPLETION_NONE && - !in_array($item['post-reason'], [self::PR_FOLLOWER, self::PR_TAG, self::PR_TO, self::PR_CC, self::PR_ACTIVITY])) { + !in_array($item['post-reason'], [self::PR_FOLLOWER, self::PR_TAG, self::PR_TO, self::PR_CC, self::PR_ACTIVITY, self::PR_AUDIENCE])) { Logger::info('Contact is not a follower, thread will not be stored', ['author' => $item['author-link'], 'uid' => $uid, 'uri-id' => $uri_id, 'post-reason' => $item['post-reason']]); return 0; } diff --git a/src/Model/Tag.php b/src/Model/Tag.php index 0e891f9c6..215d81713 100644 --- a/src/Model/Tag.php +++ b/src/Model/Tag.php @@ -54,10 +54,12 @@ class Tag */ const EXCLUSIVE_MENTION = 9; - const TO = 10; - const CC = 11; - const BTO = 12; - const BCC = 13; + const TO = 10; + const CC = 11; + const BTO = 12; + const BCC = 13; + const AUDIENCE = 14; + const ATTRIBUTED = 15; const ACCOUNT = 1; const GENERAL_COLLECTION = 2; @@ -103,7 +105,7 @@ class Tag $cid = 0; $tagid = 0; - if (in_array($type, [self::MENTION, self::EXCLUSIVE_MENTION, self::IMPLICIT_MENTION, self::TO, self::CC, self::BTO, self::BCC])) { + if (in_array($type, [self::MENTION, self::EXCLUSIVE_MENTION, self::IMPLICIT_MENTION, self::TO, self::CC, self::BTO, self::BCC, self::AUDIENCE, self::ATTRIBUTED])) { if (empty($url)) { // No mention without a contact url return; @@ -130,7 +132,7 @@ class Tag } if (empty($cid)) { - if (!in_array($type, [self::TO, self::CC, self::BTO, self::BCC])) { + if (!in_array($type, [self::TO, self::CC, self::BTO, self::BCC, self::AUDIENCE, self::ATTRIBUTED])) { if (($type != self::HASHTAG) && !empty($url) && ($url != $name)) { $url = strtolower($url); } else { diff --git a/src/Module/PermissionTooltip.php b/src/Module/PermissionTooltip.php index ad5c11cc0..41cc8e0e9 100644 --- a/src/Module/PermissionTooltip.php +++ b/src/Module/PermissionTooltip.php @@ -190,7 +190,7 @@ class PermissionTooltip extends \Friendica\BaseModule } $receivers = []; - foreach (Tag::getByURIId($uriId, [Tag::TO, Tag::CC, Tag::BCC]) as $receiver) { + foreach (Tag::getByURIId($uriId, [Tag::TO, Tag::CC, Tag::BCC, Tag::AUDIENCE, Tag::ATTRIBUTED]) as $receiver) { // We only display BCC when it contains the current user if (($receiver['type'] == Tag::BCC) && ($receiver['url'] != $own_url)) { continue; @@ -236,7 +236,13 @@ class PermissionTooltip extends \Friendica\BaseModule case Tag::BCC: $output .= DI::l10n()->t('BCC: %s
', implode(', ', $receiver)); break; - } + case Tag::AUDIENCE: + $output .= DI::l10n()->t('Audience: %s
', implode(', ', $receiver)); + break; + case Tag::ATTRIBUTED: + $output .= DI::l10n()->t('Attributed To: %s
', implode(', ', $receiver)); + break; + } } return $output; diff --git a/src/Protocol/ActivityPub/ClientToServer.php b/src/Protocol/ActivityPub/ClientToServer.php index 48a5cfdec..fed0bc55b 100644 --- a/src/Protocol/ActivityPub/ClientToServer.php +++ b/src/Protocol/ActivityPub/ClientToServer.php @@ -208,7 +208,7 @@ class ClientToServer $targets = []; - foreach (['as:to', 'as:cc', 'as:bto', 'as:bcc'] as $element) { + foreach (['as:to', 'as:cc', 'as:bto', 'as:bcc', 'as:audience'] as $element) { switch ($element) { case 'as:to': $type = Receiver::TARGET_TO; @@ -222,7 +222,10 @@ class ClientToServer case 'as:bcc': $type = Receiver::TARGET_BCC; break; - } + case 'as:audience': + $type = Receiver::TARGET_AUDIENCE; + break; + } $receiver_list = JsonLD::fetchElementArray($object, $element, '@id'); if (empty($receiver_list)) { continue; diff --git a/src/Protocol/ActivityPub/Processor.php b/src/Protocol/ActivityPub/Processor.php index 86394bd91..b8d4005a6 100644 --- a/src/Protocol/ActivityPub/Processor.php +++ b/src/Protocol/ActivityPub/Processor.php @@ -1026,6 +1026,9 @@ class Processor case Receiver::TARGET_BCC: $item['post-reason'] = Item::PR_BCC; break; + case Receiver::TARGET_AUDIENCE: + $item['post-reason'] = Item::PR_AUDIENCE; + break; case Receiver::TARGET_FOLLOWER: $item['post-reason'] = Item::PR_FOLLOWER; break; @@ -1071,7 +1074,7 @@ class Processor continue; } - if (($receiver != 0) && ($item['gravity'] == Item::GRAVITY_PARENT) && !in_array($item['post-reason'], [Item::PR_FOLLOWER, Item::PR_TAG, item::PR_TO, Item::PR_CC])) { + if (($receiver != 0) && ($item['gravity'] == Item::GRAVITY_PARENT) && !in_array($item['post-reason'], [Item::PR_FOLLOWER, Item::PR_TAG, item::PR_TO, Item::PR_CC, Item::PR_AUDIENCE])) { if (!($item['isForum'] ?? false)) { if ($item['post-reason'] == Item::PR_BCC) { Logger::info('Top level post via BCC from a non sharer, ignoring', ['uid' => $receiver, 'contact' => $item['contact-id'], 'url' => $item['uri']]); @@ -1274,7 +1277,7 @@ class Processor public static function storeReceivers(int $uriid, array $receivers) { - foreach (['as:to' => Tag::TO, 'as:cc' => Tag::CC, 'as:bto' => Tag::BTO, 'as:bcc' => Tag::BCC] as $element => $type) { + foreach (['as:to' => Tag::TO, 'as:cc' => Tag::CC, 'as:bto' => Tag::BTO, 'as:bcc' => Tag::BCC, 'as:audience' => Tag::AUDIENCE, 'as:attributedTo' => Tag::ATTRIBUTED] as $element => $type) { if (!empty($receivers[$element])) { foreach ($receivers[$element] as $receiver) { if ($receiver == ActivityPub::PUBLIC_COLLECTION) { diff --git a/src/Protocol/ActivityPub/Receiver.php b/src/Protocol/ActivityPub/Receiver.php index 4bba5f5da..204e631c9 100644 --- a/src/Protocol/ActivityPub/Receiver.php +++ b/src/Protocol/ActivityPub/Receiver.php @@ -73,6 +73,7 @@ class Receiver const TARGET_FOLLOWER = 5; const TARGET_ANSWER = 6; const TARGET_GLOBAL = 7; + const TARGET_AUDIENCE = 8; const COMPLETION_NONE = 0; const COMPLETION_ANNOUNCE = 1; @@ -487,7 +488,7 @@ class Receiver $object_data['object_type'] = $object_type; } - foreach (['as:to', 'as:cc', 'as:bto', 'as:bcc'] as $element) { + foreach (['as:to', 'as:cc', 'as:bto', 'as:bcc', 'as:audience', 'as:attributedTo'] as $element) { if ((empty($object_data['receiver_urls'][$element]) || in_array($element, ['as:bto', 'as:bcc'])) && !empty($urls[$element])) { $object_data['receiver_urls'][$element] = array_unique(array_merge($object_data['receiver_urls'][$element] ?? [], $urls[$element])); } @@ -1032,7 +1033,7 @@ class Receiver { $urls = []; - foreach (['as:to', 'as:cc', 'as:bto', 'as:bcc'] as $element) { + foreach (['as:to', 'as:cc', 'as:bto', 'as:bcc', 'as:audience', 'as:attributedTo'] as $element) { $receiver_list = JsonLD::fetchElementArray($activity, $element, '@id'); if (empty($receiver_list)) { continue; @@ -1104,7 +1105,7 @@ class Receiver // We have to prevent false follower assumptions upon thread completions $follower_target = empty($activity['thread-completion']) ? self::TARGET_FOLLOWER : self::TARGET_UNKNOWN; - foreach (['as:to', 'as:cc', 'as:bto', 'as:bcc'] as $element) { + foreach (['as:to', 'as:cc', 'as:bto', 'as:bcc','as:audience'] as $element) { $receiver_list = JsonLD::fetchElementArray($activity, $element, '@id'); if (empty($receiver_list)) { continue; @@ -1165,7 +1166,10 @@ class Receiver case 'as:bcc': $type = self::TARGET_BCC; break; - } + case 'as:audience': + $type = self::TARGET_AUDIENCE; + break; + } $receivers[$contact['uid']] = ['uid' => $contact['uid'], 'type' => $type]; } diff --git a/view/lang/C/messages.po b/view/lang/C/messages.po index 7d21741b9..e01626656 100644 --- a/view/lang/C/messages.po +++ b/view/lang/C/messages.po @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: 2023.03-rc\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2023-04-09 08:27-0400\n" +"POT-Creation-Date: 2023-04-14 17:15+0000\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" @@ -1388,81 +1388,82 @@ msgstr "" #: src/Content/Conversation.php:865 src/Content/Conversation.php:868 #: src/Content/Conversation.php:871 src/Content/Conversation.php:874 +#: src/Content/Conversation.php:877 #, php-format msgid "You had been addressed (%s)." msgstr "" -#: src/Content/Conversation.php:877 +#: src/Content/Conversation.php:880 #, php-format msgid "You are following %s." msgstr "" -#: src/Content/Conversation.php:880 +#: src/Content/Conversation.php:883 msgid "You subscribed to one or more tags in this post." msgstr "" -#: src/Content/Conversation.php:893 +#: src/Content/Conversation.php:896 #, php-format msgid "%s reshared this." msgstr "" -#: src/Content/Conversation.php:895 +#: src/Content/Conversation.php:898 msgid "Reshared" msgstr "" -#: src/Content/Conversation.php:895 -#, php-format -msgid "Reshared by %s <%s>" -msgstr "" - #: src/Content/Conversation.php:898 #, php-format -msgid "%s is participating in this thread." +msgid "Reshared by %s <%s>" msgstr "" #: src/Content/Conversation.php:901 -msgid "Stored for general reasons" +#, php-format +msgid "%s is participating in this thread." msgstr "" #: src/Content/Conversation.php:904 +msgid "Stored for general reasons" +msgstr "" + +#: src/Content/Conversation.php:907 msgid "Global post" msgstr "" -#: src/Content/Conversation.php:907 +#: src/Content/Conversation.php:910 msgid "Sent via an relay server" msgstr "" -#: src/Content/Conversation.php:907 +#: src/Content/Conversation.php:910 #, php-format msgid "Sent via the relay server %s <%s>" msgstr "" -#: src/Content/Conversation.php:910 +#: src/Content/Conversation.php:913 msgid "Fetched" msgstr "" -#: src/Content/Conversation.php:910 +#: src/Content/Conversation.php:913 #, php-format msgid "Fetched because of %s <%s>" msgstr "" -#: src/Content/Conversation.php:913 +#: src/Content/Conversation.php:916 msgid "Stored because of a child post to complete this thread." msgstr "" -#: src/Content/Conversation.php:916 +#: src/Content/Conversation.php:919 msgid "Local delivery" msgstr "" -#: src/Content/Conversation.php:919 +#: src/Content/Conversation.php:922 msgid "Stored because of your activity (like, comment, star, ...)" msgstr "" -#: src/Content/Conversation.php:922 +#: src/Content/Conversation.php:925 msgid "Distributed" msgstr "" -#: src/Content/Conversation.php:925 +#: src/Content/Conversation.php:928 msgid "Pushed to us" msgstr "" @@ -1596,7 +1597,7 @@ msgstr "" msgid "show more" msgstr "" -#: src/Content/Item.php:326 src/Model/Item.php:2913 +#: src/Content/Item.php:326 src/Model/Item.php:2922 msgid "event" msgstr "" @@ -1604,7 +1605,7 @@ msgstr "" msgid "status" msgstr "" -#: src/Content/Item.php:335 src/Model/Item.php:2915 +#: src/Content/Item.php:335 src/Model/Item.php:2924 #: src/Module/Post/Tag/Add.php:123 msgid "photo" msgstr "" @@ -2010,8 +2011,8 @@ msgid "" "%2$s %3$s" msgstr "" -#: src/Content/Text/BBCode.php:956 src/Model/Item.php:3598 -#: src/Model/Item.php:3604 src/Model/Item.php:3605 +#: src/Content/Text/BBCode.php:956 src/Model/Item.php:3607 +#: src/Model/Item.php:3613 src/Model/Item.php:3614 msgid "Link to source" msgstr "" @@ -3180,81 +3181,81 @@ msgstr "" msgid "Edit groups" msgstr "" -#: src/Model/Item.php:2014 +#: src/Model/Item.php:2023 #, php-format msgid "Detected languages in this post:\\n%s" msgstr "" -#: src/Model/Item.php:2917 +#: src/Model/Item.php:2926 msgid "activity" msgstr "" -#: src/Model/Item.php:2919 +#: src/Model/Item.php:2928 msgid "comment" msgstr "" -#: src/Model/Item.php:2922 src/Module/Post/Tag/Add.php:123 +#: src/Model/Item.php:2931 src/Module/Post/Tag/Add.php:123 msgid "post" msgstr "" -#: src/Model/Item.php:3084 +#: src/Model/Item.php:3093 #, php-format msgid "%s is blocked" msgstr "" -#: src/Model/Item.php:3086 +#: src/Model/Item.php:3095 #, php-format msgid "%s is ignored" msgstr "" -#: src/Model/Item.php:3088 +#: src/Model/Item.php:3097 #, php-format msgid "Content from %s is collapsed" msgstr "" -#: src/Model/Item.php:3092 +#: src/Model/Item.php:3101 #, php-format msgid "Content warning: %s" msgstr "" -#: src/Model/Item.php:3510 +#: src/Model/Item.php:3519 msgid "bytes" msgstr "" -#: src/Model/Item.php:3541 +#: src/Model/Item.php:3550 #, php-format msgid "%2$s (%3$d%%, %1$d vote)" msgid_plural "%2$s (%3$d%%, %1$d votes)" msgstr[0] "" msgstr[1] "" -#: src/Model/Item.php:3543 +#: src/Model/Item.php:3552 #, php-format msgid "%2$s (%1$d vote)" msgid_plural "%2$s (%1$d votes)" msgstr[0] "" msgstr[1] "" -#: src/Model/Item.php:3548 +#: src/Model/Item.php:3557 #, php-format msgid "%d voter. Poll end: %s" msgid_plural "%d voters. Poll end: %s" msgstr[0] "" msgstr[1] "" -#: src/Model/Item.php:3550 +#: src/Model/Item.php:3559 #, php-format msgid "%d voter." msgid_plural "%d voters." msgstr[0] "" msgstr[1] "" -#: src/Model/Item.php:3552 +#: src/Model/Item.php:3561 #, php-format msgid "Poll end: %s" msgstr "" -#: src/Model/Item.php:3586 src/Model/Item.php:3587 +#: src/Model/Item.php:3595 src/Model/Item.php:3596 msgid "View on separate page" msgstr "" @@ -8250,6 +8251,16 @@ msgstr "" msgid "BCC: %s
" msgstr "" +#: src/Module/PermissionTooltip.php:240 +#, php-format +msgid "Audience: %s
" +msgstr "" + +#: src/Module/PermissionTooltip.php:243 +#, php-format +msgid "Attributed To: %s
" +msgstr "" + #: src/Module/Photo.php:129 msgid "The Photo is not available." msgstr "" From c81a9d1ddd7e5b7fff6a173a159ae78ee7fc7698 Mon Sep 17 00:00:00 2001 From: Michael Vogel Date: Fri, 14 Apr 2023 20:56:43 +0200 Subject: [PATCH 2/3] Apply suggestions from code review Co-authored-by: Hypolite Petovan --- src/Module/PermissionTooltip.php | 2 +- src/Protocol/ActivityPub/ClientToServer.php | 2 +- src/Protocol/ActivityPub/Receiver.php | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/src/Module/PermissionTooltip.php b/src/Module/PermissionTooltip.php index 41cc8e0e9..dbfdd5ef2 100644 --- a/src/Module/PermissionTooltip.php +++ b/src/Module/PermissionTooltip.php @@ -242,7 +242,7 @@ class PermissionTooltip extends \Friendica\BaseModule case Tag::ATTRIBUTED: $output .= DI::l10n()->t('Attributed To: %s
', implode(', ', $receiver)); break; - } + } } return $output; diff --git a/src/Protocol/ActivityPub/ClientToServer.php b/src/Protocol/ActivityPub/ClientToServer.php index fed0bc55b..ee162382b 100644 --- a/src/Protocol/ActivityPub/ClientToServer.php +++ b/src/Protocol/ActivityPub/ClientToServer.php @@ -225,7 +225,7 @@ class ClientToServer case 'as:audience': $type = Receiver::TARGET_AUDIENCE; break; - } + } $receiver_list = JsonLD::fetchElementArray($object, $element, '@id'); if (empty($receiver_list)) { continue; diff --git a/src/Protocol/ActivityPub/Receiver.php b/src/Protocol/ActivityPub/Receiver.php index 204e631c9..c11ff83bd 100644 --- a/src/Protocol/ActivityPub/Receiver.php +++ b/src/Protocol/ActivityPub/Receiver.php @@ -1169,7 +1169,7 @@ class Receiver case 'as:audience': $type = self::TARGET_AUDIENCE; break; - } + } $receivers[$contact['uid']] = ['uid' => $contact['uid'], 'type' => $type]; } From 33d2a122f98562bed8a03007359f6e66d4d63cdc Mon Sep 17 00:00:00 2001 From: Michael Date: Sun, 23 Apr 2023 21:21:56 +0000 Subject: [PATCH 3/3] Updated messages.po --- view/lang/C/messages.po | 238 ++++++++++++++++++++-------------------- 1 file changed, 119 insertions(+), 119 deletions(-) diff --git a/view/lang/C/messages.po b/view/lang/C/messages.po index 13ece85f6..63aa39b24 100644 --- a/view/lang/C/messages.po +++ b/view/lang/C/messages.po @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: 2023.06-dev\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2023-04-09 08:27-0400\n" +"POT-Creation-Date: 2023-04-23 21:21+0000\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" @@ -294,7 +294,7 @@ msgstr "" #: mod/message.php:202 mod/message.php:358 mod/photos.php:1291 #: src/Content/Conversation.php:389 src/Content/Conversation.php:733 #: src/Module/Item/Compose.php:204 src/Module/Post/Edit.php:145 -#: src/Module/Profile/UnkMail.php:154 src/Object/Post.php:545 +#: src/Module/Profile/UnkMail.php:154 src/Object/Post.php:550 msgid "Please wait" msgstr "" @@ -311,7 +311,7 @@ msgstr "" #: src/Module/Install.php:309 src/Module/Invite.php:178 #: src/Module/Item/Compose.php:189 src/Module/Moderation/Item/Source.php:79 #: src/Module/Profile/Profile.php:274 src/Module/Profile/UnkMail.php:155 -#: src/Module/Settings/Profile/Index.php:230 src/Object/Post.php:1058 +#: src/Module/Settings/Profile/Index.php:230 src/Object/Post.php:1063 #: view/theme/duepuntozero/config.php:85 view/theme/frio/config.php:171 #: view/theme/quattro/config.php:87 view/theme/vier/config.php:135 msgid "Submit" @@ -596,28 +596,28 @@ msgstr "" #: mod/photos.php:1135 mod/photos.php:1191 mod/photos.php:1265 #: src/Module/Contact.php:588 src/Module/Item/Compose.php:188 -#: src/Object/Post.php:1055 +#: src/Object/Post.php:1060 msgid "This is you" msgstr "" #: mod/photos.php:1137 mod/photos.php:1193 mod/photos.php:1267 -#: src/Object/Post.php:539 src/Object/Post.php:1057 +#: src/Object/Post.php:544 src/Object/Post.php:1062 msgid "Comment" msgstr "" #: mod/photos.php:1139 mod/photos.php:1195 mod/photos.php:1269 #: src/Content/Conversation.php:404 src/Module/Calendar/Event/Form.php:248 #: src/Module/Item/Compose.php:199 src/Module/Post/Edit.php:165 -#: src/Object/Post.php:1069 +#: src/Object/Post.php:1074 msgid "Preview" msgstr "" #: mod/photos.php:1140 src/Content/Conversation.php:359 -#: src/Module/Post/Edit.php:130 src/Object/Post.php:1059 +#: src/Module/Post/Edit.php:130 src/Object/Post.php:1064 msgid "Loading..." msgstr "" -#: mod/photos.php:1226 src/Content/Conversation.php:649 src/Object/Post.php:256 +#: mod/photos.php:1226 src/Content/Conversation.php:649 src/Object/Post.php:257 msgid "Select" msgstr "" @@ -629,19 +629,19 @@ msgstr "" msgid "Delete" msgstr "" -#: mod/photos.php:1288 src/Object/Post.php:384 +#: mod/photos.php:1288 src/Object/Post.php:385 msgid "Like" msgstr "" -#: mod/photos.php:1289 src/Object/Post.php:384 +#: mod/photos.php:1289 src/Object/Post.php:385 msgid "I like this (toggle)" msgstr "" -#: mod/photos.php:1290 src/Object/Post.php:385 +#: mod/photos.php:1290 src/Object/Post.php:386 msgid "Dislike" msgstr "" -#: mod/photos.php:1292 src/Object/Post.php:385 +#: mod/photos.php:1292 src/Object/Post.php:386 msgid "I don't like this (toggle)" msgstr "" @@ -770,7 +770,7 @@ msgstr "" msgid "All contacts" msgstr "" -#: src/BaseModule.php:432 src/Content/Widget.php:239 src/Core/ACL.php:194 +#: src/BaseModule.php:432 src/Content/Widget.php:239 src/Core/ACL.php:195 #: src/Module/Contact.php:407 src/Module/PermissionTooltip.php:127 #: src/Module/PermissionTooltip.php:149 msgid "Followers" @@ -1213,7 +1213,7 @@ msgid "Visible to everybody" msgstr "" #: src/Content/Conversation.php:329 src/Module/Item/Compose.php:198 -#: src/Object/Post.php:1068 +#: src/Object/Post.php:1073 msgid "Please enter a image/video/audio/webpage URL:" msgstr "" @@ -1258,42 +1258,42 @@ msgid "attach file" msgstr "" #: src/Content/Conversation.php:364 src/Module/Item/Compose.php:190 -#: src/Module/Post/Edit.php:171 src/Object/Post.php:1060 +#: src/Module/Post/Edit.php:171 src/Object/Post.php:1065 msgid "Bold" msgstr "" #: src/Content/Conversation.php:365 src/Module/Item/Compose.php:191 -#: src/Module/Post/Edit.php:172 src/Object/Post.php:1061 +#: src/Module/Post/Edit.php:172 src/Object/Post.php:1066 msgid "Italic" msgstr "" #: src/Content/Conversation.php:366 src/Module/Item/Compose.php:192 -#: src/Module/Post/Edit.php:173 src/Object/Post.php:1062 +#: src/Module/Post/Edit.php:173 src/Object/Post.php:1067 msgid "Underline" msgstr "" #: src/Content/Conversation.php:367 src/Module/Item/Compose.php:193 -#: src/Module/Post/Edit.php:174 src/Object/Post.php:1063 +#: src/Module/Post/Edit.php:174 src/Object/Post.php:1068 msgid "Quote" msgstr "" #: src/Content/Conversation.php:368 src/Module/Item/Compose.php:194 -#: src/Module/Post/Edit.php:175 src/Object/Post.php:1064 +#: src/Module/Post/Edit.php:175 src/Object/Post.php:1069 msgid "Code" msgstr "" #: src/Content/Conversation.php:369 src/Module/Item/Compose.php:195 -#: src/Object/Post.php:1065 +#: src/Object/Post.php:1070 msgid "Image" msgstr "" #: src/Content/Conversation.php:370 src/Module/Item/Compose.php:196 -#: src/Module/Post/Edit.php:176 src/Object/Post.php:1066 +#: src/Module/Post/Edit.php:176 src/Object/Post.php:1071 msgid "Link" msgstr "" #: src/Content/Conversation.php:371 src/Module/Item/Compose.php:197 -#: src/Module/Post/Edit.php:177 src/Object/Post.php:1067 +#: src/Module/Post/Edit.php:177 src/Object/Post.php:1072 msgid "Link or Media" msgstr "" @@ -1355,25 +1355,25 @@ msgstr "" msgid "Open Compose page" msgstr "" -#: src/Content/Conversation.php:677 src/Object/Post.php:243 +#: src/Content/Conversation.php:677 src/Object/Post.php:244 msgid "Pinned item" msgstr "" -#: src/Content/Conversation.php:693 src/Object/Post.php:491 -#: src/Object/Post.php:492 +#: src/Content/Conversation.php:693 src/Object/Post.php:496 +#: src/Object/Post.php:497 #, php-format msgid "View %s's profile @ %s" msgstr "" -#: src/Content/Conversation.php:706 src/Object/Post.php:479 +#: src/Content/Conversation.php:706 src/Object/Post.php:484 msgid "Categories:" msgstr "" -#: src/Content/Conversation.php:707 src/Object/Post.php:480 +#: src/Content/Conversation.php:707 src/Object/Post.php:485 msgid "Filed under:" msgstr "" -#: src/Content/Conversation.php:715 src/Object/Post.php:505 +#: src/Content/Conversation.php:715 src/Object/Post.php:510 #, php-format msgid "%s from %s" msgstr "" @@ -1601,7 +1601,7 @@ msgstr "" msgid "show more" msgstr "" -#: src/Content/Item.php:326 src/Model/Item.php:2913 +#: src/Content/Item.php:326 src/Model/Item.php:2922 msgid "event" msgstr "" @@ -1609,7 +1609,7 @@ msgstr "" msgid "status" msgstr "" -#: src/Content/Item.php:335 src/Model/Item.php:2915 +#: src/Content/Item.php:335 src/Model/Item.php:2924 #: src/Module/Post/Tag/Add.php:123 msgid "photo" msgstr "" @@ -1672,7 +1672,7 @@ msgstr "" msgid "Collapse" msgstr "" -#: src/Content/Item.php:432 src/Object/Post.php:460 +#: src/Content/Item.php:432 src/Object/Post.php:465 msgid "Languages" msgstr "" @@ -2015,8 +2015,8 @@ msgid "" "%2$s %3$s" msgstr "" -#: src/Content/Text/BBCode.php:956 src/Model/Item.php:3598 -#: src/Model/Item.php:3604 src/Model/Item.php:3605 +#: src/Content/Text/BBCode.php:956 src/Model/Item.php:3607 +#: src/Model/Item.php:3613 src/Model/Item.php:3614 msgid "Link to source" msgstr "" @@ -2263,64 +2263,64 @@ msgstr "" msgid "Unfollow" msgstr "" -#: src/Core/ACL.php:165 src/Module/Profile/Profile.php:269 +#: src/Core/ACL.php:166 src/Module/Profile/Profile.php:269 msgid "Yourself" msgstr "" -#: src/Core/ACL.php:201 src/Module/PermissionTooltip.php:133 +#: src/Core/ACL.php:202 src/Module/PermissionTooltip.php:133 #: src/Module/PermissionTooltip.php:155 msgid "Mutuals" msgstr "" -#: src/Core/ACL.php:293 +#: src/Core/ACL.php:294 msgid "Post to Email" msgstr "" -#: src/Core/ACL.php:320 src/Module/PermissionTooltip.php:90 +#: src/Core/ACL.php:321 src/Module/PermissionTooltip.php:90 #: src/Module/PermissionTooltip.php:201 msgid "Public" msgstr "" -#: src/Core/ACL.php:321 +#: src/Core/ACL.php:322 msgid "" "This content will be shown to all your followers and can be seen in the " "community pages and by anyone with its link." msgstr "" -#: src/Core/ACL.php:322 src/Module/PermissionTooltip.php:98 +#: src/Core/ACL.php:323 src/Module/PermissionTooltip.php:98 msgid "Limited/Private" msgstr "" -#: src/Core/ACL.php:323 +#: src/Core/ACL.php:324 msgid "" "This content will be shown only to the people in the first box, to the " "exception of the people mentioned in the second box. It won't appear " "anywhere public." msgstr "" -#: src/Core/ACL.php:323 +#: src/Core/ACL.php:324 msgid "" "Start typing the name of a contact or a group to show a filtered list. You " "can also mention the special groups \"Followers\" and \"Mutuals\"." msgstr "" -#: src/Core/ACL.php:324 +#: src/Core/ACL.php:325 msgid "Show to:" msgstr "" -#: src/Core/ACL.php:325 +#: src/Core/ACL.php:326 msgid "Except to:" msgstr "" -#: src/Core/ACL.php:326 src/Module/Post/Edit.php:154 +#: src/Core/ACL.php:327 src/Module/Post/Edit.php:154 msgid "CC: email addresses" msgstr "" -#: src/Core/ACL.php:327 src/Module/Post/Edit.php:160 +#: src/Core/ACL.php:328 src/Module/Post/Edit.php:160 msgid "Example: bob@example.com, mary@example.com" msgstr "" -#: src/Core/ACL.php:328 +#: src/Core/ACL.php:329 msgid "Connectors" msgstr "" @@ -3185,81 +3185,81 @@ msgstr "" msgid "Edit groups" msgstr "" -#: src/Model/Item.php:2014 +#: src/Model/Item.php:2023 #, php-format msgid "Detected languages in this post:\\n%s" msgstr "" -#: src/Model/Item.php:2917 +#: src/Model/Item.php:2926 msgid "activity" msgstr "" -#: src/Model/Item.php:2919 +#: src/Model/Item.php:2928 msgid "comment" msgstr "" -#: src/Model/Item.php:2922 src/Module/Post/Tag/Add.php:123 +#: src/Model/Item.php:2931 src/Module/Post/Tag/Add.php:123 msgid "post" msgstr "" -#: src/Model/Item.php:3084 +#: src/Model/Item.php:3093 #, php-format msgid "%s is blocked" msgstr "" -#: src/Model/Item.php:3086 +#: src/Model/Item.php:3095 #, php-format msgid "%s is ignored" msgstr "" -#: src/Model/Item.php:3088 +#: src/Model/Item.php:3097 #, php-format msgid "Content from %s is collapsed" msgstr "" -#: src/Model/Item.php:3092 +#: src/Model/Item.php:3101 #, php-format msgid "Content warning: %s" msgstr "" -#: src/Model/Item.php:3510 +#: src/Model/Item.php:3519 msgid "bytes" msgstr "" -#: src/Model/Item.php:3541 +#: src/Model/Item.php:3550 #, php-format msgid "%2$s (%3$d%%, %1$d vote)" msgid_plural "%2$s (%3$d%%, %1$d votes)" msgstr[0] "" msgstr[1] "" -#: src/Model/Item.php:3543 +#: src/Model/Item.php:3552 #, php-format msgid "%2$s (%1$d vote)" msgid_plural "%2$s (%1$d votes)" msgstr[0] "" msgstr[1] "" -#: src/Model/Item.php:3548 +#: src/Model/Item.php:3557 #, php-format msgid "%d voter. Poll end: %s" msgid_plural "%d voters. Poll end: %s" msgstr[0] "" msgstr[1] "" -#: src/Model/Item.php:3550 +#: src/Model/Item.php:3559 #, php-format msgid "%d voter." msgid_plural "%d voters." msgstr[0] "" msgstr[1] "" -#: src/Model/Item.php:3552 +#: src/Model/Item.php:3561 #, php-format msgid "Poll end: %s" msgstr "" -#: src/Model/Item.php:3586 src/Model/Item.php:3587 +#: src/Model/Item.php:3595 src/Model/Item.php:3596 msgid "View on separate page" msgstr "" @@ -5741,7 +5741,7 @@ msgid "Only show blocked contacts" msgstr "" #: src/Module/Contact.php:362 src/Module/Contact.php:417 -#: src/Object/Post.php:344 +#: src/Object/Post.php:345 msgid "Ignored" msgstr "" @@ -6446,7 +6446,7 @@ msgstr "" msgid "Posts that mention or involve you" msgstr "" -#: src/Module/Conversation/Network.php:289 src/Object/Post.php:356 +#: src/Module/Conversation/Network.php:289 src/Object/Post.php:357 msgid "Starred" msgstr "" @@ -11249,230 +11249,230 @@ msgstr "" msgid "Connector Message" msgstr "" -#: src/Object/Post.php:221 src/Object/Post.php:223 +#: src/Object/Post.php:222 src/Object/Post.php:224 msgid "Edit" msgstr "" -#: src/Object/Post.php:247 +#: src/Object/Post.php:248 msgid "Delete globally" msgstr "" -#: src/Object/Post.php:247 +#: src/Object/Post.php:248 msgid "Remove locally" msgstr "" -#: src/Object/Post.php:264 +#: src/Object/Post.php:265 #, php-format msgid "Block %s" msgstr "" -#: src/Object/Post.php:269 +#: src/Object/Post.php:270 #, php-format msgid "Ignore %s" msgstr "" -#: src/Object/Post.php:274 +#: src/Object/Post.php:275 msgid "Save to folder" msgstr "" -#: src/Object/Post.php:309 +#: src/Object/Post.php:310 msgid "I will attend" msgstr "" -#: src/Object/Post.php:309 +#: src/Object/Post.php:310 msgid "I will not attend" msgstr "" -#: src/Object/Post.php:309 +#: src/Object/Post.php:310 msgid "I might attend" msgstr "" -#: src/Object/Post.php:339 +#: src/Object/Post.php:340 msgid "Ignore thread" msgstr "" -#: src/Object/Post.php:340 +#: src/Object/Post.php:341 msgid "Unignore thread" msgstr "" -#: src/Object/Post.php:341 +#: src/Object/Post.php:342 msgid "Toggle ignore status" msgstr "" -#: src/Object/Post.php:351 +#: src/Object/Post.php:352 msgid "Add star" msgstr "" -#: src/Object/Post.php:352 +#: src/Object/Post.php:353 msgid "Remove star" msgstr "" -#: src/Object/Post.php:353 +#: src/Object/Post.php:354 msgid "Toggle star status" msgstr "" -#: src/Object/Post.php:364 +#: src/Object/Post.php:365 msgid "Pin" msgstr "" -#: src/Object/Post.php:365 +#: src/Object/Post.php:366 msgid "Unpin" msgstr "" -#: src/Object/Post.php:366 +#: src/Object/Post.php:367 msgid "Toggle pin status" msgstr "" -#: src/Object/Post.php:369 +#: src/Object/Post.php:370 msgid "Pinned" msgstr "" -#: src/Object/Post.php:374 +#: src/Object/Post.php:375 msgid "Add tag" msgstr "" -#: src/Object/Post.php:387 +#: src/Object/Post.php:388 msgid "Quote share this" msgstr "" -#: src/Object/Post.php:387 +#: src/Object/Post.php:388 msgid "Quote Share" msgstr "" -#: src/Object/Post.php:390 +#: src/Object/Post.php:391 msgid "Reshare this" msgstr "" -#: src/Object/Post.php:390 +#: src/Object/Post.php:391 msgid "Reshare" msgstr "" -#: src/Object/Post.php:391 +#: src/Object/Post.php:392 msgid "Cancel your Reshare" msgstr "" -#: src/Object/Post.php:391 +#: src/Object/Post.php:392 msgid "Unshare" msgstr "" -#: src/Object/Post.php:438 +#: src/Object/Post.php:443 #, php-format msgid "%s (Received %s)" msgstr "" -#: src/Object/Post.php:443 +#: src/Object/Post.php:448 msgid "Comment this item on your system" msgstr "" -#: src/Object/Post.php:443 +#: src/Object/Post.php:448 msgid "Remote comment" msgstr "" -#: src/Object/Post.php:464 +#: src/Object/Post.php:469 msgid "Share via ..." msgstr "" -#: src/Object/Post.php:464 +#: src/Object/Post.php:469 msgid "Share via external services" msgstr "" -#: src/Object/Post.php:493 +#: src/Object/Post.php:498 msgid "to" msgstr "" -#: src/Object/Post.php:494 +#: src/Object/Post.php:499 msgid "via" msgstr "" -#: src/Object/Post.php:495 +#: src/Object/Post.php:500 msgid "Wall-to-Wall" msgstr "" -#: src/Object/Post.php:496 +#: src/Object/Post.php:501 msgid "via Wall-To-Wall:" msgstr "" -#: src/Object/Post.php:540 +#: src/Object/Post.php:545 #, php-format msgid "Reply to %s" msgstr "" -#: src/Object/Post.php:543 +#: src/Object/Post.php:548 msgid "More" msgstr "" -#: src/Object/Post.php:561 +#: src/Object/Post.php:566 msgid "Notifier task is pending" msgstr "" -#: src/Object/Post.php:562 +#: src/Object/Post.php:567 msgid "Delivery to remote servers is pending" msgstr "" -#: src/Object/Post.php:563 +#: src/Object/Post.php:568 msgid "Delivery to remote servers is underway" msgstr "" -#: src/Object/Post.php:564 +#: src/Object/Post.php:569 msgid "Delivery to remote servers is mostly done" msgstr "" -#: src/Object/Post.php:565 +#: src/Object/Post.php:570 msgid "Delivery to remote servers is done" msgstr "" -#: src/Object/Post.php:585 +#: src/Object/Post.php:590 #, php-format msgid "%d comment" msgid_plural "%d comments" msgstr[0] "" msgstr[1] "" -#: src/Object/Post.php:586 +#: src/Object/Post.php:591 msgid "Show more" msgstr "" -#: src/Object/Post.php:587 +#: src/Object/Post.php:592 msgid "Show fewer" msgstr "" -#: src/Object/Post.php:623 -#, php-format -msgid "Reshared by: %s" -msgstr "" - #: src/Object/Post.php:628 #, php-format -msgid "Viewed by: %s" +msgid "Reshared by: %s" msgstr "" #: src/Object/Post.php:633 #, php-format -msgid "Liked by: %s" +msgid "Viewed by: %s" msgstr "" #: src/Object/Post.php:638 #, php-format -msgid "Disliked by: %s" +msgid "Liked by: %s" msgstr "" #: src/Object/Post.php:643 #, php-format -msgid "Attended by: %s" +msgid "Disliked by: %s" msgstr "" #: src/Object/Post.php:648 #, php-format -msgid "Maybe attended by: %s" +msgid "Attended by: %s" msgstr "" #: src/Object/Post.php:653 #, php-format -msgid "Not attended by: %s" +msgid "Maybe attended by: %s" msgstr "" #: src/Object/Post.php:658 #, php-format +msgid "Not attended by: %s" +msgstr "" + +#: src/Object/Post.php:663 +#, php-format msgid "Reacted with %s by: %s" msgstr ""