]> git.mxchange.org Git - quix0rs-gnu-social.git/blobdiff - plugins/OStatus/lib/discoveryhints.php
Debugging log fix.
[quix0rs-gnu-social.git] / plugins / OStatus / lib / discoveryhints.php
index 27c32b483ccc7b35eec1bc50d88b71b51a09539a..86bd72f477909149556a3741899d144fea95b145 100644 (file)
@@ -24,28 +24,31 @@ class DiscoveryHints {
     {
         $hints = array();
 
-        foreach ($xrd->links as $link) {
-            switch ($link->rel) {
-            case WebFingerResource_Profile::PROFILEPAGE:
-                $hints['profileurl'] = $link->href;
-                break;
-            case Salmon::REL_SALMON:
-            case Salmon::NS_MENTIONS:   // XXX: deprecated, remove in the future
-            case Salmon::NS_REPLIES:    // XXX: deprecated, remove in the future
-                $hints['salmon'] = $link->href;
-                break;
-            case Discovery::UPDATESFROM:
-                if (empty($link->type) || $link->type == 'application/atom+xml') {
-                    $hints['feedurl'] = $link->href;
+        if (Event::handle('StartDiscoveryHintsFromXRD', array($xrd, &$hints))) {
+            foreach ($xrd->links as $link) {
+                switch ($link->rel) {
+                case WebFingerResource_Profile::PROFILEPAGE:
+                    $hints['profileurl'] = $link->href;
+                    break;
+                case Salmon::REL_SALMON:
+                case Salmon::NS_MENTIONS:   // XXX: deprecated, remove in the future
+                case Salmon::NS_REPLIES:    // XXX: deprecated, remove in the future
+                    $hints['salmon'] = $link->href;
+                    break;
+                case Discovery::UPDATESFROM:
+                    if (empty($link->type) || $link->type == 'application/atom+xml') {
+                        $hints['feedurl'] = $link->href;
+                    }
+                    break;
+                case Discovery::HCARD:
+                case Discovery::MF2_HCARD:
+                    $hints['hcard'] = $link->href;
+                    break;
+                default:
+                    break;
                 }
-                break;
-            case Discovery::HCARD:
-            case Discovery::MF2_HCARD:
-                $hints['hcard'] = $link->href;
-                break;
-            default:
-                break;
             }
+            Event::handle('EndDiscoveryHintsFromXRD', array($xrd, &$hints));
         }
 
         return $hints;
@@ -55,14 +58,20 @@ class DiscoveryHints {
     {
         $client = new HTTPClient();
         $client->setHeader('Accept', 'text/html,application/xhtml+xml');
-        $response = $client->get($url);
+        try {
+            $response = $client->get($url);
 
-        if (!$response->isOk()) {
+            if (!$response->isOk()) {
+                return null;
+            }
+        } catch (HTTP_Request2_Exception $e) {
+            // Any HTTPClient error that might've been thrown
+            common_log(LOG_ERR, __METHOD__ . ':'.$e->getMessage());
             return null;
         }
 
         return self::hcardHints($response->getBody(),
-                                $response->getUrl());
+                                $response->getEffectiveUrl());
     }
 
     static function hcardHints($body, $url)