]> git.mxchange.org Git - friendica.git/blobdiff - src/Model/APContact.php
Funkwhale context file moved
[friendica.git] / src / Model / APContact.php
index d07d24b42b0644aecab77c81e66a2591b1c49630..841c028909b65c56913487844ce767fcf00a502e 100644 (file)
@@ -26,7 +26,6 @@ use Friendica\Core\Cache\Enum\Duration;
 use Friendica\Core\Logger;
 use Friendica\Core\System;
 use Friendica\Database\DBA;
-use Friendica\Database\DBStructure;
 use Friendica\DI;
 use Friendica\Network\HTTPClient\Client\HttpClientAccept;
 use Friendica\Network\HTTPException;
@@ -165,6 +164,8 @@ class APContact
                                return $fetched_contact;
                        }
                        $url = $apcontact['url'];
+               } elseif (empty(parse_url($url, PHP_URL_PATH))) {
+                       $apcontact['baseurl'] = $url;
                }
 
                // Detect multiple fast repeating request to the same address
@@ -537,4 +538,28 @@ class APContact
 
                HTTPSignature::setInboxStatus($url, true, $shared);
        }
+
+       /**
+        * Check if the apcontact is a relay account
+        *
+        * @param array $apcontact
+        *
+        * @return bool 
+        */
+       public static function isRelay(array $apcontact): bool
+       {
+               if ($apcontact['nick'] != 'relay') {
+                       return false;
+               }
+
+               if ($apcontact['type'] == 'Application') {
+                       return true;
+               }
+
+               if (in_array($apcontact['type'], ['Group', 'Service']) && is_null($apcontact['outbox'])) {
+                       return true;
+               }
+
+               return false;
+       }
 }