mirror of
https://github.com/friendica/friendica
synced 2024-12-22 14:40:16 +00:00
Refactor GServer Model and platforms.config.php
This commit is contained in:
parent
3c1599323b
commit
65a3bff645
2 changed files with 31 additions and 21 deletions
|
@ -224,6 +224,8 @@ class GServer
|
||||||
*/
|
*/
|
||||||
public static function reachable(array $contact): bool
|
public static function reachable(array $contact): bool
|
||||||
{
|
{
|
||||||
|
$server = '';
|
||||||
|
|
||||||
if (!empty($contact['gsid'])) {
|
if (!empty($contact['gsid'])) {
|
||||||
$gsid = $contact['gsid'];
|
$gsid = $contact['gsid'];
|
||||||
} elseif (!empty($contact['baseurl'])) {
|
} elseif (!empty($contact['baseurl'])) {
|
||||||
|
@ -800,6 +802,8 @@ class GServer
|
||||||
$serverdata['failed'] = false;
|
$serverdata['failed'] = false;
|
||||||
$serverdata['blocked'] = false;
|
$serverdata['blocked'] = false;
|
||||||
|
|
||||||
|
$id = 0;
|
||||||
|
|
||||||
$gserver = DBA::selectFirst('gserver', ['network'], ['nurl' => Strings::normaliseLink($url)]);
|
$gserver = DBA::selectFirst('gserver', ['network'], ['nurl' => Strings::normaliseLink($url)]);
|
||||||
if (!DBA::isResult($gserver)) {
|
if (!DBA::isResult($gserver)) {
|
||||||
$serverdata['created'] = DateTimeFormat::utcNow();
|
$serverdata['created'] = DateTimeFormat::utcNow();
|
||||||
|
@ -1197,10 +1201,6 @@ class GServer
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
if (empty($server)) {
|
|
||||||
return [];
|
|
||||||
}
|
|
||||||
|
|
||||||
if (empty($server['network'])) {
|
if (empty($server['network'])) {
|
||||||
$server['network'] = Protocol::PHANTOM;
|
$server['network'] = Protocol::PHANTOM;
|
||||||
}
|
}
|
||||||
|
@ -1337,10 +1337,6 @@ class GServer
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
if (empty($server)) {
|
|
||||||
return [];
|
|
||||||
}
|
|
||||||
|
|
||||||
if (empty($server['network'])) {
|
if (empty($server['network'])) {
|
||||||
$server['network'] = Protocol::PHANTOM;
|
$server['network'] = Protocol::PHANTOM;
|
||||||
}
|
}
|
||||||
|
@ -1444,7 +1440,7 @@ class GServer
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
if (empty($server) || empty($server['platform'])) {
|
if (empty($server['platform'])) {
|
||||||
return [];
|
return [];
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -1652,10 +1648,11 @@ class GServer
|
||||||
}
|
}
|
||||||
|
|
||||||
$data = json_decode($curlResult->getBodyString(), true);
|
$data = json_decode($curlResult->getBodyString(), true);
|
||||||
if (empty($data)) {
|
if (!is_string($data)) {
|
||||||
return '';
|
return '';
|
||||||
}
|
}
|
||||||
return $data ?? '';
|
|
||||||
|
return $data;
|
||||||
}
|
}
|
||||||
|
|
||||||
private static function getZotData(string $url, array $serverdata): array
|
private static function getZotData(string $url, array $serverdata): array
|
||||||
|
@ -2310,13 +2307,19 @@ class GServer
|
||||||
return $serverdata;
|
return $serverdata;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (file_exists(__DIR__ . '/../../static/platforms.config.php')) {
|
if (!file_exists(__DIR__ . '/../../static/platforms.config.php')) {
|
||||||
require __DIR__ . '/../../static/platforms.config.php';
|
|
||||||
} else {
|
|
||||||
throw new HTTPException\InternalServerErrorException('Invalid platform file');
|
throw new HTTPException\InternalServerErrorException('Invalid platform file');
|
||||||
}
|
}
|
||||||
|
|
||||||
$platforms = array_merge($ap_platforms, $dfrn_platforms, $zap_platforms, $platforms);
|
/** @var array $grouped_platforms */
|
||||||
|
$grouped_platforms = require __DIR__ . '/../../static/platforms.config.php';
|
||||||
|
|
||||||
|
$platforms = array_merge(
|
||||||
|
$grouped_platforms['ap_platforms'],
|
||||||
|
$grouped_platforms['dfrn_platforms'],
|
||||||
|
$grouped_platforms['zap_platforms'],
|
||||||
|
$grouped_platforms['platforms'],
|
||||||
|
);
|
||||||
|
|
||||||
$doc = new DOMDocument();
|
$doc = new DOMDocument();
|
||||||
@$doc->loadHTML($curlResult->getBodyString());
|
@$doc->loadHTML($curlResult->getBodyString());
|
||||||
|
@ -2367,11 +2370,11 @@ class GServer
|
||||||
$platform = $platform_parts[0];
|
$platform = $platform_parts[0];
|
||||||
$serverdata['version'] = $platform_parts[1];
|
$serverdata['version'] = $platform_parts[1];
|
||||||
}
|
}
|
||||||
if (in_array($platform, array_values($dfrn_platforms))) {
|
if (in_array($platform, array_values($grouped_platforms['dfrn_platforms']))) {
|
||||||
$serverdata['network'] = Protocol::DFRN;
|
$serverdata['network'] = Protocol::DFRN;
|
||||||
} elseif (in_array($platform, array_values($ap_platforms))) {
|
} elseif (in_array($platform, array_values($grouped_platforms['ap_platforms']))) {
|
||||||
$serverdata['network'] = Protocol::ACTIVITYPUB;
|
$serverdata['network'] = Protocol::ACTIVITYPUB;
|
||||||
} elseif (in_array($platform, array_values($zap_platforms))) {
|
} elseif (in_array($platform, array_values($grouped_platforms['zap_platforms']))) {
|
||||||
$serverdata['network'] = Protocol::ZOT;
|
$serverdata['network'] = Protocol::ZOT;
|
||||||
}
|
}
|
||||||
if (in_array($platform, array_values($platforms))) {
|
if (in_array($platform, array_values($platforms))) {
|
||||||
|
@ -2414,9 +2417,9 @@ class GServer
|
||||||
$assigned = true;
|
$assigned = true;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (in_array($attr['content'], array_keys($ap_platforms))) {
|
if (in_array($attr['content'], array_keys($platforms['ap_platforms']))) {
|
||||||
$serverdata['network'] = Protocol::ACTIVITYPUB;
|
$serverdata['network'] = Protocol::ACTIVITYPUB;
|
||||||
} elseif (in_array($attr['content'], array_values($zap_platforms))) {
|
} elseif (in_array($attr['content'], array_values($platforms['zap_platforms']))) {
|
||||||
$serverdata['network'] = Protocol::ZOT;
|
$serverdata['network'] = Protocol::ZOT;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -2492,7 +2495,7 @@ class GServer
|
||||||
*/
|
*/
|
||||||
public static function discover()
|
public static function discover()
|
||||||
{
|
{
|
||||||
if (!DI::config('system', 'discover_servers')) {
|
if (!DI::config()->get('system', 'discover_servers')) {
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -129,3 +129,10 @@ $zap_platforms = [
|
||||||
'hubzilla' => 'hubzilla',
|
'hubzilla' => 'hubzilla',
|
||||||
'osada' => 'osada',
|
'osada' => 'osada',
|
||||||
];
|
];
|
||||||
|
|
||||||
|
return [
|
||||||
|
'ap_platforms' => $ap_platforms,
|
||||||
|
'dfrn_platforms' => $dfrn_platforms,
|
||||||
|
'zap_platforms' => $zap_platforms,
|
||||||
|
'platforms' => $platforms,
|
||||||
|
];
|
||||||
|
|
Loading…
Reference in a new issue