Fix since_id and max_id API parameters for inbox-based loads; was failing if the exact id mentioned wasn't present in the inbox (or had been trimmed out)

This commit is contained in:
Brion Vibber 2010-01-15 10:01:50 -08:00
parent 038287c1ff
commit 963260d262
1 changed files with 12 additions and 6 deletions

View File

@ -154,17 +154,23 @@ class Inbox extends Memcached_DataObject
$ids = unpack('N*', $inbox->notice_ids);
if (!empty($since_id)) {
$i = array_search($since_id, $ids);
if ($i !== false) {
$ids = array_slice($ids, 0, $i - 1);
$newids = array();
foreach ($ids as $id) {
if ($id > $since_id) {
$newids[] = $id;
}
}
$ids = $newids;
}
if (!empty($max_id)) {
$i = array_search($max_id, $ids);
if ($i !== false) {
$ids = array_slice($ids, $i - 1);
$newids = array();
foreach ($ids as $id) {
if ($id <= $max_id) {
$newids[] = $id;
}
}
$ids = $newids;
}
$ids = array_slice($ids, $offset, $limit);