mirror of
https://github.com/pixelfed/pixelfed.git
synced 2024-12-21 04:23:16 +00:00
Merge pull request #4163 from pixelfed/staging
Update SearchApiV2Service, improve account search results
This commit is contained in:
commit
6377fa07d3
1 changed files with 6 additions and 5 deletions
|
@ -88,16 +88,17 @@ class SearchApiV2Service
|
|||
$offset = $this->query->input('offset') ?? 0;
|
||||
$rawQuery = $initalQuery ? $initalQuery : $this->query->input('q');
|
||||
$query = $rawQuery . '%';
|
||||
if(Str::substrCount($rawQuery, '@') >= 1 && Str::contains($rawQuery, config('pixelfed.domain.app'))) {
|
||||
$deliminatorCount = Str::substrCount($rawQuery, '@');
|
||||
$query = explode('@', $rawQuery)[$deliminatorCount == 1 ? 0 : 1];
|
||||
$webfingerQuery = $query;
|
||||
if(Str::substrCount($rawQuery, '@') == 1 && substr($rawQuery, 0, 1) !== '@') {
|
||||
$query = '@' . $query;
|
||||
}
|
||||
if(Str::substrCount($rawQuery, '@') == 1 && substr($rawQuery, 0, 1) == '@') {
|
||||
$query = substr($rawQuery, 1) . '%';
|
||||
if(substr($webfingerQuery, 0, 1) !== '@') {
|
||||
$webfingerQuery = '@' . $webfingerQuery;
|
||||
}
|
||||
$banned = InstanceService::getBannedDomains();
|
||||
$results = Profile::select('username', 'id', 'followers_count', 'domain')
|
||||
->where('username', 'like', $query)
|
||||
->orWhere('webfinger', 'like', $webfingerQuery)
|
||||
->orderByDesc('profiles.followers_count')
|
||||
->offset($offset)
|
||||
->limit($limit)
|
||||
|
|
Loading…
Reference in a new issue