]> git.mxchange.org Git - friendica.git/blobdiff - src/Worker/UpdateServerPeers.php
Merge remote-tracking branch 'upstream/develop' into reduce-update-contacts
[friendica.git] / src / Worker / UpdateServerPeers.php
index ca45344459a299663cd1f0a7ed0f092af3f533ec..9ddbdcd56cd52a3d9ba63be16f592eddaa8f6a41 100644 (file)
@@ -1,6 +1,6 @@
 <?php
 /**
- * @copyright Copyright (C) 2020, Friendica
+ * @copyright Copyright (C) 2010-2022, the Friendica project
  *
  * @license GNU AGPL version 3 or any later version
  *
@@ -25,17 +25,21 @@ use Friendica\Core\Logger;
 use Friendica\Core\Worker;
 use Friendica\Database\DBA;
 use Friendica\DI;
+use Friendica\Model\GServer;
+use Friendica\Network\HTTPClient\Client\HttpClientAccept;
 use Friendica\Util\Strings;
 
 class UpdateServerPeers
 {
        /**
         * Query the given server for their known peers
+        *
         * @param string $gserver Server URL
+        * @return void
         */
        public static function execute(string $url)
        {
-               $ret = DI::httpRequest()->get($url . '/api/v1/instance/peers');
+               $ret = DI::httpClient()->get($url . '/api/v1/instance/peers', HttpClientAccept::JSON);
                if (!$ret->isSuccess() || empty($ret->getBody())) {
                        Logger::info('Server is not reachable or does not offer the "peers" endpoint', ['url' => $url]);
                        return;
@@ -58,46 +62,10 @@ class UpdateServerPeers
                                continue;
                        }
                        // This endpoint doesn't offer the schema. So we assume that it is HTTPS.
-                       Worker::add(PRIORITY_LOW, 'UpdateGServer', 'https://' . $peer);
+                       GServer::add('https://' . $peer);
                        ++$added;
+                       Worker::coolDown();
                }
                Logger::info('Server peer update ended', ['total' => $total, 'added' => $added, 'url' => $url]);
        }
-
-       /**
-        * Fetch server list from remote servers and adds them when they are new.
-        *
-        * @param string $poco URL to the POCO endpoint
-        */
-       private static function fetchServerlist($poco)
-       {
-               $curlResult = DI::httpRequest()->get($poco . '/@server');
-               if (!$curlResult->isSuccess()) {
-                       Logger::info('Server is not reachable or does not offer the "poco" endpoint', ['poco' => $poco]);
-                       return;
-               }
-
-               $serverlist = json_decode($curlResult->getBody(), true);
-               if (!is_array($serverlist)) {
-                       Logger::info('Server does not have any servers listed', ['poco' => $poco]);
-                       return;
-               }
-
-               Logger::info('PoCo Server update start', ['poco' => $poco]);
-
-               $total = 0;
-               $added = 0;
-               foreach ($serverlist as $server) {
-                       ++$total;
-                       if (DBA::exists('gserver', ['nurl' => Strings::normaliseLink($server['url'])])) {
-                               // We already know this server
-                               continue;
-                       }
-                       // This endpoint doesn't offer the schema. So we assume that it is HTTPS.
-                       Worker::add(PRIORITY_LOW, 'UpdateGServer', $server['url']);
-                       ++$added;
-               }
-
-               Logger::info('PoCo Server update ended', ['total' => $total, 'added' => $added, 'poco' => $poco]);
-       }
 }