Merge commit 'jeff-themovie/notice-search-no-results' into 0.8.x

* commit 'jeff-themovie/notice-search-no-results':
  Fixes the notice search RSS feeds / API results for searches that return no matches.
This commit is contained in:
Zach Copley 2009-06-30 15:38:14 -07:00
commit 190d45cd05
3 changed files with 32 additions and 19 deletions

View File

@ -67,11 +67,16 @@ class NoticesearchrssAction extends Rss10Action
if (!$limit) $limit = 20; if (!$limit) $limit = 20;
$search_engine->limit(0, $limit, true); $search_engine->limit(0, $limit, true);
$search_engine->query($q); if (false === $search_engine->query($q)) {
$notice->find(); $cnt = 0;
} else {
$cnt = $notice->find();
}
while ($notice->fetch()) { if ($cnt > 0) {
$notices[] = clone($notice); while ($notice->fetch()) {
$notices[] = clone($notice);
}
} }
return $notices; return $notices;

View File

@ -165,24 +165,29 @@ class TwitapisearchatomAction extends TwitterapiAction
$search_engine->set_sort_mode('chron'); $search_engine->set_sort_mode('chron');
$search_engine->limit(($this->page - 1) * $this->rpp, $search_engine->limit(($this->page - 1) * $this->rpp,
$this->rpp + 1, true); $this->rpp + 1, true);
$search_engine->query($q); if (false === $search_engine->query($q)) {
$this->cnt = $notice->find(); $this->cnt = 0;
} else {
$this->cnt = $notice->find();
}
$cnt = 0; $cnt = 0;
while ($notice->fetch()) { if ($this->cnt > 0) {
while ($notice->fetch()) {
++$cnt; ++$cnt;
if (!$this->max_id) { if (!$this->max_id) {
$this->max_id = $notice->id; $this->max_id = $notice->id;
}
if ($cnt > $this->rpp) {
break;
}
$notices[] = clone($notice);
} }
if ($cnt > $this->rpp) {
break;
}
$notices[] = clone($notice);
} }
return $notices; return $notices;

View File

@ -124,8 +124,11 @@ class TwitapisearchjsonAction extends TwitterapiAction
$search_engine = $notice->getSearchEngine('identica_notices'); $search_engine = $notice->getSearchEngine('identica_notices');
$search_engine->set_sort_mode('chron'); $search_engine->set_sort_mode('chron');
$search_engine->limit(($this->page - 1) * $this->rpp, $this->rpp + 1, true); $search_engine->limit(($this->page - 1) * $this->rpp, $this->rpp + 1, true);
$search_engine->query($q); if (false === $search_engine->query($q)) {
$cnt = $notice->find(); $cnt = 0;
} else {
$cnt = $notice->find();
}
// TODO: since_id, lang, geocode // TODO: since_id, lang, geocode
@ -146,4 +149,4 @@ class TwitapisearchjsonAction extends TwitterapiAction
{ {
return true; return true;
} }
} }