X-Git-Url: https://git.mxchange.org/?a=blobdiff_plain;f=lib%2Finboxnoticestream.php;h=87868b1d79aab4f2e6b852dac3a7106ac229c293;hb=refs%2Fheads%2Fsazius-nightly;hp=cb81042e2b1fafac8d00fa9099469f2e1c4987db;hpb=36a55d84363e69bf08da38e524f7d33063c2743a;p=quix0rs-gnu-social.git diff --git a/lib/inboxnoticestream.php b/lib/inboxnoticestream.php index cb81042e2b..87868b1d79 100644 --- a/lib/inboxnoticestream.php +++ b/lib/inboxnoticestream.php @@ -107,10 +107,26 @@ class RawInboxNoticeStream extends NoticeStream // Subscription:: is a table of subscriptions (every user is subscribed to themselves) $notice->whereAdd( sprintf('notice.id IN (SELECT notice_id FROM reply WHERE profile_id=%1$d) ' . - 'OR notice.profile_id IN (SELECT subscribed FROM subscription WHERE subscriber=%d)', $this->target->id) + 'OR notice.profile_id IN (SELECT subscribed FROM subscription WHERE subscriber=%1$d) ' . + 'OR notice.id IN (SELECT notice_id FROM group_inbox WHERE group_id IN (SELECT group_id FROM group_member WHERE profile_id=%1$d))' . + 'OR notice.id IN (SELECT notice_id FROM attention WHERE profile_id=%1$d)', + $this->target->id) ); + if (!empty($since_id)) { + $notice->whereAdd(sprintf('notice.id > %d', $since_id)); + } + if (!empty($max_id)) { + $notice->whereAdd(sprintf('notice.id <= %d', $max_id)); + } + if (!empty($this->selectVerbs)) { + $notice->whereAddIn('verb', $this->selectVerbs, $notice->columnType('verb')); + } $notice->limit($offset, $limit); - $notice->orderBy('notice.created DESC'); + // notice.id will give us even really old posts, which were + // recently imported. For example if a remote instance had + // problems and just managed to post here. Another solution + // would be to have a 'notice.imported' field and order by it. + $notice->orderBy('notice.id DESC'); if (!$notice->find()) { return array();