]> git.mxchange.org Git - quix0rs-gnu-social.git/blobdiff - lib/noticestreamaction.php
Faster NodeInfo stats
[quix0rs-gnu-social.git] / lib / noticestreamaction.php
index bf09b637805b94c515debcdb311c2141dac0704c..e668a27daf23830788c4a7d4e2c0f8e3a5eb1a78 100644 (file)
@@ -13,8 +13,13 @@ abstract class NoticestreamAction extends ProfileAction
         $this->doStreamPreparation();
 
         // fetch the actual stream stuff
-        $stream = $this->getStream();
-        $this->notice = $stream->getNotices(($this->page-1) * NOTICES_PER_PAGE, NOTICES_PER_PAGE + 1);
+        try {
+            $stream = $this->getStream();
+            $this->notice = $stream->getNotices(($this->page-1) * NOTICES_PER_PAGE, NOTICES_PER_PAGE + 1);
+        } catch (PrivateStreamException $e) {
+            $this->notice = new Notice();
+            $this->notice->whereAdd('FALSE');
+        }
 
         if ($this->page > 1 && $this->notice->N == 0) {
             // TRANS: Client error when page not found (404).
@@ -29,6 +34,18 @@ abstract class NoticestreamAction extends ProfileAction
         // pass by default
     }
 
+    public function extraHeaders()
+    {
+        parent::extraHeaders();
+        foreach ($this->getFeeds() as $feed) {
+            header('Link: <'.htmlspecialchars($feed->getUrl()).'>;' .
+                        ' rel="'.htmlspecialchars($feed->rel()).'";' .
+                        ' type="'.htmlspecialchars($feed->mimeType()).'"',
+                    false    // don't overwrite previous headers of this sort
+                    );
+        }
+    }
+
     // this fetches the NoticeStream
     abstract public function getStream();
 }