summaryrefslogtreecommitdiff
path: root/classes/User.php
diff options
context:
space:
mode:
Diffstat (limited to 'classes/User.php')
-rw-r--r--classes/User.php54
1 files changed, 50 insertions, 4 deletions
diff --git a/classes/User.php b/classes/User.php
index 2d689fd2b..ce7632ec5 100644
--- a/classes/User.php
+++ b/classes/User.php
@@ -141,6 +141,19 @@ class User extends Memcached_DataObject
return true;
}
+ function noticesWithFriendsWindow() {
+
+
+ $notice = new Notice();
+
+ $notice->query('SELECT notice.* ' .
+ 'FROM notice JOIN subscription on notice.profile_id = subscription.subscribed ' .
+ 'WHERE subscription.subscriber = ' . $this->id . ' ' .
+ 'ORDER BY created DESC, notice.id DESC ' .
+ 'LIMIT 0, ' . WITHFRIENDS_CACHE_WINDOW);
+
+ }
+
static function register($fields) {
# MAGICALLY put fields into current scope
@@ -291,23 +304,45 @@ class User extends Memcached_DataObject
return $user;
}
- function getReplies($offset=0, $limit=NOTICES_PER_PAGE) {
+ function getReplies($offset=0, $limit=NOTICES_PER_PAGE, $since_id=0, $before_id=0) {
$qry =
'SELECT notice.* ' .
'FROM notice JOIN reply ON notice.id = reply.notice_id ' .
'WHERE reply.profile_id = %d ';
+ if ($since_id > 0) {
+ $qry .= ' AND notice.id > ' . $since_id . ' ';
+ $needAnd = FALSE;
+ }
+
+ // NOTE: before_id is an extension to Twitter API
+ if ($before_id > 0) {
+ $qry .= ' AND notice.id < ' . $before_id . ' ';
+ $needAnd = FALSE;
+ }
+
return Notice::getStream(sprintf($qry, $this->id),
'user:replies:'.$this->id,
$offset, $limit);
}
- function getNotices($offset=0, $limit=NOTICES_PER_PAGE) {
+ function getNotices($offset=0, $limit=NOTICES_PER_PAGE, $since_id=0, $before_id=0) {
$qry =
'SELECT * ' .
'FROM notice ' .
'WHERE profile_id = %d ';
+ if ($since_id > 0) {
+ $qry .= ' AND notice.id > ' . $since_id . ' ';
+ $needAnd = FALSE;
+ }
+
+ // NOTE: before_id is an extension to Twitter API
+ if ($before_id > 0) {
+ $qry .= ' AND notice.id < ' . $before_id . ' ';
+ $needAnd = FALSE;
+ }
+
return Notice::getStream(sprintf($qry, $this->id),
'user:notices:'.$this->id,
$offset, $limit);
@@ -324,12 +359,23 @@ class User extends Memcached_DataObject
$offset, $limit);
}
- function noticesWithFriends($offset=0, $limit=NOTICES_PER_PAGE) {
+ function noticesWithFriends($offset=0, $limit=NOTICES_PER_PAGE, $since_id=0, $before_id=0) {
$qry =
'SELECT notice.* ' .
'FROM notice JOIN subscription ON notice.profile_id = subscription.subscribed ' .
'WHERE subscription.subscriber = %d ';
-
+
+ if ($since_id > 0) {
+ $qry .= ' AND notice.id > ' . $since_id . ' ';
+ $needAnd = FALSE;
+ }
+
+ // NOTE: before_id is an extension to Twitter API
+ if ($before_id > 0) {
+ $qry .= ' AND notice.id < ' . $before_id . ' ';
+ $needAnd = FALSE;
+ }
+
return Notice::getStream(sprintf($qry, $this->id),
'user:notices_with_friends:' . $this->id,
$offset, $limit);