From 30e5ef928a278cf1c16f6a2592bbfef7e9254b3a Mon Sep 17 00:00:00 2001 From: Michael Date: Tue, 12 Apr 2022 05:34:34 +0000 Subject: [PATCH] Avoid wrong server type detection / Owncast added --- src/Model/GServer.php | 9 +++++++-- src/Module/Admin/Federation.php | 1 + 2 files changed, 8 insertions(+), 2 deletions(-) diff --git a/src/Model/GServer.php b/src/Model/GServer.php index a6be93ff7..c0e489992 100644 --- a/src/Model/GServer.php +++ b/src/Model/GServer.php @@ -438,7 +438,7 @@ class GServer } } - if (empty($serverdata['network']) || ($serverdata['network'] == Protocol::ACTIVITYPUB)) { + if (empty($nodeinfo['network']) && (empty($serverdata['network']) || ($serverdata['network'] == Protocol::ACTIVITYPUB))) { $serverdata = self::detectMastodonAlikes($url, $serverdata); } @@ -478,7 +478,7 @@ class GServer $serverdata = self::detectNextcloud($url, $serverdata); } - if (empty($serverdata['network'])) { + if (empty($nodeinfo['network']) && empty($serverdata['network'])) { $serverdata = self::detectGNUSocial($url, $serverdata); } @@ -934,6 +934,11 @@ class GServer // Version numbers on Nodeinfo are presented with additional info, e.g.: // 0.6.3.0-p1702cc1c, 0.6.99.0-p1b9ab160 or 3.4.3-2-1191. $server['version'] = preg_replace('=(.+)-(.{4,})=ism', '$1', $server['version']); + + // qoto advertises itself as Mastodon + if (($server['platform'] == 'mastodon') && substr($nodeinfo['software']['version'], -5) == '-qoto') { + $server['platform'] = 'qoto'; + } } } diff --git a/src/Module/Admin/Federation.php b/src/Module/Admin/Federation.php index 1927bace3..b882903cc 100644 --- a/src/Module/Admin/Federation.php +++ b/src/Module/Admin/Federation.php @@ -51,6 +51,7 @@ class Federation extends BaseAdmin 'mobilizon' => ['name' => 'Mobilizon', 'color' => '#ffd599'], // Background color of parts of the homepage 'nextcloud' => ['name' => 'Nextcloud', 'color' => '#1cafff'], // Logo color 'mistpark' => ['name' => 'Nomad projects (Mistpark, Osada, Roadhouse, Zap)', 'color' => '#348a4a'], // Green like the Mistpark green + 'owncast' => ['name' => 'Owncast', 'color' => '#007bff'], // Font color of the homepage 'peertube' => ['name' => 'Peertube', 'color' => '#ffad5c'], // One of the logo colors 'pixelfed' => ['name' => 'Pixelfed', 'color' => '#11da47'], // One of the logo colors 'pleroma' => ['name' => 'Pleroma', 'color' => '#E46F0F'], // Orange from the text that is used on Pleroma instances