diff --git a/mod/item.php b/mod/item.php index f1224b1f5..924059df8 100644 --- a/mod/item.php +++ b/mod/item.php @@ -77,8 +77,6 @@ function item_post(App $a) { Logger::debug('postvars', ['_REQUEST' => $_REQUEST]); - $api_source = $_REQUEST['api_source'] ?? false; - $return_path = $_REQUEST['return'] ?? ''; $preview = intval($_REQUEST['preview'] ?? 0); @@ -90,7 +88,7 @@ function item_post(App $a) { if (!$preview && !empty($_REQUEST['post_id_random'])) { if (!empty($_SESSION['post-random']) && $_SESSION['post-random'] == $_REQUEST['post_id_random']) { Logger::warning('duplicate post'); - item_post_return(DI::baseUrl(), $api_source, $return_path); + item_post_return(DI::baseUrl(), $return_path); } else { $_SESSION['post-random'] = $_REQUEST['post_id_random']; } @@ -106,7 +104,7 @@ function item_post(App $a) { $toplevel_user_id = null; $objecttype = null; - $profile_uid = ($_REQUEST['profile_uid'] ?? 0) ?: DI::userSession()->getLocalUserId(); + $profile_uid = DI::userSession()->getLocalUserId(); $posttype = ($_REQUEST['post_type'] ?? '') ?: Item::PT_ARTICLE; if ($parent_item_id || $thr_parent_uri) { @@ -177,7 +175,7 @@ function item_post(App $a) { // Now check that valid personal details have been provided if (!Security::canWriteToUserWall($profile_uid) && !$allow_comment) { - Logger::warning('Permission denied.', ['local' => DI::userSession()->getLocalUserId(), 'profile_uid' => $profile_uid, 'toplevel_item_id' => $toplevel_item_id, 'network' => $toplevel_item['network']]); + Logger::warning('Permission denied.', ['local' => DI::userSession()->getLocalUserId(), 'toplevel_item_id' => $toplevel_item_id, 'network' => $toplevel_item['network']]); DI::sysmsg()->addNotice(DI::l10n()->t('Permission denied.')); if ($return_path) { DI::baseUrl()->redirect($return_path); @@ -322,13 +320,6 @@ function item_post(App $a) { $pubmail_enabled = ($_REQUEST['pubmail_enable'] ?? false) && !$private; - // if using the API, we won't see pubmail_enable - figure out if it should be set - if ($api_source && $profile_uid && $profile_uid == DI::userSession()->getLocalUserId() && !$private) { - if (function_exists('imap_open') && !DI::config()->get('system', 'imap_disabled')) { - $pubmail_enabled = DBA::exists('mailacct', ["`uid` = ? AND `server` != ? AND `pubmail`", DI::userSession()->getLocalUserId(), '']); - } - } - if (!strlen($body)) { if ($preview) { System::jsonExit(['preview' => '']); @@ -579,7 +570,7 @@ function item_post(App $a) { 'parent' => $toplevel_item_id, 'self' => $self, // This triggers posts via API and the mirror functions - 'api_source' => $api_source, + 'api_source' => false, // This field is for storing the raw conversation data 'protocol' => Conversation::PARCEL_DIRECT, 'direction' => Conversation::PUSH, @@ -634,7 +625,7 @@ function item_post(App $a) { unset($datarray['api_source']); Post\Delayed::add($datarray['uri'], $datarray, Worker::PRIORITY_HIGH, Post\Delayed::PREPARED_NO_HOOK, $scheduled_at); - item_post_return(DI::baseUrl(), $api_source, $return_path); + item_post_return(DI::baseUrl(), $return_path); } } @@ -755,20 +746,12 @@ function item_post(App $a) { Logger::debug('post_complete'); - if ($api_source) { - return $post_id; - } - - item_post_return(DI::baseUrl(), $api_source, $return_path); + item_post_return(DI::baseUrl(), $return_path); // NOTREACHED } -function item_post_return($baseurl, $api_source, $return_path) +function item_post_return($baseurl, $return_path) { - if ($api_source) { - return; - } - if ($return_path) { DI::baseUrl()->redirect($return_path); } diff --git a/mod/oexchange.php b/mod/oexchange.php index dd3809bc7..8ff49797c 100644 --- a/mod/oexchange.php +++ b/mod/oexchange.php @@ -119,7 +119,6 @@ function oexchange_content(App $a) $post = []; - $post['profile_uid'] = DI::userSession()->getLocalUserId(); $post['return'] = '/oexchange/done'; $post['body'] = HTML::toBBCode($s); diff --git a/src/Model/Contact.php b/src/Model/Contact.php index ce392217d..e0c3c1682 100644 --- a/src/Model/Contact.php +++ b/src/Model/Contact.php @@ -106,7 +106,7 @@ class Contact */ const MIRROR_DEACTIVATED = 0; - const MIRROR_FORWARDED = 1; + const MIRROR_FORWARDED = 1; // Deprecated, now does the same like MIRROR_OWN_POST const MIRROR_OWN_POST = 2; const MIRROR_NATIVE_RESHARE = 3; diff --git a/src/Model/Item.php b/src/Model/Item.php index 5271dcefa..48c578e85 100644 --- a/src/Model/Item.php +++ b/src/Model/Item.php @@ -815,6 +815,49 @@ class Item return self::GRAVITY_UNKNOWN; // Should not happen } + private static function prepareOriginPost(array $item): array + { + $item['wall'] = 1; + $item['origin'] = 1; + $item['network'] = Protocol::DFRN; + $item['protocol'] = Conversation::PARCEL_DIRECT; + $item['direction'] = Conversation::PUSH; + + $owner = User::getOwnerDataById($item['uid']); + + if (empty($item['contact-id'])) { + $item['contact-id'] = $owner['id']; + } + + if (empty($item['author-link']) && empty($item['author-id'])) { + $item['author-link'] = $owner['url']; + $item['author-name'] = $owner['name']; + $item['author-avatar'] = $owner['thumb']; + } + + if (empty($item['owner-link']) && empty($item['owner-id'])) { + $item['owner-link'] = $item['author-link']; + $item['owner-name'] = $item['author-name']; + $item['owner-avatar'] = $item['author-avatar']; + } + + // Setting the object type if not defined before + if (empty($item['object-type'])) { + $item['object-type'] = Activity\ObjectType::NOTE; // Default value + $objectdata = BBCode::getAttachedData($item['body']); + + if ($objectdata['type'] == 'link') { + $item['object-type'] = Activity\ObjectType::BOOKMARK; + } elseif ($objectdata['type'] == 'video') { + $item['object-type'] = Activity\ObjectType::VIDEO; + } elseif ($objectdata['type'] == 'photo') { + $item['object-type'] = Activity\ObjectType::IMAGE; + } + } + + return $item; + } + /** * Inserts item record * @@ -831,11 +874,7 @@ class Item // If it is a posting where users should get notifications, then define it as wall posting if ($notify) { - $item['wall'] = 1; - $item['origin'] = 1; - $item['network'] = Protocol::DFRN; - $item['protocol'] = Conversation::PARCEL_DIRECT; - $item['direction'] = Conversation::PUSH; + $item = self::prepareOriginPost($item); if (is_int($notify) && in_array($notify, Worker::PRIORITIES)) { $priority = $notify; @@ -993,6 +1032,7 @@ class Item $item['parent-uri'] = $toplevel_parent['uri']; $item['parent-uri-id'] = $toplevel_parent['uri-id']; $item['deleted'] = $toplevel_parent['deleted']; + $item['wall'] = $toplevel_parent['wall']; // Reshares have to keep their permissions to allow forums to work if (!$item['origin'] || ($item['verb'] != Activity::ANNOUNCE)) { @@ -2974,7 +3014,7 @@ class Item $quote_uri_id = $shared['post']['uri-id']; $shared_links[] = strtolower($shared['post']['uri']); $item['body'] = BBCode::removeSharedData($item['body']); - } elseif (empty($shared_item['uri-id']) && empty($item['quote-uri-id'])) { + } elseif (empty($shared_item['uri-id']) && empty($item['quote-uri-id']) && ($item['network'] != Protocol::DIASPORA)) { $media = Post\Media::getByURIId($item['uri-id'], [Post\Media::ACTIVITY]); if (!empty($media)) { $shared_item = Post::selectFirst($fields, ['plink' => $media[0]['url'], 'uid' => [$item['uid'], 0]]); diff --git a/src/Model/Post/Delayed.php b/src/Model/Post/Delayed.php index 3f96af698..ac5a9c20b 100644 --- a/src/Model/Post/Delayed.php +++ b/src/Model/Post/Delayed.php @@ -38,12 +38,6 @@ class Delayed * This is used for automated scheduled posts via feeds or from the API. */ const PREPARED = 0; - /** - * The content is posted like a manual post. Means some processing of body will be done. - * Also it is posted with default permissions and default connector settings. - * This is used for mirrored connector posts. - */ - const UNPREPARED = 1; /** * Like PREPARED, but additionally the connector settings can differ. * This is used when manually publishing scheduled posts. @@ -199,34 +193,6 @@ class Delayed $item['attachments'] = $attachments; } - if ($preparation_mode == self::UNPREPARED) { - $_SESSION['authenticated'] = true; - $_SESSION['uid'] = $item['uid']; - - $_REQUEST = $item; - $_REQUEST['api_source'] = true; - $_REQUEST['profile_uid'] = $item['uid']; - $_REQUEST['title'] = $item['title'] ?? ''; - - if (!empty($item['app'])) { - $_REQUEST['source'] = $item['app']; - } - - require_once 'mod/item.php'; - $id = item_post(DI::app()); - - if (empty($uri) && !empty($item['extid'])) { - $uri = $item['extid']; - } - - Logger::notice('Unprepared post stored', ['id' => $id, 'uid' => $item['uid'], 'uri' => $uri]); - if (self::exists($uri, $item['uid'])) { - self::delete($uri, $item['uid']); - } - - return $id; - } - $id = Item::insert($item, $notify, $preparation_mode == self::PREPARED); Logger::notice('Post stored', ['id' => $id, 'uid' => $item['uid'], 'cid' => $item['contact-id']]); diff --git a/src/Module/Contact/Profile.php b/src/Module/Contact/Profile.php index ecb25dd60..b3d0c0373 100644 --- a/src/Module/Contact/Profile.php +++ b/src/Module/Contact/Profile.php @@ -285,7 +285,6 @@ class Profile extends BaseModule if ($contact['network'] == Protocol::FEED) { $remote_self_options = [ Contact::MIRROR_DEACTIVATED => $this->t('No mirroring'), - Contact::MIRROR_FORWARDED => $this->t('Mirror as forwarded posting'), Contact::MIRROR_OWN_POST => $this->t('Mirror as my own posting') ]; } elseif ($contact['network'] == Protocol::ACTIVITYPUB) { diff --git a/view/lang/C/messages.po b/view/lang/C/messages.po index 90f89211d..8494c627f 100644 --- a/view/lang/C/messages.po +++ b/view/lang/C/messages.po @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: 2022.12-dev\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2022-11-20 17:22-0500\n" +"POT-Creation-Date: 2022-11-23 14:15+0000\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" @@ -41,11 +41,11 @@ msgstr "" msgid "Files" msgstr "" -#: mod/item.php:131 mod/item.php:135 +#: mod/item.php:129 mod/item.php:133 msgid "Unable to locate original post." msgstr "" -#: mod/item.php:181 mod/item.php:186 mod/item.php:870 mod/message.php:69 +#: mod/item.php:179 mod/item.php:184 mod/item.php:853 mod/message.php:69 #: mod/message.php:114 mod/notes.php:44 mod/photos.php:159 mod/photos.php:884 #: src/Module/Attach.php:56 src/Module/BaseApi.php:94 #: src/Module/BaseNotifications.php:98 src/Module/BaseSettings.php:52 @@ -84,23 +84,23 @@ msgstr "" msgid "Permission denied." msgstr "" -#: mod/item.php:337 mod/item.php:342 +#: mod/item.php:328 mod/item.php:333 msgid "Empty post discarded." msgstr "" -#: mod/item.php:680 +#: mod/item.php:671 msgid "Post updated." msgstr "" -#: mod/item.php:690 mod/item.php:695 +#: mod/item.php:681 mod/item.php:686 msgid "Item wasn't stored." msgstr "" -#: mod/item.php:706 +#: mod/item.php:697 msgid "Item couldn't be fetched." msgstr "" -#: mod/item.php:846 src/Module/Admin/Themes/Details.php:39 +#: mod/item.php:829 src/Module/Admin/Themes/Details.php:39 #: src/Module/Admin/Themes/Index.php:59 src/Module/Debug/ItemBody.php:42 #: src/Module/Debug/ItemBody.php:57 src/Module/Item/Feed.php:80 msgid "Item not found." @@ -327,7 +327,7 @@ msgstr "" #: mod/photos.php:1018 mod/photos.php:1290 mod/photos.php:1331 #: mod/photos.php:1387 mod/photos.php:1461 #: src/Module/Calendar/Event/Form.php:250 src/Module/Contact/Advanced.php:132 -#: src/Module/Contact/Profile.php:328 +#: src/Module/Contact/Profile.php:327 #: src/Module/Debug/ActivityPubConversion.php:140 #: src/Module/Debug/Babel.php:313 src/Module/Debug/Localtime.php:64 #: src/Module/Debug/Probe.php:54 src/Module/Debug/WebFinger.php:51 @@ -1554,7 +1554,7 @@ msgstr "" msgid "show more" msgstr "" -#: src/Content/Item.php:294 src/Model/Item.php:2871 +#: src/Content/Item.php:294 src/Model/Item.php:2911 msgid "event" msgstr "" @@ -1563,7 +1563,7 @@ msgstr "" msgid "status" msgstr "" -#: src/Content/Item.php:303 src/Model/Item.php:2873 +#: src/Content/Item.php:303 src/Model/Item.php:2913 #: src/Module/Post/Tag/Add.php:123 msgid "photo" msgstr "" @@ -1606,7 +1606,7 @@ msgid "Send PM" msgstr "" #: src/Content/Item.php:393 src/Module/Contact.php:401 -#: src/Module/Contact/Profile.php:349 src/Module/Contact/Profile.php:468 +#: src/Module/Contact/Profile.php:348 src/Module/Contact/Profile.php:467 #: src/Module/Moderation/Blocklist/Contact.php:116 #: src/Module/Moderation/Users/Active.php:137 #: src/Module/Moderation/Users/Index.php:152 @@ -1614,7 +1614,7 @@ msgid "Block" msgstr "" #: src/Content/Item.php:394 src/Module/Contact.php:402 -#: src/Module/Contact/Profile.php:350 src/Module/Contact/Profile.php:476 +#: src/Module/Contact/Profile.php:349 src/Module/Contact/Profile.php:475 #: src/Module/Notifications/Introductions.php:134 #: src/Module/Notifications/Introductions.php:206 #: src/Module/Notifications/Notification.php:89 @@ -1665,7 +1665,7 @@ msgid "Sign in" msgstr "" #: src/Content/Nav.php:193 src/Module/BaseProfile.php:56 -#: src/Module/Contact.php:436 src/Module/Contact/Profile.php:381 +#: src/Module/Contact.php:436 src/Module/Contact/Profile.php:380 #: src/Module/Settings/TwoFactor/Index.php:119 view/theme/frio/theme.php:237 msgid "Status" msgstr "" @@ -1677,7 +1677,7 @@ msgstr "" #: src/Content/Nav.php:194 src/Module/BaseProfile.php:48 #: src/Module/BaseSettings.php:100 src/Module/Contact.php:460 -#: src/Module/Contact/Profile.php:383 src/Module/Profile/Profile.php:240 +#: src/Module/Contact/Profile.php:382 src/Module/Profile/Profile.php:240 #: src/Module/Welcome.php:57 view/theme/frio/theme.php:238 msgid "Profile" msgstr "" @@ -1953,8 +1953,8 @@ msgid "" "%2$s %3$s" msgstr "" -#: src/Content/Text/BBCode.php:1245 src/Model/Item.php:3493 -#: src/Model/Item.php:3499 src/Model/Item.php:3500 +#: src/Content/Text/BBCode.php:1245 src/Model/Item.php:3533 +#: src/Model/Item.php:3539 src/Model/Item.php:3540 msgid "Link to source" msgstr "" @@ -1987,7 +1987,7 @@ msgid "The end" msgstr "" #: src/Content/Text/HTML.php:882 src/Content/Widget/VCard.php:109 -#: src/Model/Profile.php:459 src/Module/Contact/Profile.php:428 +#: src/Model/Profile.php:459 src/Module/Contact/Profile.php:427 msgid "Follow" msgstr "" @@ -2173,19 +2173,19 @@ msgid "More Trending Tags" msgstr "" #: src/Content/Widget/VCard.php:102 src/Model/Profile.php:378 -#: src/Module/Contact/Profile.php:372 src/Module/Profile/Profile.php:175 +#: src/Module/Contact/Profile.php:371 src/Module/Profile/Profile.php:175 msgid "XMPP:" msgstr "" #: src/Content/Widget/VCard.php:103 src/Model/Profile.php:379 -#: src/Module/Contact/Profile.php:374 src/Module/Profile/Profile.php:179 +#: src/Module/Contact/Profile.php:373 src/Module/Profile/Profile.php:179 msgid "Matrix:" msgstr "" #: src/Content/Widget/VCard.php:104 src/Model/Event.php:82 #: src/Model/Event.php:109 src/Model/Event.php:471 src/Model/Event.php:992 #: src/Model/Profile.php:373 src/Module/Calendar/Event/Form.php:239 -#: src/Module/Contact/Profile.php:370 src/Module/Directory.php:147 +#: src/Module/Contact/Profile.php:369 src/Module/Directory.php:147 #: src/Module/Notifications/Introductions.php:187 #: src/Module/Profile/Profile.php:193 msgid "Location:" @@ -2198,7 +2198,7 @@ msgstr "" #: src/Content/Widget/VCard.php:111 src/Model/Contact.php:1193 #: src/Model/Contact.php:1204 src/Model/Profile.php:461 -#: src/Module/Contact/Profile.php:420 +#: src/Module/Contact/Profile.php:419 msgid "Unfollow" msgstr "" @@ -3113,66 +3113,66 @@ msgstr "" msgid "Edit groups" msgstr "" -#: src/Model/Item.php:1983 +#: src/Model/Item.php:2023 #, php-format msgid "Detected languages in this post:\\n%s" msgstr "" -#: src/Model/Item.php:2875 +#: src/Model/Item.php:2915 msgid "activity" msgstr "" -#: src/Model/Item.php:2877 +#: src/Model/Item.php:2917 msgid "comment" msgstr "" -#: src/Model/Item.php:2880 +#: src/Model/Item.php:2920 msgid "post" msgstr "" -#: src/Model/Item.php:3021 +#: src/Model/Item.php:3061 #, php-format msgid "Content warning: %s" msgstr "" -#: src/Model/Item.php:3405 +#: src/Model/Item.php:3445 msgid "bytes" msgstr "" -#: src/Model/Item.php:3436 +#: src/Model/Item.php:3476 #, 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:3438 +#: src/Model/Item.php:3478 #, php-format msgid "%2$s (%1$d vote)" msgid_plural "%2$s (%1$d votes)" msgstr[0] "" msgstr[1] "" -#: src/Model/Item.php:3443 +#: src/Model/Item.php:3483 #, php-format msgid "%d voter. Poll end: %s" msgid_plural "%d voters. Poll end: %s" msgstr[0] "" msgstr[1] "" -#: src/Model/Item.php:3445 +#: src/Model/Item.php:3485 #, php-format msgid "%d voter." msgid_plural "%d voters." msgstr[0] "" msgstr[1] "" -#: src/Model/Item.php:3447 +#: src/Model/Item.php:3487 #, php-format msgid "Poll end: %s" msgstr "" -#: src/Model/Item.php:3481 src/Model/Item.php:3482 +#: src/Model/Item.php:3521 src/Model/Item.php:3522 msgid "View on separate page" msgstr "" @@ -3198,7 +3198,7 @@ msgstr "" msgid "Homepage:" msgstr "" -#: src/Model/Profile.php:377 src/Module/Contact/Profile.php:376 +#: src/Model/Profile.php:377 src/Module/Contact/Profile.php:375 #: src/Module/Notifications/Introductions.php:189 msgid "About:" msgstr "" @@ -5656,16 +5656,16 @@ msgstr "" msgid "Update" msgstr "" -#: src/Module/Contact.php:401 src/Module/Contact/Profile.php:349 -#: src/Module/Contact/Profile.php:468 +#: src/Module/Contact.php:401 src/Module/Contact/Profile.php:348 +#: src/Module/Contact/Profile.php:467 #: src/Module/Moderation/Blocklist/Contact.php:117 #: src/Module/Moderation/Users/Blocked.php:138 #: src/Module/Moderation/Users/Index.php:154 msgid "Unblock" msgstr "" -#: src/Module/Contact.php:402 src/Module/Contact/Profile.php:350 -#: src/Module/Contact/Profile.php:476 +#: src/Module/Contact.php:402 src/Module/Contact/Profile.php:349 +#: src/Module/Contact/Profile.php:475 msgid "Unignore" msgstr "" @@ -5713,7 +5713,7 @@ msgstr "" msgid "Pending incoming contact request" msgstr "" -#: src/Module/Contact.php:555 src/Module/Contact/Profile.php:335 +#: src/Module/Contact.php:555 src/Module/Contact/Profile.php:334 #, php-format msgid "Visit %s's profile [%s]" msgstr "" @@ -5866,7 +5866,7 @@ msgstr "" msgid "Your Identity Address:" msgstr "" -#: src/Module/Contact/Follow.php:170 src/Module/Contact/Profile.php:366 +#: src/Module/Contact/Follow.php:170 src/Module/Contact/Profile.php:365 #: src/Module/Contact/Unfollow.php:129 #: src/Module/Moderation/Blocklist/Contact.php:133 #: src/Module/Notifications/Introductions.php:129 @@ -5874,7 +5874,7 @@ msgstr "" msgid "Profile URL" msgstr "" -#: src/Module/Contact/Follow.php:171 src/Module/Contact/Profile.php:378 +#: src/Module/Contact/Follow.php:171 src/Module/Contact/Profile.php:377 #: src/Module/Notifications/Introductions.php:191 #: src/Module/Profile/Profile.php:206 msgid "Tags:" @@ -5960,7 +5960,7 @@ msgstr "" msgid "(Update was successful)" msgstr "" -#: src/Module/Contact/Profile.php:255 src/Module/Contact/Profile.php:439 +#: src/Module/Contact/Profile.php:255 src/Module/Contact/Profile.php:438 msgid "Suggest friends" msgstr "" @@ -5996,144 +5996,140 @@ msgstr "" msgid "Fetch information and keywords" msgstr "" -#: src/Module/Contact/Profile.php:287 src/Module/Contact/Profile.php:293 -#: src/Module/Contact/Profile.php:298 src/Module/Contact/Profile.php:304 +#: src/Module/Contact/Profile.php:287 src/Module/Contact/Profile.php:292 +#: src/Module/Contact/Profile.php:297 src/Module/Contact/Profile.php:303 msgid "No mirroring" msgstr "" -#: src/Module/Contact/Profile.php:288 -msgid "Mirror as forwarded posting" -msgstr "" - -#: src/Module/Contact/Profile.php:289 src/Module/Contact/Profile.php:299 -#: src/Module/Contact/Profile.php:305 +#: src/Module/Contact/Profile.php:288 src/Module/Contact/Profile.php:298 +#: src/Module/Contact/Profile.php:304 msgid "Mirror as my own posting" msgstr "" -#: src/Module/Contact/Profile.php:294 src/Module/Contact/Profile.php:300 +#: src/Module/Contact/Profile.php:293 src/Module/Contact/Profile.php:299 msgid "Native reshare" msgstr "" -#: src/Module/Contact/Profile.php:317 +#: src/Module/Contact/Profile.php:316 msgid "Contact Information / Notes" msgstr "" -#: src/Module/Contact/Profile.php:318 +#: src/Module/Contact/Profile.php:317 msgid "Contact Settings" msgstr "" -#: src/Module/Contact/Profile.php:326 +#: src/Module/Contact/Profile.php:325 msgid "Contact" msgstr "" -#: src/Module/Contact/Profile.php:330 +#: src/Module/Contact/Profile.php:329 msgid "Their personal note" msgstr "" -#: src/Module/Contact/Profile.php:332 +#: src/Module/Contact/Profile.php:331 msgid "Edit contact notes" msgstr "" -#: src/Module/Contact/Profile.php:336 +#: src/Module/Contact/Profile.php:335 msgid "Block/Unblock contact" msgstr "" -#: src/Module/Contact/Profile.php:337 +#: src/Module/Contact/Profile.php:336 msgid "Ignore contact" msgstr "" -#: src/Module/Contact/Profile.php:338 +#: src/Module/Contact/Profile.php:337 msgid "View conversations" msgstr "" -#: src/Module/Contact/Profile.php:343 +#: src/Module/Contact/Profile.php:342 msgid "Last update:" msgstr "" -#: src/Module/Contact/Profile.php:345 +#: src/Module/Contact/Profile.php:344 msgid "Update public posts" msgstr "" -#: src/Module/Contact/Profile.php:347 src/Module/Contact/Profile.php:449 +#: src/Module/Contact/Profile.php:346 src/Module/Contact/Profile.php:448 msgid "Update now" msgstr "" -#: src/Module/Contact/Profile.php:354 +#: src/Module/Contact/Profile.php:353 msgid "Currently blocked" msgstr "" -#: src/Module/Contact/Profile.php:355 +#: src/Module/Contact/Profile.php:354 msgid "Currently ignored" msgstr "" -#: src/Module/Contact/Profile.php:356 +#: src/Module/Contact/Profile.php:355 msgid "Currently archived" msgstr "" -#: src/Module/Contact/Profile.php:357 +#: src/Module/Contact/Profile.php:356 msgid "Awaiting connection acknowledge" msgstr "" -#: src/Module/Contact/Profile.php:358 +#: src/Module/Contact/Profile.php:357 #: src/Module/Notifications/Introductions.php:192 msgid "Hide this contact from others" msgstr "" -#: src/Module/Contact/Profile.php:358 +#: src/Module/Contact/Profile.php:357 msgid "" "Replies/likes to your public posts may still be visible" msgstr "" -#: src/Module/Contact/Profile.php:359 +#: src/Module/Contact/Profile.php:358 msgid "Notification for new posts" msgstr "" -#: src/Module/Contact/Profile.php:359 +#: src/Module/Contact/Profile.php:358 msgid "Send a notification of every new post of this contact" msgstr "" -#: src/Module/Contact/Profile.php:361 +#: src/Module/Contact/Profile.php:360 msgid "Keyword Deny List" msgstr "" -#: src/Module/Contact/Profile.php:361 +#: src/Module/Contact/Profile.php:360 msgid "" "Comma separated list of keywords that should not be converted to hashtags, " "when \"Fetch information and keywords\" is selected" msgstr "" -#: src/Module/Contact/Profile.php:379 +#: src/Module/Contact/Profile.php:378 #: src/Module/Settings/TwoFactor/Index.php:139 msgid "Actions" msgstr "" -#: src/Module/Contact/Profile.php:387 +#: src/Module/Contact/Profile.php:386 msgid "Mirror postings from this contact" msgstr "" -#: src/Module/Contact/Profile.php:389 +#: src/Module/Contact/Profile.php:388 msgid "" "Mark this contact as remote_self, this will cause friendica to repost new " "entries from this contact." msgstr "" -#: src/Module/Contact/Profile.php:459 +#: src/Module/Contact/Profile.php:458 msgid "Refetch contact data" msgstr "" -#: src/Module/Contact/Profile.php:470 +#: src/Module/Contact/Profile.php:469 msgid "Toggle Blocked status" msgstr "" -#: src/Module/Contact/Profile.php:478 +#: src/Module/Contact/Profile.php:477 msgid "Toggle Ignored status" msgstr "" -#: src/Module/Contact/Profile.php:485 src/Module/Contact/Revoke.php:106 +#: src/Module/Contact/Profile.php:484 src/Module/Contact/Revoke.php:106 msgid "Revoke Follow" msgstr "" -#: src/Module/Contact/Profile.php:487 +#: src/Module/Contact/Profile.php:486 msgid "Revoke the follow from this contact" msgstr ""