<?php
/**
- * @copyright Copyright (C) 2020, Friendica
+ * @copyright Copyright (C) 2010-2022, the Friendica project
*
* @license GNU AGPL version 3 or any later version
*
namespace Friendica\Worker;
use Friendica\Core\Logger;
-use Friendica\Core\Worker;
use Friendica\Database\DBA;
use Friendica\DI;
+use Friendica\Model\GServer;
use Friendica\Util\Strings;
class UpdateServerPeers
*/
public static function execute(string $url)
{
- $ret = DI::httpRequest()->get($url . '/api/v1/instance/peers');
+ $ret = DI::httpClient()->get($url . '/api/v1/instance/peers');
if (!$ret->isSuccess() || empty($ret->getBody())) {
Logger::info('Server is not reachable or does not offer the "peers" endpoint', ['url' => $url]);
return;
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;
}
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]);
- }
}