summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorBrion Vibber <brion@status.net>2010-11-19 14:00:22 -0800
committerBrion Vibber <brion@status.net>2010-11-19 14:00:22 -0800
commitca55d6c514d4ecadbb7d3fdc4c618dfd9da4a786 (patch)
tree803caae842b2fb044141154f70a4ddd3c5757f83
parent4b01dd8b2ec18c28a49fd8963dd7e31e73b4670b (diff)
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)
-rw-r--r--actions/apisearchatom.php6
-rw-r--r--actions/apisearchjson.php7
-rw-r--r--lib/jsonsearchresultslist.php4
3 files changed, 14 insertions, 3 deletions
diff --git a/actions/apisearchatom.php b/actions/apisearchatom.php
index 6743e92c8..32ff918da 100644
--- a/actions/apisearchatom.php
+++ b/actions/apisearchatom.php
@@ -114,7 +114,7 @@ class ApiSearchAtomAction extends ApiPrivateAuthAction
$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.
$this->since_id = $this->trimmed('since_id');
@@ -177,6 +177,10 @@ class ApiSearchAtomAction extends ApiPrivateAuthAction
$this->max_id = $notice->id;
}
+ if ($this->since_id && $notice->id <= $this->since_id) {
+ break;
+ }
+
if ($cnt > $this->rpp) {
break;
}
diff --git a/actions/apisearchjson.php b/actions/apisearchjson.php
index 38e612ee3..dd442b7f2 100644
--- a/actions/apisearchjson.php
+++ b/actions/apisearchjson.php
@@ -85,6 +85,9 @@ class ApiSearchJSONAction extends ApiPrivateAuthAction
$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->geocode = $this->trimmed('geocode');
@@ -127,9 +130,9 @@ class ApiSearchJSONAction extends ApiPrivateAuthAction
$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');
$results->show();
diff --git a/lib/jsonsearchresultslist.php b/lib/jsonsearchresultslist.php
index 0d72ddf7a..80d4036aa 100644
--- a/lib/jsonsearchresultslist.php
+++ b/lib/jsonsearchresultslist.php
@@ -101,6 +101,10 @@ class JSONSearchResultsList
$this->max_id = (int)$this->notice->id;
}
+ if ($this->since_id && $this->notice->id <= $this->since_id) {
+ break;
+ }
+
if ($cnt > $this->rpp) {
break;
}