* You should have received a copy of the GNU Affero General Public License
* along with this program. If not, see <http://www.gnu.org/licenses/>.
*
- * @category Cache
+ * @category NoticeStream
* @package StatusNet
* @author Evan Prodromou <evan@status.net>
* @copyright 2011 StatusNet, Inc.
*
* @param User $user User to get a stream for
*/
- function __construct($user, $profile = null)
+ function __construct($user, $profile = -1)
{
+ if (is_int($profile) && $profile == -1) {
+ $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);
}
}
function __construct($user)
{
$this->user = $user;
- $this->inbox = Inbox::staticGet('user_id', $user->id);
+ $this->inbox = Inbox::getKV('user_id', $user->id);
}
/**
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);
+ }
}