diff --git a/lib/Db/CacheActorsRequest.php b/lib/Db/CacheActorsRequest.php index 7899f768..c5148d77 100644 --- a/lib/Db/CacheActorsRequest.php +++ b/lib/Db/CacheActorsRequest.php @@ -211,11 +211,11 @@ class CacheActorsRequest extends CacheActorsRequestBuilder { */ public function searchAccounts(string $search): array { $qb = $this->getCacheActorsSelectSql(); - $this->searchInAccount($qb, $search); + $qb->searchInAccount($search); /** @var SocialQueryBuilder $qb */ $qb->leftJoinCacheDocuments('icon_id'); $this->leftJoinDetails($qb); - $this->limitResults($qb, 25); + $qb->limitResults(25); return $this->getCacheActorsFromRequest($qb); } diff --git a/lib/Service/SearchService.php b/lib/Service/SearchService.php index 094d4064..16e41c19 100644 --- a/lib/Service/SearchService.php +++ b/lib/Service/SearchService.php @@ -83,21 +83,18 @@ class SearchService { * @return Person[] */ public function searchAccounts(string $search): array { - $result = []; $type = $this->getTypeFromSearch($search); if ($search === '' || !$type & self::SEARCH_ACCOUNTS) { - return $result; + return []; } - if (substr($search, 0, 1) === '@') { - $search = substr($search, 1); - } + $search = ltrim($search, '@'); try { + // search and cache eventual exact account first $this->cacheActorService->getFromAccount($search); } catch (Exception $e) { - $this->logger->notice('searchAccounts', ['exception' => $e, 'search' => $search]); } return $this->cacheActorService->searchCachedAccounts($search);