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