forked from GNUsocial/gnu-social
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:
parent
038287c1ff
commit
963260d262
@ -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);
|
||||
|
Loading…
Reference in New Issue
Block a user