]> git.mxchange.org Git - quix0rs-gnu-social.git/blobdiff - lib/inboxnoticestream.php
Merge branch 'master' into FeedPoller
[quix0rs-gnu-social.git] / lib / inboxnoticestream.php
index 5517cef1137b4bcfddb3033a59c0611efc5dbb9c..27fec9518b62110b835d13fbe09d0ee84072cdbd 100644 (file)
@@ -57,7 +57,7 @@ class InboxNoticeStream extends ScopingNoticeStream
             $profile = Profile::current();
         }
         // Note: we don't use CachingNoticeStream since RawInboxNoticeStream
-        // uses Inbox::staticGet(), which is cached.
+        // uses Inbox::getKV(), which is cached.
         parent::__construct(new RawInboxNoticeStream($user), $profile);
     }
 }
@@ -85,7 +85,7 @@ class RawInboxNoticeStream extends NoticeStream
     function __construct($user)
     {
         $this->user  = $user;
-        $this->inbox = Inbox::staticGet('user_id', $user->id);
+        $this->inbox = Inbox::getKV('user_id', $user->id);
     }
 
     /**
@@ -135,4 +135,30 @@ class RawInboxNoticeStream extends NoticeStream
 
         return $ids;
     }
+
+    function getNotices($offset, $limit, $sinceId, $maxId)
+    {
+        $all = array();
+
+        do {
+
+            $ids = $this->getNoticeIds($offset, $limit, $sinceId, $maxId);
+
+            $notices = Notice::pivotGet('id', $ids);
+
+            // By default, takes out false values
+
+            $notices = array_filter($notices);
+
+            $all = array_merge($all, $notices);
+
+            if (count($notices < count($ids))) {
+                $offset += $limit;
+                $limit  -= count($notices);
+            }
+
+        } while (count($notices) < count($ids) && count($ids) > 0);
+
+        return new ArrayWrapper($all);
+    }
 }