Ticket #1987: support since_id on API notice search methods.

max_id is not yet implemented, as it'll need support added to the search backends. (since_id we get 'for free' by just cropping off the list, it'll do for now)
This commit is contained in:
Brion Vibber 2010-11-19 14:00:22 -08:00
parent 4b01dd8b2e
commit ca55d6c514
3 changed files with 14 additions and 3 deletions

View File

@ -114,7 +114,7 @@ class ApiSearchAtomAction extends ApiPrivateAuthAction
$this->page = 1; $this->page = 1;
} }
// TODO: Suppport since_id -- we need to tweak the backend // TODO: Suppport max_id -- we need to tweak the backend
// Search classes to support it. // Search classes to support it.
$this->since_id = $this->trimmed('since_id'); $this->since_id = $this->trimmed('since_id');
@ -177,6 +177,10 @@ class ApiSearchAtomAction extends ApiPrivateAuthAction
$this->max_id = $notice->id; $this->max_id = $notice->id;
} }
if ($this->since_id && $notice->id <= $this->since_id) {
break;
}
if ($cnt > $this->rpp) { if ($cnt > $this->rpp) {
break; break;
} }

View File

@ -85,6 +85,9 @@ class ApiSearchJSONAction extends ApiPrivateAuthAction
$this->page = 1; $this->page = 1;
} }
// TODO: Suppport max_id -- we need to tweak the backend
// Search classes to support it.
$this->since_id = $this->trimmed('since_id'); $this->since_id = $this->trimmed('since_id');
$this->geocode = $this->trimmed('geocode'); $this->geocode = $this->trimmed('geocode');
@ -127,9 +130,9 @@ class ApiSearchJSONAction extends ApiPrivateAuthAction
$cnt = $notice->find(); $cnt = $notice->find();
} }
// TODO: since_id, lang, geocode // TODO: max_id, lang, geocode
$results = new JSONSearchResultsList($notice, $q, $this->rpp, $this->page); $results = new JSONSearchResultsList($notice, $q, $this->rpp, $this->page, $this->since_id);
$this->initDocument('json'); $this->initDocument('json');
$results->show(); $results->show();

View File

@ -101,6 +101,10 @@ class JSONSearchResultsList
$this->max_id = (int)$this->notice->id; $this->max_id = (int)$this->notice->id;
} }
if ($this->since_id && $this->notice->id <= $this->since_id) {
break;
}
if ($cnt > $this->rpp) { if ($cnt > $this->rpp) {
break; break;
} }