]> git.mxchange.org Git - quix0rs-gnu-social.git/commitdiff
OStatus onStartNoticeSourceLink to use exceptions
authorMikael Nordfeldth <mmn@hethane.se>
Sat, 19 Apr 2014 20:18:36 +0000 (22:18 +0200)
committerMikael Nordfeldth <mmn@hethane.se>
Sat, 19 Apr 2014 20:18:36 +0000 (22:18 +0200)
plugins/OStatus/OStatusPlugin.php

index eeb3fffd284610b5e85f8c2975a61cf35a2b16d1..f32b437f866ec8bf8bef0a8df87b68efe42fd2a9 100644 (file)
@@ -523,23 +523,32 @@ class OStatusPlugin extends Plugin
      */
     function onStartNoticeSourceLink($notice, &$name, &$url, &$title)
     {
-        if ($notice->source == 'ostatus') {
-            if ($notice->url) {
-                $bits = parse_url($notice->url);
-                $domain = $bits['host'];
-                if (substr($domain, 0, 4) == 'www.') {
-                    $name = substr($domain, 4);
-                } else {
-                    $name = $domain;
-                }
+        // If we don't handle this, keep the event handler going
+        if ($notice->source != 'ostatus') {
+            return true;
+        }
 
-                $url = $notice->url;
-                // TRANS: Title. %s is a domain name.
-                $title = sprintf(_m('Sent from %s via OStatus'), $domain);
-                return false;
+        try {
+            $url = $notice->getUrl();
+            // If getUrl() throws exception, $url is never set
+            
+            $bits = parse_url($url);
+            $domain = $bits['host'];
+            if (substr($domain, 0, 4) == 'www.') {
+                $name = substr($domain, 4);
+            } else {
+                $name = $domain;
             }
+
+            // TRANS: Title. %s is a domain name.
+            $title = sprintf(_m('Sent from %s via OStatus'), $domain);
+
+            // Abort event handler, we have a name and URL!
+            return false;
+        } catch (InvalidUrlException $e) {
+            // This just means we don't have the notice source data
+            return true;
         }
-    return true;
     }
 
     /**