]> git.mxchange.org Git - friendica.git/commitdiff
Renamed function, added documentation
authorMichael <heluecht@pirati.ca>
Sun, 22 Dec 2019 17:20:11 +0000 (17:20 +0000)
committerMichael <heluecht@pirati.ca>
Sun, 22 Dec 2019 17:20:11 +0000 (17:20 +0000)
src/Network/Probe.php

index 514cd6989391ad5a43d565741f01b2770f4d9adf..629453f1823cc50035050a543df66ffd455d9e5f 100644 (file)
@@ -359,9 +359,9 @@ class Probe
                        $data['url'] = $uri;
                }
 
-               if (!empty($data['photo'])) {
-                       $data['baseurl'] = Network::getUrlMatch(Strings::normaliseLink($data['baseurl'] ?? ''), Strings::normaliseLink($data['photo']));
-               } else {
+               if (!empty($data['photo']) && !empty($data["baseurl"])) {
+                       $data['baseurl'] = Network::getUrlMatch(Strings::normaliseLink($data['baseurl']), Strings::normaliseLink($data['photo']));
+               } elseif (empty($data['photo'])) {
                        $data['photo'] = System::baseUrl() . '/images/person-300.jpg';
                }
 
@@ -651,7 +651,7 @@ class Probe
                        $result = self::pumpio($webfinger, $addr, $result);
                }
                if ((empty($result['network']) && ($network == "")) || ($network == Protocol::ZOT)) {
-                       $result = self::hubzilla($webfinger, $result);
+                       $result = self::zot($webfinger, $result);
                }
                if ((empty($result['network']) && ($network == "")) || ($network == Protocol::FEED)) {
                        $result = self::feed($uri, true, $result);
@@ -677,7 +677,7 @@ class Probe
 
                Logger::log($uri." is ".$result["network"], Logger::DEBUG);
 
-               if (empty($result["baseurl"])) {
+               if (empty($result["baseurl"]) && ($result["network"] != Protocol::PHANTOM)) {
                        $pos = strpos($result["url"], $host);
                        if ($pos) {
                                $result["baseurl"] = substr($result["url"], 0, $pos).$host;
@@ -686,29 +686,21 @@ class Probe
                return $result;
        }
 
-       private static function hubzilla($webfinger, $data)
+       /**
+        * Check for Zot contact
+        *
+        * @param array $webfinger Webfinger data
+        * @param array $data      previously probed data
+        *
+        * @return array Zot data
+        * @throws HTTPException\InternalServerErrorException
+        */
+       private static function zot($webfinger, $data)
        {
-               if (strstr($webfinger['properties']['http://purl.org/zot/federation'] ?? '', 'zot')) {
-                       $data['network'] = Protocol::ZOT;
-               }
-               if (!empty($webfinger['properties']['http://webfinger.net/ns/name'])) {
-                       $data['name'] = $webfinger['properties']['http://webfinger.net/ns/name'];
-               }
-               if (!empty($webfinger['properties']['https://w3id.org/security/v1#publicKeyPem'])) {
-                       $data['pubkey'] = $webfinger['properties']['https://w3id.org/security/v1#publicKeyPem'];
-               }
-//print_r($webfinger);
-               $hcard_url = '';
                $zot_url = '';
                foreach ($webfinger['links'] as $link) {
-                       if (($link['rel'] == 'http://microformats.org/profile/hcard') && !empty($link['href'])) {
-                               $hcard_url = $link['href'];
-                       } elseif (($link['rel'] == 'http://purl.org/zot/protocol') && !empty($link['href'])) {
+                       if (($link['rel'] == 'http://purl.org/zot/protocol') && !empty($link['href'])) {
                                $zot_url = $link['href'];
-                       } elseif (($link["rel"] == "http://purl.org/zot/protocol/6.0") && !empty($link["href"])) {
-                               $data["url"] = $link["href"];
-                       } elseif (($link["rel"] == "http://webfinger.net/rel/blog") && !empty($link["href"]) && empty($data["url"])) {
-                               $data["url"] = $link["href"];
                        }
                }
 
@@ -716,10 +708,6 @@ class Probe
                        $zot_url = self::$baseurl . '/.well-known/zot-info?address=' . $data['addr'];
                }
 
-               if (!empty($hcard_url)) {
-                       $data = self::pollHcard($hcard_url, $data, false);
-               }
-
                if (!empty($zot_url)) {
                        $data = self::pollZot($zot_url, $data);
                }
@@ -745,6 +733,8 @@ class Probe
 
                if (!empty($json['protocols']) && in_array('zot', $json['protocols'])) {
                        $data['network'] = Protocol::ZOT;
+               } elseif (!isset($json['protocols'])) {
+                       $data['network'] = Protocol::ZOT;
                }
 
                if (!empty($json['guid'])) {
@@ -756,6 +746,9 @@ class Probe
                if (!empty($json['name'])) {
                        $data['name'] = $json['name'];
                }
+               if (!empty($json['photo']) && empty($data['photo'])) {
+                       $data['photo'] = $json['photo'];
+               }
                if (!empty($json['address'])) {
                        $data['addr'] = $json['address'];
                }
@@ -1273,6 +1266,7 @@ class Probe
         * @brief Check for Diaspora contact
         *
         * @param array $webfinger Webfinger data
+        * @param array $data      previously probed data
         *
         * @return array Diaspora data
         * @throws HTTPException\InternalServerErrorException
@@ -1358,6 +1352,7 @@ class Probe
         *
         * @param array $webfinger Webfinger data
         * @param bool  $short     Short detection mode
+        * @param array $data      previously probed data
         *
         * @return array|bool OStatus data or "false" on error or "true" on short mode
         * @throws HTTPException\InternalServerErrorException
@@ -1546,9 +1541,9 @@ class Probe
        /**
         * @brief Check for pump.io contact
         *
-        * @param array $webfinger Webfinger data
-        *
-        * @param       $addr
+        * @param array  $webfinger Webfinger data
+        * @param string $addr
+        * @param array  $data previously probed data
         * @return array pump.io data
         */
        private static function pumpio($webfinger, $addr, $data)
@@ -1708,6 +1703,7 @@ class Probe
         *
         * @param string  $url   Profile link
         * @param boolean $probe Do a probe if the page contains a feed link
+        * @param array   $data  previously probed data
         *
         * @return array feed data
         * @throws HTTPException\InternalServerErrorException