Merge pull request #306 from jikan-me/hotfix/genres

Hotfix: Search: genres & genres_exclude
This commit is contained in:
Irfan 2022-11-29 01:10:24 +05:00 committed by GitHub
commit c46b11a81f
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23

View File

@ -48,12 +48,18 @@ abstract class MediaSearchQueryBuilder extends SearchQueryBuilder
private function filterByGenre(\Laravel\Scout\Builder|\Illuminate\Database\Eloquent\Builder $builder, int $genre, $exclude = false): \Laravel\Scout\Builder|\Illuminate\Database\Eloquent\Builder private function filterByGenre(\Laravel\Scout\Builder|\Illuminate\Database\Eloquent\Builder $builder, int $genre, $exclude = false): \Laravel\Scout\Builder|\Illuminate\Database\Eloquent\Builder
{ {
return $builder->where(function ($query) use ($genre, $exclude) { return $builder->where(function ($query) use ($genre, $exclude) {
$operator = $exclude ? '!=' : null; return $exclude ?
return $query $query
->whereOr('genres.mal_id', $operator, $genre) ->orWhere('genres.mal_id', $genre)
->whereOr('demographics.mal_id', $operator, $genre) ->orWhere('demographics.mal_id', $genre)
->whereOr('themes.mal_id', $operator, $genre) ->orWhere('themes.mal_id', $genre)
->whereOr('explicit_genres.mal_id', $operator, $genre); ->orWhere('explicit_genres.mal_id', $genre)
:
$query
->where('genres.mal_id', '!=', $genre)
->where('demographics.mal_id', '!=', $genre)
->where('themes.mal_id', '!=', $genre)
->where('explicit_genres.mal_id', '!=', $genre);
}); });
} }
@ -65,7 +71,7 @@ abstract class MediaSearchQueryBuilder extends SearchQueryBuilder
continue; continue;
} }
$genre = (int)$genre; $genre = (int) $genre;
$builder = $this->filterByGenre($builder, $genre, $exclude); $builder = $this->filterByGenre($builder, $genre, $exclude);
} }