]> git.mxchange.org Git - friendica.git/commitdiff
Diaspora relay functionality is removed
authorMichael <heluecht@pirati.ca>
Sun, 13 Jun 2021 11:15:04 +0000 (11:15 +0000)
committerMichael <heluecht@pirati.ca>
Sun, 13 Jun 2021 11:15:04 +0000 (11:15 +0000)
src/Module/Admin/Site.php
src/Module/WellKnown/XSocialRelay.php
src/Protocol/ActivityPub/Transmitter.php
src/Protocol/Relay.php
src/Worker/Notifier.php
static/settings.config.php
view/lang/C/messages.po
view/templates/admin/site.tpl
view/theme/frio/templates/admin/site.tpl

index c12dd7b753516088799eed8719d838885558bf39..a04b4194df4f921967c7699a4e9ae9237455dc28 100644 (file)
@@ -32,6 +32,7 @@ use Friendica\Model\Contact;
 use Friendica\Model\User;
 use Friendica\Module\BaseAdmin;
 use Friendica\Module\Register;
+use Friendica\Protocol\Relay;
 use Friendica\Util\BasePath;
 use Friendica\Util\EMailer\MailBuilder;
 use Friendica\Util\Strings;
@@ -208,8 +209,6 @@ class Site extends BaseAdmin
                $worker_fastlane  = !empty($_POST['worker_fastlane']);
 
                $relay_directly    = !empty($_POST['relay_directly']);
-               $relay_server      = (!empty($_POST['relay_server'])      ? Strings::escapeTags(trim($_POST['relay_server']))       : '');
-               $relay_subscribe   = !empty($_POST['relay_subscribe']);
                $relay_scope       = (!empty($_POST['relay_scope'])       ? Strings::escapeTags(trim($_POST['relay_scope']))        : '');
                $relay_server_tags = (!empty($_POST['relay_server_tags']) ? Strings::escapeTags(trim($_POST['relay_server_tags']))  : '');
                $relay_deny_tags   = (!empty($_POST['relay_deny_tags'])   ? Strings::escapeTags(trim($_POST['relay_deny_tags']))    : '');
@@ -418,8 +417,6 @@ class Site extends BaseAdmin
                DI::config()->set('system', 'worker_fastlane'  , $worker_fastlane);
 
                DI::config()->set('system', 'relay_directly'   , $relay_directly);
-               DI::config()->set('system', 'relay_server'     , $relay_server);
-               DI::config()->set('system', 'relay_subscribe'  , $relay_subscribe);
                DI::config()->set('system', 'relay_scope'      , $relay_scope);
                DI::config()->set('system', 'relay_server_tags', $relay_server_tags);
                DI::config()->set('system', 'relay_deny_tags'  , $relay_deny_tags);
@@ -589,6 +586,10 @@ class Site extends BaseAdmin
                        '$performance'       => DI::l10n()->t('Performance'),
                        '$worker_title'      => DI::l10n()->t('Worker'),
                        '$relay_title'       => DI::l10n()->t('Message Relay'),
+                       '$relay_description' => DI::l10n()->t('Use the command "console relay" in the command line to add or remove relays.'),
+                       '$no_relay_list'     => DI::l10n()->t('The system is not subscribed to any relays at the moment.'),
+                       '$relay_list_title'  => DI::l10n()->t('The system is currently subscribed to the following relays:'),
+                       '$relay_list'        => Relay::getList(['url']),
                        '$relocate'          => DI::l10n()->t('Relocate Instance'),
                        '$relocate_warning'  => DI::l10n()->t('<strong>Warning!</strong> Advanced function. Could make this server unreachable.'),
                        '$baseurl'           => DI::baseUrl()->get(true),
@@ -688,10 +689,8 @@ class Site extends BaseAdmin
                        '$worker_queues'          => ['worker_queues', DI::l10n()->t('Maximum number of parallel workers'), DI::config()->get('system', 'worker_queues'), DI::l10n()->t('On shared hosters set this to %d. On larger systems, values of %d are great. Default value is %d.', 5, 20, 10)],
                        '$worker_fastlane'        => ['worker_fastlane', DI::l10n()->t('Enable fastlane'), DI::config()->get('system', 'worker_fastlane'), DI::l10n()->t('When enabed, the fastlane mechanism starts an additional worker if processes with higher priority are blocked by processes of lower priority.')],
 
-                       '$relay_subscribe'        => ['relay_subscribe', DI::l10n()->t('Use relay servers'), DI::config()->get('system', 'relay_subscribe'), DI::l10n()->t('Enables the receiving of public posts from relay servers. They will be included in the search, subscribed tags and on the global community page.')],
-                       '$relay_server'           => ['relay_server', DI::l10n()->t('"Social Relay" server'), DI::config()->get('system', 'relay_server'), DI::l10n()->t('Address of the "Social Relay" server where public posts should be send to. For example %s. ActivityRelay servers are administrated via the "console relay" command line command.', 'https://social-relay.isurf.ca')],
                        '$relay_directly'         => ['relay_directly', DI::l10n()->t('Direct relay transfer'), DI::config()->get('system', 'relay_directly'), DI::l10n()->t('Enables the direct transfer to other servers without using the relay servers')],
-                       '$relay_scope'            => ['relay_scope', DI::l10n()->t('Relay scope'), DI::config()->get('system', 'relay_scope'), DI::l10n()->t('Can be "all" or "tags". "all" means that every public post should be received. "tags" means that only posts with selected tags should be received.'), ['' => DI::l10n()->t('Disabled'), 'all' => DI::l10n()->t('all'), 'tags' => DI::l10n()->t('tags')]],
+                       '$relay_scope'            => ['relay_scope', DI::l10n()->t('Relay scope'), DI::config()->get('system', 'relay_scope'), DI::l10n()->t('Can be "all" or "tags". "all" means that every public post should be received. "tags" means that only posts with selected tags should be received.'), [SR_SCOPE_NONE => DI::l10n()->t('Disabled'), SR_SCOPE_ALL => DI::l10n()->t('all'), SR_SCOPE_TAGS => DI::l10n()->t('tags')]],
                        '$relay_server_tags'      => ['relay_server_tags', DI::l10n()->t('Server tags'), DI::config()->get('system', 'relay_server_tags'), DI::l10n()->t('Comma separated list of tags for the "tags" subscription.')],
                        '$relay_deny_tags'        => ['relay_deny_tags', DI::l10n()->t('Deny Server tags'), DI::config()->get('system', 'relay_deny_tags'), DI::l10n()->t('Comma separated list of tags that are rejected.')],
                        '$relay_user_tags'        => ['relay_user_tags', DI::l10n()->t('Allow user tags'), DI::config()->get('system', 'relay_user_tags'), DI::l10n()->t('If enabled, the tags from the saved searches will used for the "tags" subscription in addition to the "relay_server_tags".')],
