diff --git a/src/Model/GServer.php b/src/Model/GServer.php index dd38367c67..a6be93ff78 100644 --- a/src/Model/GServer.php +++ b/src/Model/GServer.php @@ -493,9 +493,13 @@ class GServer // Detect the directory type $serverdata['directory-type'] = self::DT_NONE; - $serverdata = self::checkPoCo($url, $serverdata); + $serverdata = self::checkMastodonDirectory($url, $serverdata); + if ($serverdata['directory-type'] == self::DT_NONE) { + $serverdata = self::checkPoCo($url, $serverdata); + } + // We can't detect the network type. Possibly it is some system that we don't know yet if (empty($serverdata['network'])) { $serverdata['network'] = Protocol::PHANTOM; @@ -1350,7 +1354,7 @@ class GServer $contact = Contact::selectFirst(['id'], ['uid' => 0, 'failed' => false, 'gsid' => $gserver['id']]); // Via probing we can be sure that the server is responding - if (Contact::updateFromProbe($contact['id'])) { + if (!empty($contact['id']) && Contact::updateFromProbe($contact['id'])) { $contact = Contact::selectFirst(['network', 'failed'], ['id' => $contact['id']]); if (!$contact['failed'] && in_array($contact['network'], Protocol::FEDERATED)) { $serverdata['network'] = $contact['network']; diff --git a/src/Protocol/ActivityPub/Processor.php b/src/Protocol/ActivityPub/Processor.php index e5653a554f..8bd08b95b4 100644 --- a/src/Protocol/ActivityPub/Processor.php +++ b/src/Protocol/ActivityPub/Processor.php @@ -1002,6 +1002,8 @@ class Processor $posts = Post\Collection::selectToArrayForContact($pcid, Post\Collection::FEATURED); if (!empty($posts)) { $old_featured = array_column($posts, 'uri-id'); + } else { + $old_featured = []; } $featured = ActivityPub::fetchItems($apcontact['featured']); diff --git a/src/Protocol/Diaspora.php b/src/Protocol/Diaspora.php index 71726534d0..70fd0f1f8d 100644 --- a/src/Protocol/Diaspora.php +++ b/src/Protocol/Diaspora.php @@ -4101,10 +4101,10 @@ class Diaspora 'author-id' => $author, 'owner-id' => $author, 'body' => $post, - 'allow_cid' => $owner['allow_cid'], - 'allow_gid' => $owner['allow_gid'], - 'deny_cid' => $owner['deny_cid'], - 'deny_gid' => $owner['deny_gid'], + 'allow_cid' => $owner['allow_cid'] ?? '', + 'allow_gid' => $owner['allow_gid']?? '', + 'deny_cid' => $owner['deny_cid'] ?? '', + 'deny_gid' => $owner['deny_gid'] ?? '', ]; if (!empty($item['allow_cid'] . $item['allow_gid'] . $item['deny_cid'] . $item['deny_gid'])) {