summaryrefslogtreecommitdiff
path: root/classes/User.php
diff options
context:
space:
mode:
Diffstat (limited to 'classes/User.php')
-rw-r--r--classes/User.php133
1 files changed, 19 insertions, 114 deletions
diff --git a/classes/User.php b/classes/User.php
index 34151778c..d6b52be01 100644
--- a/classes/User.php
+++ b/classes/User.php
@@ -291,6 +291,20 @@ class User extends Memcached_DataObject
return false;
}
+ // Everyone gets an inbox
+
+ $inbox = new Inbox();
+
+ $inbox->user_id = $user->id;
+ $inbox->notice_ids = '';
+
+ $result = $inbox->insert();
+
+ if (!$result) {
+ common_log_db_error($inbox, 'INSERT', __FILE__);
+ return false;
+ }
+
// Everyone is subscribed to themself
$subscription = new Subscription();
@@ -482,89 +496,30 @@ class User extends Memcached_DataObject
function noticesWithFriends($offset=0, $limit=NOTICES_PER_PAGE, $since_id=0, $before_id=0, $since=null)
{
- $ids = Notice_inbox::stream($this->id, $offset, $limit, $since_id, $before_id, $since, false);
-
+ $ids = Inbox::stream($this->id, $offset, $limit, $since_id, $before_id, $since, false);
return Notice::getStreamByIds($ids);
}
function noticeInbox($offset=0, $limit=NOTICES_PER_PAGE, $since_id=0, $before_id=0, $since=null)
{
- $ids = Notice_inbox::stream($this->id, $offset, $limit, $since_id, $before_id, $since, true);
-
+ $ids = Inbox::stream($this->id, $offset, $limit, $since_id, $before_id, $since, true);
return Notice::getStreamByIds($ids);
}
function friendsTimeline($offset=0, $limit=NOTICES_PER_PAGE, $since_id=0, $before_id=0, $since=null)
{
- $ids = Notice::stream(array($this, '_friendsTimelineDirect'),
- array(false),
- 'user:friends_timeline:'.$this->id,
- $offset, $limit, $since_id, $before_id, $since);
+ $ids = Inbox::stream($this->id, $offset, $limit, $since_id, $before_id, $since, false);
return Notice::getStreamByIds($ids);
}
function ownFriendsTimeline($offset=0, $limit=NOTICES_PER_PAGE, $since_id=0, $before_id=0, $since=null)
{
- $ids = Notice::stream(array($this, '_friendsTimelineDirect'),
- array(true),
- 'user:friends_timeline_own:'.$this->id,
- $offset, $limit, $since_id, $before_id, $since);
+ $ids = Inbox::stream($this->id, $offset, $limit, $since_id, $before_id, $since, true);
return Notice::getStreamByIds($ids);
}
- function _friendsTimelineDirect($own, $offset, $limit, $since_id, $max_id, $since)
- {
- $qry =
- 'SELECT notice.id AS id ' .
- 'FROM notice JOIN notice_inbox ON notice.id = notice_inbox.notice_id ' .
- 'WHERE notice_inbox.user_id = ' . $this->id . ' ' .
- 'AND notice.repeat_of IS NULL ';
-
- if (!$own) {
- // XXX: autoload notice inbox for constant
- $inbox = new Notice_inbox();
-
- $qry .= 'AND notice_inbox.source != ' . NOTICE_INBOX_SOURCE_GATEWAY . ' ';
- }
-
- if ($since_id != 0) {
- $qry .= 'AND notice.id > ' . $since_id . ' ';
- }
-
- if ($max_id != 0) {
- $qry .= 'AND notice.id <= ' . $max_id . ' ';
- }
-
- if (!is_null($since)) {
- $qry .= 'AND notice.modified > \'' . date('Y-m-d H:i:s', $since) . '\' ';
- }
-
- // NOTE: we sort by fave time, not by notice time!
-
- $qry .= 'ORDER BY notice_id DESC ';
-
- if (!is_null($offset)) {
- $qry .= "LIMIT $limit OFFSET $offset";
- }
-
- $ids = array();
-
- $notice = new Notice();
-
- $notice->query($qry);
-
- while ($notice->fetch()) {
- $ids[] = $notice->id;
- }
-
- $notice->free();
- $notice = NULL;
-
- return $ids;
- }
-
function blowFavesCache()
{
$cache = common_memcache();
@@ -777,7 +732,6 @@ class User extends Memcached_DataObject
'Remember_me',
'Foreign_link',
'Invitation',
- 'Notice_inbox',
);
Event::handle('UserDeleteRelated', array($this, &$related));
@@ -945,56 +899,7 @@ class User extends Memcached_DataObject
function repeatedToMe($offset=0, $limit=20, $since_id=null, $max_id=null)
{
- $ids = Notice::stream(array($this, '_repeatedToMeDirect'),
- array(),
- 'user:repeated_to_me:'.$this->id,
- $offset, $limit, $since_id, $max_id, null);
-
- return Notice::getStreamByIds($ids);
- }
-
- function _repeatedToMeDirect($offset, $limit, $since_id, $max_id, $since)
- {
- $qry =
- 'SELECT notice.id AS id ' .
- 'FROM notice JOIN notice_inbox ON notice.id = notice_inbox.notice_id ' .
- 'WHERE notice_inbox.user_id = ' . $this->id . ' ' .
- 'AND notice.repeat_of IS NOT NULL ';
-
- if ($since_id != 0) {
- $qry .= 'AND notice.id > ' . $since_id . ' ';
- }
-
- if ($max_id != 0) {
- $qry .= 'AND notice.id <= ' . $max_id . ' ';
- }
-
- if (!is_null($since)) {
- $qry .= 'AND notice.modified > \'' . date('Y-m-d H:i:s', $since) . '\' ';
- }
-
- // NOTE: we sort by fave time, not by notice time!
-
- $qry .= 'ORDER BY notice.id DESC ';
-
- if (!is_null($offset)) {
- $qry .= "LIMIT $limit OFFSET $offset";
- }
-
- $ids = array();
-
- $notice = new Notice();
-
- $notice->query($qry);
-
- while ($notice->fetch()) {
- $ids[] = $notice->id;
- }
-
- $notice->free();
- $notice = NULL;
-
- return $ids;
+ throw new Exception("Not implemented since inbox change.");
}
function shareLocation()