index 6a72a810cd3dd0374660c46911d057ead8aa9f80..6dcd65c50584ad19bfb5de75f2963ecb076a4fb7 100644 (file)
@@ -35,13 +35,7 @@ class XSocialRelay extends BaseModule
        {
                $config = DI::config();
 
-               $subscribe = $config->get('system', 'relay_subscribe', false);
-
-               if ($subscribe) {
-                       $scope = $config->get('system', 'relay_scope', SR_SCOPE_ALL);
-               } else {
-                       $scope = SR_SCOPE_NONE;
-               }
+               $scope = $config->get('system', 'relay_scope');
 
                $systemTags = [];
                $userTags = [];
@@ -63,7 +57,7 @@ class XSocialRelay extends BaseModule
                $tagList = array_unique(array_merge($systemTags, $userTags));
 
                $relay = [
-                       'subscribe' => $subscribe,
+                       'subscribe' => ($scope != SR_SCOPE_NONE),
                        'scope'     => $scope,
                        'tags'      => $tagList,
                        'protocols' => [
index f6fd1ad1324886542829aa4ea4d30b4fcb0e8785..3e6b130a332d509327910403eaaebaa6a7dde822 100644 (file)
@@ -68,13 +68,9 @@ class Transmitter
         */
        public static function addRelayServerInboxes(array $inboxes = [])
        {
-               $contacts = DBA::select('apcontact', ['inbox'],
-                       ["`type` = ? AND `url` IN (SELECT `url` FROM `contact` WHERE `uid` = ? AND `rel` = ?)",
-                               'Application', 0, Contact::FRIEND]);
-               while ($contact = DBA::fetch($contacts)) {
+               foreach (Relay::getList(['inbox']) as $contact) {
                        $inboxes[$contact['inbox']] = $contact['inbox'];
                }
-               DBA::close($contacts);
 
                return $inboxes;
        }
@@ -92,7 +88,7 @@ class Transmitter
                        return $inboxes;
                }
 
-               $relays = Relay::getList($item_id, [], [Protocol::ACTIVITYPUB]);
+               $relays = Relay::getDirectRelayList($item_id);
                if (empty($relays)) {
                        return $inboxes;
                }
index d40ba5c3384447ae74d34d34b8b041588c9af7f3..f89dc3999930d48e47ee83044183a2210333454e 100644 (file)
@@ -29,7 +29,6 @@ use Friendica\DI;
 use Friendica\Model\APContact;
 use Friendica\Model\Contact;
 use Friendica\Model\GServer;
-use Friendica\Model\Item;
 use Friendica\Model\Post;
 use Friendica\Model\Search;
 use Friendica\Model\Tag;
@@ -54,12 +53,7 @@ class Relay
        {
                $config = DI::config();
 
-               $subscribe = $config->get('system', 'relay_subscribe', false);
-               if ($subscribe) {
-                       $scope = $config->get('system', 'relay_scope', SR_SCOPE_ALL);
-               } else {
-                       $scope = SR_SCOPE_NONE;
-               }
+               $scope = $config->get('system', 'relay_scope');
 
                if ($scope == SR_SCOPE_NONE) {
                        Logger::info('Server does not accept relay posts - rejected', ['network' => $network, 'url' => $url]);
@@ -168,7 +162,7 @@ class Relay
                        return;
                }
 
-               if (DBA::isResult($old)) {      
+               if (DBA::isResult($old)) {
                        $fields['updated'] = DateTimeFormat::utcNow();
 
                        Logger::info('Update relay contact', ['server' => $gserver['url'], 'id' => $old['id'], 'fields' => $fields]);
@@ -224,76 +218,65 @@ class Relay
        }
 
        /**
-        * Return a list of relay servers
-        *
-        * The list contains not only the official relays but also servers that we serve directly
+        * Return a list of servers that we serve via the direct relay
         *
         * @param integer $item_id  id of the item that is sent
         * @param array   $contacts Previously fetched contacts
-        * @param array   $networks Networks of the relay servers 
+        * @param array   $networks Networks of the relay servers
         *
         * @return array of relay servers
         * @throws \Friendica\Network\HTTPException\InternalServerErrorException
         */
-       public static function getList(int $item_id, array $contacts, array $networks)
+       public static function getDirectRelayList(int $item_id)
        {
                $serverlist = [];
 
-               // Fetching relay servers
-               $serverdata = DI::config()->get("system", "relay_server");
+               if (!DI::config()->get("system", "relay_directly", false)) {
+                       return [];
+               }
 
-               if (!empty($serverdata)) {
-                       $servers = explode(",", $serverdata);
-                       foreach ($servers as $server) {
-                               $gserver = DBA::selectFirst('gserver', ['id', 'url', 'network'], ['nurl' => Strings::normaliseLink($server)]);
-                               if (DBA::isResult($gserver)) {
-                                       $serverlist[$gserver['id']] = $gserver;
-                               }
-                       }
+               // We distribute our stuff based on the parent to ensure that the thread will be complete
+               $parent = Post::selectFirst(['uri-id'], ['id' => $item_id]);
+               if (!DBA::isResult($parent)) {
+                       return [];
                }
 
-               if (DI::config()->get("system", "relay_directly", false)) {
-                       // We distribute our stuff based on the parent to ensure that the thread will be complete
-                       $parent = Post::selectFirst(['uri-id'], ['id' => $item_id]);
-                       if (!DBA::isResult($parent)) {
-                               return;
+               // Servers that want to get all content
+               $servers = DBA::select('gserver', ['id', 'url', 'network'], ['relay-subscribe' => true, 'relay-scope' => 'all']);
+               while ($server = DBA::fetch($servers)) {
+                       $serverlist[$server['id']] = $server;
+               }
+               DBA::close($servers);
+
+               // All tags of the current post
+               $tags = DBA::select('tag-view', ['name'], ['uri-id' => $parent['uri-id'], 'type' => Tag::HASHTAG]);
+               $taglist = [];
+               while ($tag = DBA::fetch($tags)) {
+                       $taglist[] = $tag['name'];
+               }
+               DBA::close($tags);
+
+               // All servers who wants content with this tag
+               $tagserverlist = [];
+               if (!empty($taglist)) {
+                       $tagserver = DBA::select('gserver-tag', ['gserver-id'], ['tag' => $taglist]);
+                       while ($server = DBA::fetch($tagserver)) {
+                               $tagserverlist[] = $server['gserver-id'];
                        }
+                       DBA::close($tagserver);
+               }
 
-                       // Servers that want to get all content
-                       $servers = DBA::select('gserver', ['id', 'url', 'network'], ['relay-subscribe' => true, 'relay-scope' => 'all']);
+               // All adresses with the given id
+               if (!empty($tagserverlist)) {
+                       $servers = DBA::select('gserver', ['id', 'url', 'network'], ['relay-subscribe' => true, 'relay-scope' => 'tags', 'id' => $tagserverlist]);
                        while ($server = DBA::fetch($servers)) {
                                $serverlist[$server['id']] = $server;
                        }
                        DBA::close($servers);
-
-                       // All tags of the current post
-                       $tags = DBA::select('tag-view', ['name'], ['uri-id' => $parent['uri-id'], 'type' => Tag::HASHTAG]);
-                       $taglist = [];
-                       while ($tag = DBA::fetch($tags)) {
-                               $taglist[] = $tag['name'];
-                       }
-                       DBA::close($tags);
-
-                       // All servers who wants content with this tag
-                       $tagserverlist = [];
-                       if (!empty($taglist)) {
-                               $tagserver = DBA::select('gserver-tag', ['gserver-id'], ['tag' => $taglist]);
-                               while ($server = DBA::fetch($tagserver)) {
-                                       $tagserverlist[] = $server['gserver-id'];
-                               }
-                               DBA::close($tagserver);
-                       }
-
-                       // All adresses with the given id
-                       if (!empty($tagserverlist)) {
-                               $servers = DBA::select('gserver', ['id', 'url', 'network'], ['relay-subscribe' => true, 'relay-scope' => 'tags', 'id' => $tagserverlist]);
-                               while ($server = DBA::fetch($servers)) {
-                                       $serverlist[$server['id']] = $server;
-                               }
-                               DBA::close($servers);
-                       }
                }
 
+               $contacts = [];
+
                // Now we are collecting all relay contacts
                foreach ($serverlist as $gserver) {
                        // We don't send messages to ourselves
@@ -304,15 +287,24 @@ class Relay
                        if (empty($contact)) {
                                continue;
                        }
-
-                       if (in_array($contact['network'], $networks) && !in_array($contact['batch'], array_column($contacts, 'batch'))) {
-                               $contacts[] = $contact;
-                       }
                }
 
                return $contacts;
        }
 
+       /**
+        * Return a list of relay servers
+        *
+        * @param array $fields Field list
+        * @return array 
+        * @throws Exception 
+        */
+       public static function getList($fields = []):array
+       {
+               return DBA::selectToArray('apcontact', $fields,
+                       ["`type` = ? AND `url` IN (SELECT `url` FROM `contact` WHERE `uid` = ? AND `rel` = ?)", 'Application', 0, Contact::FRIEND]);
+       }
+
        /**
         * Return a contact for a given server address or creates a dummy entry
         *
index 550b3a4739d0019a28213b85fd4c597e3d2385e4..e31141ea46bcd8bac3237a0b8f4c80f8123561fc 100644 (file)
@@ -39,7 +39,6 @@ use Friendica\Protocol\Activity;
 use Friendica\Protocol\ActivityPub;
 use Friendica\Protocol\Diaspora;
 use Friendica\Protocol\OStatus;
-use Friendica\Protocol\Relay;
 use Friendica\Protocol\Salmon;
 use Friendica\Util\Network;
 use Friendica\Util\Strings;
@@ -442,12 +441,12 @@ class Notifier
                $batch_delivery = false;
 
                if ($public_message && !in_array($cmd, [Delivery::MAIL, Delivery::SUGGESTION]) && !$followup) {
-                       $relay_list = [];
+                       $participants = [];
 
                        if ($diaspora_delivery && !$unlisted) {
                                $batch_delivery = true;
 
-                               $relay_list_stmt = DBA::p(
+                               $participants_stmt = DBA::p(
                                        "SELECT
                                                `batch`, `network`, `protocol`,
                                                ANY_VALUE(`id`) AS `id`,
@@ -466,17 +465,11 @@ class Notifier
                                        $owner['uid'],
                                        Contact::SHARING
                                );
-                               $relay_list = DBA::toArray($relay_list_stmt);
+                               $participants = DBA::toArray($participants_stmt);
 
                                // Fetch the participation list
                                // The function will ensure that there are no duplicates
-                               $relay_list = Diaspora::participantsForThread($target_item, $relay_list);
-
-                               // Add the relay to the list, avoid duplicates.
-                               // Don't send community posts to the relay. Forum posts via the Diaspora protocol are looking ugly.
-                               if (!$followup && !Item::isForumPost($target_item, $owner) && !self::isForumPost($target_item)) {
-                                       $relay_list = Relay::getList($target_id, $relay_list, [Protocol::DFRN, Protocol::DIASPORA]);
-                               }
+                               $participants = Diaspora::participantsForThread($target_item, $participants);
                        }
 
                        $condition = ['network' => Protocol::DFRN, 'uid' => $owner['uid'], 'blocked' => false,
@@ -484,7 +477,7 @@ class Notifier
 
                        $contacts = DBA::toArray(DBA::select('contact', ['id', 'url', 'addr', 'name', 'network', 'protocol'], $condition));
 
-                       $conversants = array_merge($contacts, $relay_list);
+                       $conversants = array_merge($contacts, $participants);
 
                        $delivery_queue_count += self::delivery($cmd, $post_uriid, $sender_uid, $target_item, $thr_parent, $owner, $batch_delivery, true, $conversants, $ap_contacts, []);
 
index c1c7e7bc8879e5a767bb64107d6bac8e9b31c4b9..e8c6d09f81eef735e58f6304b9c09c75d4b483f9 100644 (file)
@@ -164,9 +164,13 @@ return [
                // Comma separated list of tags that are rejected.
                'relay_deny_tags' => '',
 
-               // relay_server (String)
-               // Address of the relay server where public posts should be send to.
-               'relay_server' => 'https://social-relay.isurf.ca',
+               // relay_directly (Boolean)
+               // Directly transmit content to relay subscribers without using a relay server
+               'relay_directly' => false,
+
+               // relay_scope (SR_SCOPE_NONE, SR_SCOPE_TAGS or SR_SCOPE_ALL)
+               // Defines the scope of accepted posts from the relay servers
+               'relay_scope' => SR_SCOPE_NONE,
 
                // relay_server_tags (String)
                // Comma separated list of tags for the "tags" subscription.
index 5e9941df4b30525c4487bb98687c5c83173107b5..5869205499cac2a2177eee1d1ef25acef637c3bb 100644 (file)
@@ -8,7 +8,7 @@ msgid ""
 msgstr ""
 "Project-Id-Version: 2021.06-rc\n"
 "Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2021-06-10 06:29+0000\n"
+"POT-Creation-Date: 2021-06-13 11:02+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"
@@ -18,26 +18,26 @@ msgstr ""
 "Content-Transfer-Encoding: 8bit\n"
 
 
-#: include/api.php:1143
+#: include/api.php:1135
 #, php-format
 msgid "Daily posting limit of %d post reached. The post was rejected."
 msgid_plural "Daily posting limit of %d posts reached. The post was rejected."
 msgstr[0] ""
 msgstr[1] ""
 
-#: include/api.php:1157
+#: include/api.php:1149
 #, php-format
 msgid "Weekly posting limit of %d post reached. The post was rejected."
 msgid_plural "Weekly posting limit of %d posts reached. The post was rejected."
 msgstr[0] ""
 msgstr[1] ""
 
-#: include/api.php:1171
+#: include/api.php:1163
 #, php-format
 msgid "Monthly posting limit of %d post reached. The post was rejected."
 msgstr ""
 
-#: include/api.php:4534 mod/photos.php:107 mod/photos.php:211
+#: include/api.php:4526 mod/photos.php:107 mod/photos.php:211
 #: mod/photos.php:639 mod/photos.php:1043 mod/photos.php:1060
 #: mod/photos.php:1609 src/Model/User.php:1100 src/Model/User.php:1108
 #: src/Model/User.php:1116 src/Module/Settings/Profile/Photo/Crop.php:97
@@ -1366,7 +1366,7 @@ msgstr ""
 msgid "Basic"
 msgstr ""
 
-#: mod/events.php:577 src/Module/Admin/Site.php:587 src/Module/Contact.php:961
+#: mod/events.php:577 src/Module/Admin/Site.php:584 src/Module/Contact.php:961
 #: src/Module/Profile/Profile.php:245
 msgid "Advanced"
 msgstr ""
@@ -2183,7 +2183,7 @@ msgstr ""
 
 #: mod/settings.php:564 mod/settings.php:662 mod/settings.php:797
 #: src/Module/Admin/Addons/Index.php:69 src/Module/Admin/Features.php:87
-#: src/Module/Admin/Logs/Settings.php:82 src/Module/Admin/Site.php:582
+#: src/Module/Admin/Logs/Settings.php:82 src/Module/Admin/Site.php:579
 #: src/Module/Admin/Themes/Index.php:113 src/Module/Admin/Tos.php:66
 #: src/Module/Settings/Delegation.php:170 src/Module/Settings/Display.php:189
 msgid "Save Settings"
@@ -5234,10 +5234,10 @@ msgstr ""
 
 #: src/Module/Admin/Addons/Details.php:111 src/Module/Admin/Addons/Index.php:67
 #: src/Module/Admin/Blocklist/Contact.php:78
-#: src/Module/Admin/Blocklist/Server.php:88 src/Module/Admin/Federation.php:141
+#: src/Module/Admin/Blocklist/Server.php:88 src/Module/Admin/Federation.php:159
 #: src/Module/Admin/Item/Delete.php:65 src/Module/Admin/Logs/Settings.php:80
 #: src/Module/Admin/Logs/View.php:64 src/Module/Admin/Queue.php:72
-#: src/Module/Admin/Site.php:579 src/Module/Admin/Summary.php:232
+#: src/Module/Admin/Site.php:576 src/Module/Admin/Summary.php:232
 #: src/Module/Admin/Themes/Details.php:90 src/Module/Admin/Themes/Index.php:111
 #: src/Module/Admin/Tos.php:58 src/Module/Admin/Users/Active.php:136
 #: src/Module/Admin/Users/Blocked.php:137 src/Module/Admin/Users/Create.php:61
@@ -5567,26 +5567,26 @@ msgstr ""
 msgid "Manage Additional Features"
 msgstr ""
 
-#: src/Module/Admin/Federation.php:54
+#: src/Module/Admin/Federation.php:56
 msgid "Other"
 msgstr ""
 
-#: src/Module/Admin/Federation.php:108 src/Module/Admin/Federation.php:268
+#: src/Module/Admin/Federation.php:118 src/Module/Admin/Federation.php:348
 msgid "unknown"
 msgstr ""
 
-#: src/Module/Admin/Federation.php:136
+#: src/Module/Admin/Federation.php:154
 msgid ""
 "This page offers you some numbers to the known part of the federated social "
 "network your Friendica node is part of. These numbers are not complete but "
 "only reflect the part of the network your node is aware of."
 msgstr ""
 
-#: src/Module/Admin/Federation.php:142 src/Module/BaseAdmin.php:87
+#: src/Module/Admin/Federation.php:160 src/Module/BaseAdmin.php:87
 msgid "Federation Statistics"
 msgstr ""
 
-#: src/Module/Admin/Federation.php:146
+#: src/Module/Admin/Federation.php:164
 #, php-format
 msgid ""
 "Currently this node is aware of %d nodes with %d registered users from the "
@@ -5783,275 +5783,289 @@ msgstr ""
 msgid "Priority"
 msgstr ""
 
-#: src/Module/Admin/Site.php:69
+#: src/Module/Admin/Site.php:70
 msgid "Can not parse base url. Must have at least <scheme>://<domain>"
 msgstr ""
 
-#: src/Module/Admin/Site.php:123
+#: src/Module/Admin/Site.php:124
 msgid "Relocation started. Could take a while to complete."
 msgstr ""
 
-#: src/Module/Admin/Site.php:249
+#: src/Module/Admin/Site.php:248
 msgid "Invalid storage backend setting value."
 msgstr ""
 
-#: src/Module/Admin/Site.php:449 src/Module/Settings/Display.php:134
+#: src/Module/Admin/Site.php:446 src/Module/Settings/Display.php:134
 msgid "No special theme for mobile devices"
 msgstr ""
 
-#: src/Module/Admin/Site.php:466 src/Module/Settings/Display.php:144
+#: src/Module/Admin/Site.php:463 src/Module/Settings/Display.php:144
 #, php-format
 msgid "%s - (Experimental)"
 msgstr ""
 
-#: src/Module/Admin/Site.php:478
+#: src/Module/Admin/Site.php:475
 msgid "No community page for local users"
 msgstr ""
 
-#: src/Module/Admin/Site.php:479
+#: src/Module/Admin/Site.php:476
 msgid "No community page"
 msgstr ""
 
-#: src/Module/Admin/Site.php:480
+#: src/Module/Admin/Site.php:477
 msgid "Public postings from users of this site"
 msgstr ""
 
-#: src/Module/Admin/Site.php:481
+#: src/Module/Admin/Site.php:478
 msgid "Public postings from the federated network"
 msgstr ""
 
-#: src/Module/Admin/Site.php:482
+#: src/Module/Admin/Site.php:479
 msgid "Public postings from local users and the federated network"
 msgstr ""
 
-#: src/Module/Admin/Site.php:488
+#: src/Module/Admin/Site.php:485
 msgid "Multi user instance"
 msgstr ""
 
-#: src/Module/Admin/Site.php:516
+#: src/Module/Admin/Site.php:513
 msgid "Closed"
 msgstr ""
 
-#: src/Module/Admin/Site.php:517
+#: src/Module/Admin/Site.php:514
 msgid "Requires approval"
 msgstr ""
 
-#: src/Module/Admin/Site.php:518
+#: src/Module/Admin/Site.php:515
 msgid "Open"
 msgstr ""
 
-#: src/Module/Admin/Site.php:522 src/Module/Install.php:215
+#: src/Module/Admin/Site.php:519 src/Module/Install.php:215
 msgid "No SSL policy, links will track page SSL state"
 msgstr ""
 
-#: src/Module/Admin/Site.php:523 src/Module/Install.php:216
+#: src/Module/Admin/Site.php:520 src/Module/Install.php:216
 msgid "Force all links to use SSL"
 msgstr ""
 
-#: src/Module/Admin/Site.php:524 src/Module/Install.php:217
+#: src/Module/Admin/Site.php:521 src/Module/Install.php:217
 msgid "Self-signed certificate, use SSL for local links only (discouraged)"
 msgstr ""
 
-#: src/Module/Admin/Site.php:528
+#: src/Module/Admin/Site.php:525
 msgid "Don't check"
 msgstr ""
 
-#: src/Module/Admin/Site.php:529
+#: src/Module/Admin/Site.php:526
 msgid "check the stable version"
 msgstr ""
 
-#: src/Module/Admin/Site.php:530
+#: src/Module/Admin/Site.php:527
 msgid "check the development version"
 msgstr ""
 
-#: src/Module/Admin/Site.php:534
+#: src/Module/Admin/Site.php:531
 msgid "none"
 msgstr ""
 
-#: src/Module/Admin/Site.php:535
+#: src/Module/Admin/Site.php:532
 msgid "Local contacts"
 msgstr ""
 
-#: src/Module/Admin/Site.php:536
+#: src/Module/Admin/Site.php:533
 msgid "Interactors"
 msgstr ""
 
-#: src/Module/Admin/Site.php:549
+#: src/Module/Admin/Site.php:546
 msgid "Database (legacy)"
 msgstr ""
 
-#: src/Module/Admin/Site.php:580 src/Module/BaseAdmin.php:90
+#: src/Module/Admin/Site.php:577 src/Module/BaseAdmin.php:90
 msgid "Site"
 msgstr ""
 
-#: src/Module/Admin/Site.php:581
+#: src/Module/Admin/Site.php:578
 msgid "General Information"
 msgstr ""
 
-#: src/Module/Admin/Site.php:583
+#: src/Module/Admin/Site.php:580
 msgid "Republish users to directory"
 msgstr ""
 
-#: src/Module/Admin/Site.php:584 src/Module/Register.php:139
+#: src/Module/Admin/Site.php:581 src/Module/Register.php:139
 msgid "Registration"
 msgstr ""
 
-#: src/Module/Admin/Site.php:585
+#: src/Module/Admin/Site.php:582
 msgid "File upload"
 msgstr ""
 
-#: src/Module/Admin/Site.php:586
+#: src/Module/Admin/Site.php:583
 msgid "Policies"
 msgstr ""
 
-#: src/Module/Admin/Site.php:588
+#: src/Module/Admin/Site.php:585
 msgid "Auto Discovered Contact Directory"
 msgstr ""
 
-#: src/Module/Admin/Site.php:589
+#: src/Module/Admin/Site.php:586
 msgid "Performance"
 msgstr ""
 
-#: src/Module/Admin/Site.php:590
+#: src/Module/Admin/Site.php:587
 msgid "Worker"
 msgstr ""
 
-#: src/Module/Admin/Site.php:591
+#: src/Module/Admin/Site.php:588
 msgid "Message Relay"
 msgstr ""
 
-#: src/Module/Admin/Site.php:592
-msgid "Relocate Instance"
+#: src/Module/Admin/Site.php:589
+msgid ""
+"Use the command \"console relay\" in the command line to add or remove "
+"relays."
+msgstr ""
+
+#: src/Module/Admin/Site.php:590
+msgid "The system is not subscribed to any relays at the moment."
+msgstr ""
+
+#: src/Module/Admin/Site.php:591
+msgid "The system is currently subscribed to the following relays:"
 msgstr ""
 
 #: src/Module/Admin/Site.php:593
+msgid "Relocate Instance"
+msgstr ""
+
+#: src/Module/Admin/Site.php:594
 msgid ""
 "<strong>Warning!</strong> Advanced function. Could make this server "
 "unreachable."
 msgstr ""
 
-#: src/Module/Admin/Site.php:597
+#: src/Module/Admin/Site.php:598
 msgid "Site name"
 msgstr ""
 
-#: src/Module/Admin/Site.php:598
+#: src/Module/Admin/Site.php:599
 msgid "Sender Email"
 msgstr ""
 
-#: src/Module/Admin/Site.php:598
+#: src/Module/Admin/Site.php:599
 msgid ""
 "The email address your server shall use to send notification emails from."
 msgstr ""
 
-#: src/Module/Admin/Site.php:599
+#: src/Module/Admin/Site.php:600
 msgid "Name of the system actor"
 msgstr ""
 
-#: src/Module/Admin/Site.php:599
+#: src/Module/Admin/Site.php:600
 msgid ""
 "Name of the internal system account that is used to perform ActivityPub "
 "requests. This must be an unused username. If set, this can't be changed "
 "again."
 msgstr ""
 
-#: src/Module/Admin/Site.php:600
+#: src/Module/Admin/Site.php:601
 msgid "Banner/Logo"
 msgstr ""
 
-#: src/Module/Admin/Site.php:601
+#: src/Module/Admin/Site.php:602
 msgid "Email Banner/Logo"
 msgstr ""
 
-#: src/Module/Admin/Site.php:602
+#: src/Module/Admin/Site.php:603
 msgid "Shortcut icon"
 msgstr ""
 
-#: src/Module/Admin/Site.php:602
+#: src/Module/Admin/Site.php:603
 msgid "Link to an icon that will be used for browsers."
 msgstr ""
 
-#: src/Module/Admin/Site.php:603
+#: src/Module/Admin/Site.php:604
 msgid "Touch icon"
 msgstr ""
 
-#: src/Module/Admin/Site.php:603
+#: src/Module/Admin/Site.php:604
 msgid "Link to an icon that will be used for tablets and mobiles."
 msgstr ""
 
-#: src/Module/Admin/Site.php:604
+#: src/Module/Admin/Site.php:605
 msgid "Additional Info"
 msgstr ""
 
-#: src/Module/Admin/Site.php:604
+#: src/Module/Admin/Site.php:605
 #, php-format
 msgid ""
 "For public servers: you can add additional information here that will be "
 "listed at %s/servers."
 msgstr ""
 
-#: src/Module/Admin/Site.php:605
+#: src/Module/Admin/Site.php:606
 msgid "System language"
 msgstr ""
 
-#: src/Module/Admin/Site.php:606
+#: src/Module/Admin/Site.php:607
 msgid "System theme"
 msgstr ""
 
-#: src/Module/Admin/Site.php:606
+#: src/Module/Admin/Site.php:607
 msgid ""
 "Default system theme - may be over-ridden by user profiles - <a href=\"/"
 "admin/themes\" id=\"cnftheme\">Change default theme settings</a>"
 msgstr ""
 
-#: src/Module/Admin/Site.php:607
+#: src/Module/Admin/Site.php:608
 msgid "Mobile system theme"
 msgstr ""
 
-#: src/Module/Admin/Site.php:607
+#: src/Module/Admin/Site.php:608
 msgid "Theme for mobile devices"
 msgstr ""
 
-#: src/Module/Admin/Site.php:608 src/Module/Install.php:225
+#: src/Module/Admin/Site.php:609 src/Module/Install.php:225
 msgid "SSL link policy"
 msgstr ""
 
-#: src/Module/Admin/Site.php:608 src/Module/Install.php:227
+#: src/Module/Admin/Site.php:609 src/Module/Install.php:227
 msgid "Determines whether generated links should be forced to use SSL"
 msgstr ""
 
-#: src/Module/Admin/Site.php:609
+#: src/Module/Admin/Site.php:610
 msgid "Force SSL"
 msgstr ""
 
-#: src/Module/Admin/Site.php:609
+#: src/Module/Admin/Site.php:610
 msgid ""
 "Force all Non-SSL requests to SSL - Attention: on some systems it could lead "
 "to endless loops."
 msgstr ""
 
-#: src/Module/Admin/Site.php:610
+#: src/Module/Admin/Site.php:611
 msgid "Hide help entry from navigation menu"
 msgstr ""
 
-#: src/Module/Admin/Site.php:610
+#: src/Module/Admin/Site.php:611
 msgid ""
 "Hides the menu entry for the Help pages from the navigation menu. You can "
 "still access it calling /help directly."
 msgstr ""
 
-#: src/Module/Admin/Site.php:611
+#: src/Module/Admin/Site.php:612
 msgid "Single user instance"
 msgstr ""
 
-#: src/Module/Admin/Site.php:611
+#: src/Module/Admin/Site.php:612
 msgid "Make this instance multi-user or single-user for the named user"
 msgstr ""
 
-#: src/Module/Admin/Site.php:613
+#: src/Module/Admin/Site.php:614
 msgid "File storage backend"
 msgstr ""
 
-#: src/Module/Admin/Site.php:613
+#: src/Module/Admin/Site.php:614
 msgid ""
 "The backend used to store uploaded data. If you change the storage backend, "
 "you can manually move the existing files. If you do not do so, the files "
@@ -6060,202 +6074,202 @@ msgid ""
 "for more information about the choices and the moving procedure."
 msgstr ""
 
-#: src/Module/Admin/Site.php:615
+#: src/Module/Admin/Site.php:616
 msgid "Maximum image size"
 msgstr ""
 
-#: src/Module/Admin/Site.php:615
+#: src/Module/Admin/Site.php:616
 msgid ""
 "Maximum size in bytes of uploaded images. Default is 0, which means no "
 "limits."
 msgstr ""
 
-#: src/Module/Admin/Site.php:616
+#: src/Module/Admin/Site.php:617
 msgid "Maximum image length"
 msgstr ""
 
-#: src/Module/Admin/Site.php:616
+#: src/Module/Admin/Site.php:617
 msgid ""
 "Maximum length in pixels of the longest side of uploaded images. Default is "
 "-1, which means no limits."
 msgstr ""
 
-#: src/Module/Admin/Site.php:617
+#: src/Module/Admin/Site.php:618
 msgid "JPEG image quality"
 msgstr ""
 
-#: src/Module/Admin/Site.php:617
+#: src/Module/Admin/Site.php:618
 msgid ""
 "Uploaded JPEGS will be saved at this quality setting [0-100]. Default is "
 "100, which is full quality."
 msgstr ""
 
-#: src/Module/Admin/Site.php:619
+#: src/Module/Admin/Site.php:620
 msgid "Register policy"
 msgstr ""
 
-#: src/Module/Admin/Site.php:620
+#: src/Module/Admin/Site.php:621
 msgid "Maximum Daily Registrations"
 msgstr ""
 
-#: src/Module/Admin/Site.php:620
+#: src/Module/Admin/Site.php:621
 msgid ""
 "If registration is permitted above, this sets the maximum number of new user "
 "registrations to accept per day.  If register is set to closed, this setting "
 "has no effect."
 msgstr ""
 
-#: src/Module/Admin/Site.php:621
+#: src/Module/Admin/Site.php:622
 msgid "Register text"
 msgstr ""
 
-#: src/Module/Admin/Site.php:621
+#: src/Module/Admin/Site.php:622
 msgid ""
 "Will be displayed prominently on the registration page. You can use BBCode "
 "here."
 msgstr ""
 
-#: src/Module/Admin/Site.php:622
+#: src/Module/Admin/Site.php:623
 msgid "Forbidden Nicknames"
 msgstr ""
 
-#: src/Module/Admin/Site.php:622
+#: src/Module/Admin/Site.php:623
 msgid ""
 "Comma separated list of nicknames that are forbidden from registration. "
 "Preset is a list of role names according RFC 2142."
 msgstr ""
 
-#: src/Module/Admin/Site.php:623
+#: src/Module/Admin/Site.php:624
 msgid "Accounts abandoned after x days"
 msgstr ""
 
-#: src/Module/Admin/Site.php:623
+#: src/Module/Admin/Site.php:624
 msgid ""
 "Will not waste system resources polling external sites for abandonded "
 "accounts. Enter 0 for no time limit."
 msgstr ""
 
-#: src/Module/Admin/Site.php:624
+#: src/Module/Admin/Site.php:625
 msgid "Allowed friend domains"
 msgstr ""
 
-#: src/Module/Admin/Site.php:624
+#: src/Module/Admin/Site.php:625
 msgid ""
 "Comma separated list of domains which are allowed to establish friendships "
 "with this site. Wildcards are accepted. Empty to allow any domains"
 msgstr ""
 
-#: src/Module/Admin/Site.php:625
+#: src/Module/Admin/Site.php:626
 msgid "Allowed email domains"
 msgstr ""
 
-#: src/Module/Admin/Site.php:625
+#: src/Module/Admin/Site.php:626
 msgid ""
 "Comma separated list of domains which are allowed in email addresses for "
 "registrations to this site. Wildcards are accepted. Empty to allow any "
 "domains"
 msgstr ""
 
-#: src/Module/Admin/Site.php:626
+#: src/Module/Admin/Site.php:627
 msgid "No OEmbed rich content"
 msgstr ""
 
-#: src/Module/Admin/Site.php:626
+#: src/Module/Admin/Site.php:627
 msgid ""
 "Don't show the rich content (e.g. embedded PDF), except from the domains "
 "listed below."
 msgstr ""
 
-#: src/Module/Admin/Site.php:627
+#: src/Module/Admin/Site.php:628
 msgid "Trusted third-party domains"
 msgstr ""
 
-#: src/Module/Admin/Site.php:627
+#: src/Module/Admin/Site.php:628
 msgid ""
 "Comma separated list of domains from which content is allowed to be embedded "
 "in posts like with OEmbed. All sub-domains of the listed domains are allowed "
 "as well."
 msgstr ""
 
-#: src/Module/Admin/Site.php:628
+#: src/Module/Admin/Site.php:629
 msgid "Block public"
 msgstr ""
 
-#: src/Module/Admin/Site.php:628
+#: src/Module/Admin/Site.php:629
 msgid ""
 "Check to block public access to all otherwise public personal pages on this "
 "site unless you are currently logged in."
 msgstr ""
 
-#: src/Module/Admin/Site.php:629
+#: src/Module/Admin/Site.php:630
 msgid "Force publish"
 msgstr ""
 
-#: src/Module/Admin/Site.php:629
+#: src/Module/Admin/Site.php:630
 msgid ""
 "Check to force all profiles on this site to be listed in the site directory."
 msgstr ""
 
-#: src/Module/Admin/Site.php:629
+#: src/Module/Admin/Site.php:630
 msgid "Enabling this may violate privacy laws like the GDPR"
 msgstr ""
 
-#: src/Module/Admin/Site.php:630
+#: src/Module/Admin/Site.php:631
 msgid "Global directory URL"
 msgstr ""
 
-#: src/Module/Admin/Site.php:630
+#: src/Module/Admin/Site.php:631
 msgid ""
 "URL to the global directory. If this is not set, the global directory is "
 "completely unavailable to the application."
 msgstr ""
 
-#: src/Module/Admin/Site.php:631
+#: src/Module/Admin/Site.php:632
 msgid "Private posts by default for new users"
 msgstr ""
 
-#: src/Module/Admin/Site.php:631
+#: src/Module/Admin/Site.php:632
 msgid ""
 "Set default post permissions for all new members to the default privacy "
 "group rather than public."
 msgstr ""
 
-#: src/Module/Admin/Site.php:632
+#: src/Module/Admin/Site.php:633
 msgid "Don't include post content in email notifications"
 msgstr ""
 
-#: src/Module/Admin/Site.php:632
+#: src/Module/Admin/Site.php:633
 msgid ""
 "Don't include the content of a post/comment/private message/etc. in the "
 "email notifications that are sent out from this site, as a privacy measure."
 msgstr ""
 
-#: src/Module/Admin/Site.php:633
+#: src/Module/Admin/Site.php:634
 msgid "Disallow public access to addons listed in the apps menu."
 msgstr ""
 
-#: src/Module/Admin/Site.php:633
+#: src/Module/Admin/Site.php:634
 msgid ""
 "Checking this box will restrict addons listed in the apps menu to members "
 "only."
 msgstr ""
 
-#: src/Module/Admin/Site.php:634
+#: src/Module/Admin/Site.php:635
 msgid "Don't embed private images in posts"
 msgstr ""
 
-#: src/Module/Admin/Site.php:634
+#: src/Module/Admin/Site.php:635
 msgid ""
 "Don't replace locally-hosted private photos in posts with an embedded copy "
 "of the image. This means that contacts who receive posts containing private "
 "photos will have to authenticate and load each image, which may take a while."
 msgstr ""
 
-#: src/Module/Admin/Site.php:635
+#: src/Module/Admin/Site.php:636
 msgid "Explicit Content"
 msgstr ""
 
-#: src/Module/Admin/Site.php:635
+#: src/Module/Admin/Site.php:636
 msgid ""
 "Set this to announce that your node is used mostly for explicit content that "
 "might not be suited for minors. This information will be published in the "
@@ -6264,234 +6278,234 @@ msgid ""
 "will be shown at the user registration page."
 msgstr ""
 
-#: src/Module/Admin/Site.php:636
+#: src/Module/Admin/Site.php:637
 msgid "Allow Users to set remote_self"
 msgstr ""
 
-#: src/Module/Admin/Site.php:636
+#: src/Module/Admin/Site.php:637
 msgid ""
 "With checking this, every user is allowed to mark every contact as a "
 "remote_self in the repair contact dialog. Setting this flag on a contact "
 "causes mirroring every posting of that contact in the users stream."
 msgstr ""
 
-#: src/Module/Admin/Site.php:637
+#: src/Module/Admin/Site.php:638
 msgid "Block multiple registrations"
 msgstr ""
 
-#: src/Module/Admin/Site.php:637
+#: src/Module/Admin/Site.php:638
 msgid "Disallow users to register additional accounts for use as pages."
 msgstr ""
 
-#: src/Module/Admin/Site.php:638
+#: src/Module/Admin/Site.php:639
 msgid "Disable OpenID"
 msgstr ""
 
-#: src/Module/Admin/Site.php:638
+#: src/Module/Admin/Site.php:639
 msgid "Disable OpenID support for registration and logins."
 msgstr ""
 
-#: src/Module/Admin/Site.php:639
+#: src/Module/Admin/Site.php:640
 msgid "No Fullname check"
 msgstr ""
 
-#: src/Module/Admin/Site.php:639
+#: src/Module/Admin/Site.php:640
 msgid ""
 "Allow users to register without a space between the first name and the last "
 "name in their full name."
 msgstr ""
 
-#: src/Module/Admin/Site.php:640
+#: src/Module/Admin/Site.php:641
 msgid "Community pages for visitors"
 msgstr ""
 
-#: src/Module/Admin/Site.php:640
+#: src/Module/Admin/Site.php:641
 msgid ""
 "Which community pages should be available for visitors. Local users always "
 "see both pages."
 msgstr ""
 
-#: src/Module/Admin/Site.php:641
+#: src/Module/Admin/Site.php:642
 msgid "Posts per user on community page"
 msgstr ""
 
-#: src/Module/Admin/Site.php:641
+#: src/Module/Admin/Site.php:642
 msgid ""
 "The maximum number of posts per user on the community page. (Not valid for "
 "\"Global Community\")"
 msgstr ""
 
-#: src/Module/Admin/Site.php:642
+#: src/Module/Admin/Site.php:643
 msgid "Disable OStatus support"
 msgstr ""
 
-#: src/Module/Admin/Site.php:642
+#: src/Module/Admin/Site.php:643
 msgid ""
 "Disable built-in OStatus (StatusNet, GNU Social etc.) compatibility. All "
 "communications in OStatus are public, so privacy warnings will be "
 "occasionally displayed."
 msgstr ""
 
-#: src/Module/Admin/Site.php:643
+#: src/Module/Admin/Site.php:644
 msgid "OStatus support can only be enabled if threading is enabled."
 msgstr ""
 
-#: src/Module/Admin/Site.php:645
+#: src/Module/Admin/Site.php:646
 msgid ""
 "Diaspora support can't be enabled because Friendica was installed into a sub "
 "directory."
 msgstr ""
 
-#: src/Module/Admin/Site.php:646
+#: src/Module/Admin/Site.php:647
 msgid "Enable Diaspora support"
 msgstr ""
 
-#: src/Module/Admin/Site.php:646
+#: src/Module/Admin/Site.php:647
 msgid "Provide built-in Diaspora network compatibility."
 msgstr ""
 
-#: src/Module/Admin/Site.php:647
+#: src/Module/Admin/Site.php:648
 msgid "Only allow Friendica contacts"
 msgstr ""
 
-#: src/Module/Admin/Site.php:647
+#: src/Module/Admin/Site.php:648
 msgid ""
 "All contacts must use Friendica protocols. All other built-in communication "
 "protocols disabled."
 msgstr ""
 
-#: src/Module/Admin/Site.php:648
+#: src/Module/Admin/Site.php:649
 msgid "Verify SSL"
 msgstr ""
 
-#: src/Module/Admin/Site.php:648
+#: src/Module/Admin/Site.php:649
 msgid ""
 "If you wish, you can turn on strict certificate checking. This will mean you "
 "cannot connect (at all) to self-signed SSL sites."
 msgstr ""
 
-#: src/Module/Admin/Site.php:649
+#: src/Module/Admin/Site.php:650
 msgid "Proxy user"
 msgstr ""
 
-#: src/Module/Admin/Site.php:650
+#: src/Module/Admin/Site.php:651
 msgid "Proxy URL"
 msgstr ""
 
-#: src/Module/Admin/Site.php:651
+#: src/Module/Admin/Site.php:652
 msgid "Network timeout"
 msgstr ""
 
-#: src/Module/Admin/Site.php:651
+#: src/Module/Admin/Site.php:652
 msgid "Value is in seconds. Set to 0 for unlimited (not recommended)."
 msgstr ""
 
-#: src/Module/Admin/Site.php:652
+#: src/Module/Admin/Site.php:653
 msgid "Maximum Load Average"
 msgstr ""
 
-#: src/Module/Admin/Site.php:652
+#: src/Module/Admin/Site.php:653
 #, php-format
 msgid ""
 "Maximum system load before delivery and poll processes are deferred - "
 "default %d."
 msgstr ""
 
-#: src/Module/Admin/Site.php:653
+#: src/Module/Admin/Site.php:654
 msgid "Maximum Load Average (Frontend)"
 msgstr ""
 
-#: src/Module/Admin/Site.php:653
+#: src/Module/Admin/Site.php:654
 msgid "Maximum system load before the frontend quits service - default 50."
 msgstr ""
 
-#: src/Module/Admin/Site.php:654
+#: src/Module/Admin/Site.php:655
 msgid "Minimal Memory"
 msgstr ""
 
-#: src/Module/Admin/Site.php:654
+#: src/Module/Admin/Site.php:655
 msgid ""
 "Minimal free memory in MB for the worker. Needs access to /proc/meminfo - "
 "default 0 (deactivated)."
 msgstr ""
 
-#: src/Module/Admin/Site.php:655
+#: src/Module/Admin/Site.php:656
 msgid "Periodically optimize tables"
 msgstr ""
 
-#: src/Module/Admin/Site.php:655
+#: src/Module/Admin/Site.php:656
 msgid "Periodically optimize tables like the cache and the workerqueue"
 msgstr ""
 
-#: src/Module/Admin/Site.php:657
+#: src/Module/Admin/Site.php:658
 msgid "Discover followers/followings from contacts"
 msgstr ""
 
-#: src/Module/Admin/Site.php:657
+#: src/Module/Admin/Site.php:658
 msgid ""
 "If enabled, contacts are checked for their followers and following contacts."
 msgstr ""
 
-#: src/Module/Admin/Site.php:658
+#: src/Module/Admin/Site.php:659
 msgid "None - deactivated"
 msgstr ""
 
-#: src/Module/Admin/Site.php:659
+#: src/Module/Admin/Site.php:660
 msgid ""
 "Local contacts - contacts of our local contacts are discovered for their "
 "followers/followings."
 msgstr ""
 
-#: src/Module/Admin/Site.php:660
+#: src/Module/Admin/Site.php:661
 msgid ""
 "Interactors - contacts of our local contacts and contacts who interacted on "
 "locally visible postings are discovered for their followers/followings."
 msgstr ""
 
-#: src/Module/Admin/Site.php:662
+#: src/Module/Admin/Site.php:663
 msgid "Synchronize the contacts with the directory server"
 msgstr ""
 
-#: src/Module/Admin/Site.php:662
+#: src/Module/Admin/Site.php:663
 msgid ""
 "if enabled, the system will check periodically for new contacts on the "
 "defined directory server."
 msgstr ""
 
-#: src/Module/Admin/Site.php:664
+#: src/Module/Admin/Site.php:665
 msgid "Days between requery"
 msgstr ""
 
-#: src/Module/Admin/Site.php:664
+#: src/Module/Admin/Site.php:665
 msgid "Number of days after which a server is requeried for his contacts."
 msgstr ""
 
-#: src/Module/Admin/Site.php:665
+#: src/Module/Admin/Site.php:666
 msgid "Discover contacts from other servers"
 msgstr ""
 
-#: src/Module/Admin/Site.php:665
+#: src/Module/Admin/Site.php:666
 msgid ""
 "Periodically query other servers for contacts. The system queries Friendica, "
 "Mastodon and Hubzilla servers."
 msgstr ""
 
-#: src/Module/Admin/Site.php:666
+#: src/Module/Admin/Site.php:667
 msgid "Search the local directory"
 msgstr ""
 
-#: src/Module/Admin/Site.php:666
+#: src/Module/Admin/Site.php:667
 msgid ""
 "Search the local directory instead of the global directory. When searching "
 "locally, every search will be executed on the global directory in the "
 "background. This improves the search results when the search is repeated."
 msgstr ""
 
-#: src/Module/Admin/Site.php:668
+#: src/Module/Admin/Site.php:669
 msgid "Publish server information"
 msgstr ""
 
-#: src/Module/Admin/Site.php:668
+#: src/Module/Admin/Site.php:669
 msgid ""
 "If enabled, general server and usage data will be published. The data "
 "contains the name and version of the server, number of users with public "
@@ -6499,50 +6513,50 @@ msgid ""
 "href=\"http://the-federation.info/\">the-federation.info</a> for details."
 msgstr ""
 
-#: src/Module/Admin/Site.php:670
+#: src/Module/Admin/Site.php:671
 msgid "Check upstream version"
 msgstr ""
 
-#: src/Module/Admin/Site.php:670
+#: src/Module/Admin/Site.php:671
 msgid ""
 "Enables checking for new Friendica versions at github. If there is a new "
 "version, you will be informed in the admin panel overview."
 msgstr ""
 
-#: src/Module/Admin/Site.php:671
+#: src/Module/Admin/Site.php:672
 msgid "Suppress Tags"
 msgstr ""
 
-#: src/Module/Admin/Site.php:671
+#: src/Module/Admin/Site.php:672
 msgid "Suppress showing a list of hashtags at the end of the posting."
 msgstr ""
 
-#: src/Module/Admin/Site.php:672
+#: src/Module/Admin/Site.php:673
 msgid "Clean database"
 msgstr ""
 
-#: src/Module/Admin/Site.php:672
+#: src/Module/Admin/Site.php:673
 msgid ""
 "Remove old remote items, orphaned database records and old content from some "
 "other helper tables."
 msgstr ""
 
-#: src/Module/Admin/Site.php:673
+#: src/Module/Admin/Site.php:674
 msgid "Lifespan of remote items"
 msgstr ""
 
-#: src/Module/Admin/Site.php:673
+#: src/Module/Admin/Site.php:674
 msgid ""
 "When the database cleanup is enabled, this defines the days after which "
 "remote items will be deleted. Own items, and marked or filed items are "
 "always kept. 0 disables this behaviour."
 msgstr ""
 
-#: src/Module/Admin/Site.php:674
+#: src/Module/Admin/Site.php:675
 msgid "Lifespan of unclaimed items"
 msgstr ""
 
-#: src/Module/Admin/Site.php:674
+#: src/Module/Admin/Site.php:675
 msgid ""
 "When the database cleanup is enabled, this defines the days after which "
 "unclaimed remote items (mostly content from the relay) will be deleted. "
@@ -6550,206 +6564,184 @@ msgid ""
 "items if set to 0."
 msgstr ""
 
-#: src/Module/Admin/Site.php:675
+#: src/Module/Admin/Site.php:676
 msgid "Lifespan of raw conversation data"
 msgstr ""
 
-#: src/Module/Admin/Site.php:675
+#: src/Module/Admin/Site.php:676
 msgid ""
 "The conversation data is used for ActivityPub and OStatus, as well as for "
 "debug purposes. It should be safe to remove it after 14 days, default is 90 "
 "days."
 msgstr ""
 
-#: src/Module/Admin/Site.php:676
+#: src/Module/Admin/Site.php:677
 msgid "Path to item cache"
 msgstr ""
 
-#: src/Module/Admin/Site.php:676
+#: src/Module/Admin/Site.php:677
 msgid "The item caches buffers generated bbcode and external images."
 msgstr ""
 
-#: src/Module/Admin/Site.php:677
+#: src/Module/Admin/Site.php:678
 msgid "Cache duration in seconds"
 msgstr ""
 
-#: src/Module/Admin/Site.php:677
+#: src/Module/Admin/Site.php:678
 msgid ""
 "How long should the cache files be hold? Default value is 86400 seconds (One "
 "day). To disable the item cache, set the value to -1."
 msgstr ""
 
-#: src/Module/Admin/Site.php:678
+#: src/Module/Admin/Site.php:679
 msgid "Maximum numbers of comments per post"
 msgstr ""
 
-#: src/Module/Admin/Site.php:678
+#: src/Module/Admin/Site.php:679
 msgid "How much comments should be shown for each post? Default value is 100."
 msgstr ""
 
-#: src/Module/Admin/Site.php:679
+#: src/Module/Admin/Site.php:680
 msgid "Maximum numbers of comments per post on the display page"
 msgstr ""
 
-#: src/Module/Admin/Site.php:679
+#: src/Module/Admin/Site.php:680
 msgid ""
 "How many comments should be shown on the single view for each post? Default "
 "value is 1000."
 msgstr ""
 
-#: src/Module/Admin/Site.php:680
+#: src/Module/Admin/Site.php:681
 msgid "Temp path"
 msgstr ""
 
-#: src/Module/Admin/Site.php:680
+#: src/Module/Admin/Site.php:681
 msgid ""
 "If you have a restricted system where the webserver can't access the system "
 "temp path, enter another path here."
 msgstr ""
 
-#: src/Module/Admin/Site.php:681
+#: src/Module/Admin/Site.php:682
 msgid "Disable picture proxy"
 msgstr ""
 
-#: src/Module/Admin/Site.php:681
+#: src/Module/Admin/Site.php:682
 msgid ""
 "The picture proxy increases performance and privacy. It shouldn't be used on "
 "systems with very low bandwidth."
 msgstr ""
 
-#: src/Module/Admin/Site.php:682
+#: src/Module/Admin/Site.php:683
 msgid "Only search in tags"
 msgstr ""
 
-#: src/Module/Admin/Site.php:682
+#: src/Module/Admin/Site.php:683
 msgid "On large systems the text search can slow down the system extremely."
 msgstr ""
 
-#: src/Module/Admin/Site.php:684
+#: src/Module/Admin/Site.php:685
 msgid "New base url"
 msgstr ""
 
-#: src/Module/Admin/Site.php:684
+#: src/Module/Admin/Site.php:685
 msgid ""
 "Change base url for this server. Sends relocate message to all Friendica and "
 "Diaspora* contacts of all users."
 msgstr ""
 
-#: src/Module/Admin/Site.php:686
+#: src/Module/Admin/Site.php:687
 msgid "RINO Encryption"
 msgstr ""
 
-#: src/Module/Admin/Site.php:686
+#: src/Module/Admin/Site.php:687
 msgid "Encryption layer between nodes."
 msgstr ""
 
-#: src/Module/Admin/Site.php:686 src/Module/Admin/Site.php:694
+#: src/Module/Admin/Site.php:687 src/Module/Admin/Site.php:693
 #: src/Module/Contact.php:562 src/Module/Settings/TwoFactor/Index.php:118
 msgid "Disabled"
 msgstr ""
 
-#: src/Module/Admin/Site.php:686
+#: src/Module/Admin/Site.php:687
 msgid "Enabled"
 msgstr ""
 
-#: src/Module/Admin/Site.php:688
+#: src/Module/Admin/Site.php:689
 msgid "Maximum number of parallel workers"
 msgstr ""
 
-#: src/Module/Admin/Site.php:688
+#: src/Module/Admin/Site.php:689
 #, php-format
 msgid ""
 "On shared hosters set this to %d. On larger systems, values of %d are great. "
 "Default value is %d."
 msgstr ""
 
-#: src/Module/Admin/Site.php:689
+#: src/Module/Admin/Site.php:690
 msgid "Enable fastlane"
 msgstr ""
 
-#: src/Module/Admin/Site.php:689
+#: src/Module/Admin/Site.php:690
 msgid ""
 "When enabed, the fastlane mechanism starts an additional worker if processes "
 "with higher priority are blocked by processes of lower priority."
 msgstr ""
 
-#: src/Module/Admin/Site.php:691
-msgid "Use relay servers"
-msgstr ""
-
-#: src/Module/Admin/Site.php:691
-msgid ""
-"Enables the receiving of public posts from relay servers. They will be "
-"included in the search, subscribed tags and on the global community page."
-msgstr ""
-
 #: src/Module/Admin/Site.php:692
-msgid "\"Social Relay\" server"
-msgstr ""
-
-#: src/Module/Admin/Site.php:692
-#, php-format
-msgid ""
-"Address of the \"Social Relay\" server where public posts should be send to. "
-"For example %s. ActivityRelay servers are administrated via the \"console "
-"relay\" command line command."
-msgstr ""
-
-#: src/Module/Admin/Site.php:693
 msgid "Direct relay transfer"
 msgstr ""
 
-#: src/Module/Admin/Site.php:693
+#: src/Module/Admin/Site.php:692
 msgid ""
 "Enables the direct transfer to other servers without using the relay servers"
 msgstr ""
 
-#: src/Module/Admin/Site.php:694
+#: src/Module/Admin/Site.php:693
 msgid "Relay scope"
 msgstr ""
 
-#: src/Module/Admin/Site.php:694
+#: src/Module/Admin/Site.php:693
 msgid ""
 "Can be \"all\" or \"tags\". \"all\" means that every public post should be "
 "received. \"tags\" means that only posts with selected tags should be "
 "received."
 msgstr ""
 
-#: src/Module/Admin/Site.php:694
+#: src/Module/Admin/Site.php:693
 msgid "all"
 msgstr ""
 
-#: src/Module/Admin/Site.php:694
+#: src/Module/Admin/Site.php:693
 msgid "tags"
 msgstr ""
 
-#: src/Module/Admin/Site.php:695
+#: src/Module/Admin/Site.php:694
 msgid "Server tags"
 msgstr ""
 
-#: src/Module/Admin/Site.php:695
+#: src/Module/Admin/Site.php:694
 msgid "Comma separated list of tags for the \"tags\" subscription."
 msgstr ""
 
-#: src/Module/Admin/Site.php:696
+#: src/Module/Admin/Site.php:695
 msgid "Deny Server tags"
 msgstr ""
 
-#: src/Module/Admin/Site.php:696
+#: src/Module/Admin/Site.php:695
 msgid "Comma separated list of tags that are rejected."
 msgstr ""
 
-#: src/Module/Admin/Site.php:697
+#: src/Module/Admin/Site.php:696
 msgid "Allow user tags"
 msgstr ""
 
-#: src/Module/Admin/Site.php:697
+#: src/Module/Admin/Site.php:696
 msgid ""
 "If enabled, the tags from the saved searches will used for the \"tags\" "
 "subscription in addition to the \"relay_server_tags\"."
 msgstr ""
 
-#: src/Module/Admin/Site.php:700
+#: src/Module/Admin/Site.php:699
 msgid "Start Relocation"
 msgstr ""
 
@@ -8881,15 +8873,15 @@ msgstr ""
 msgid "Show all"
 msgstr ""
 
-#: src/Module/OAuth/Authorize.php:53
+#: src/Module/OAuth/Authorize.php:54
 msgid "Unsupported or missing response type"
 msgstr ""
 
-#: src/Module/OAuth/Authorize.php:58 src/Module/OAuth/Token.php:58
+#: src/Module/OAuth/Authorize.php:59 src/Module/OAuth/Token.php:58
 msgid "Incomplete request data"
 msgstr ""
 
-#: src/Module/OAuth/Authorize.php:108
+#: src/Module/OAuth/Authorize.php:106
 #, php-format
 msgid ""
 "Please copy the following authentication code into your application and "
index c44553d6df363f7b8f6aa770710202eabba9113e..75d9437d78f1ddc1aa47b52d176b5aedba042206 100644 (file)
                <div class="submit"><input type="submit" name="page_site" value="{{$submit}}"/></div>
 
                <h2>{{$relay_title}}</h2>
-               {{include file="field_checkbox.tpl" field=$relay_subscribe}}
-               {{include file="field_input.tpl" field=$relay_server}}
-               {{include file="field_checkbox.tpl" field=$relay_directly}}
+               {{if $relay_list}}
+                       <p>{{$relay_list_title}}</p>
+                       <ul id="relay-list">
+                               {{foreach $relay_list as $relay}}
+                               <li>{{$relay.url}}</li>
+                               {{/foreach}}
+                       </ul>
+               {{else}}
+                       <p>{{$no_relay_list}}</p>
+               {{/if}}
+               <p>{{$relay_description}}</p>
                {{include file="field_select.tpl" field=$relay_scope}}
                {{include file="field_input.tpl" field=$relay_server_tags}}
                {{include file="field_input.tpl" field=$relay_deny_tags}}
                {{include file="field_checkbox.tpl" field=$relay_user_tags}}
+               {{include file="field_checkbox.tpl" field=$relay_directly}}
 
                <div class="submit"><input type="submit" name="page_site" value="{{$submit}}"/></div>
 
index 57f43cefbbf0afd276ac7b2bdfbebc0963a1ea63..69076833dd7f0b5dd4835040f57fcfe1b21c8a5b 100644 (file)
                                </div>
                                <div id="admin-settings-relay-collapse" class="panel-collapse collapse" role="tabpanel" aria-labelledby="admin-settings-relay">
                                        <div class="panel-body">
-                                               {{include file="field_checkbox.tpl" field=$relay_subscribe}}
-                                               {{include file="field_input.tpl" field=$relay_server}}
-                                               {{include file="field_checkbox.tpl" field=$relay_directly}}
+                                               {{if $relay_list}}
+                                                       <p>{{$relay_list_title}}</p>
+                                                       <ul id="relay-list">
+                                                               {{foreach $relay_list as $relay}}
+                                                               <li>{{$relay.url}}</li>
+                                                               {{/foreach}}
+                                                       </ul>
+                                               {{else}}
+                                                       <p>{{$no_relay_list}}</p>
+                                               {{/if}}
+                                               <p>{{$relay_description}}</p>
                                                {{include file="field_select.tpl" field=$relay_scope}}
                                                {{include file="field_input.tpl" field=$relay_server_tags}}
                                                {{include file="field_input.tpl" field=$relay_deny_tags}}
                                                {{include file="field_checkbox.tpl" field=$relay_user_tags}}
+                                               {{include file="field_checkbox.tpl" field=$relay_directly}}
                                        </div>
                                        <div class="panel-footer">
                                                <input type="submit" name="page_site" class="btn btn-primary" value="{{$submit}}"/>