]> git.mxchange.org Git - quix0rs-gnu-social.git/blobdiff - actions/shownotice.php
Improve ShownoticeAction remote redirect code
[quix0rs-gnu-social.git] / actions / shownotice.php
index d86e98080bad9efc1c7653f8806a06415ded1258..b72f39513ed8e11db4c463e5e0ca928bd5b97948 100644 (file)
@@ -218,17 +218,13 @@ class ShownoticeAction extends Action
             $this->showAjax();
         } else {
             if ($this->notice->is_local == Notice::REMOTE) {
-                if (!empty($this->notice->url)) {
-                    $target = $this->notice->url;
-                } else if (!empty($this->notice->uri) && preg_match('/^https?:/', $this->notice->uri)) {
-                    // Old OMB posts saved the remote URL only into the URI field.
-                    $target = $this->notice->uri;
-                } else {
-                    // Shouldn't happen.
-                    $target = false;
-                }
-                if ($target && $target != $this->selfUrl()) {
-                    common_redirect($target, 301);
+                try {
+                    $target = $this->notice->getUrl()
+                    if ($target != $this->selfUrl()) {
+                        common_redirect($target, 301);
+                    }
+                } catch (InvalidUrlException $e) {
+                    common_debug('ShownoticeAction could not redirect to remote notice with id='.$this->notice->id . '. Falling back to showPage().');
                 }
             }
             $this->showPage();