Преглед изворни кода

Update SearchApiV2Service, improve account search results

Daniel Supernault пре 2 година
родитељ
комит
f6a588f9cf
1 измењених фајлова са 6 додато и 5 уклоњено
  1. 6 5
      app/Services/SearchApiV2Service.php

+ 6 - 5
app/Services/SearchApiV2Service.php

@@ -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)