1
0
mirror of https://github.com/ppy/osu.git synced 2026-05-19 12:00:05 +08:00

Fix artist/title keyword filters not working properly with not-equals operator

Closes https://github.com/ppy/osu/issues/35264.
This commit is contained in:
Bartłomiej Dach
2025-10-13 11:39:56 +02:00
Unverified
parent a3f635588c
commit 8e01fb70c3
2 changed files with 34 additions and 8 deletions
@@ -77,10 +77,23 @@ namespace osu.Game.Screens.Select.Carousel
if (!match) return false;
match &= !criteria.Creator.HasFilter || criteria.Creator.Matches(BeatmapInfo.Metadata.Author.Username);
match &= !criteria.Artist.HasFilter || criteria.Artist.Matches(BeatmapInfo.Metadata.Artist) ||
criteria.Artist.Matches(BeatmapInfo.Metadata.ArtistUnicode);
match &= !criteria.Title.HasFilter || criteria.Title.Matches(BeatmapInfo.Metadata.Title) ||
criteria.Title.Matches(BeatmapInfo.Metadata.TitleUnicode);
if (criteria.Artist.HasFilter)
{
if (criteria.Artist.ExcludeTerm)
match &= criteria.Artist.Matches(BeatmapInfo.Metadata.Artist) && criteria.Artist.Matches(BeatmapInfo.Metadata.ArtistUnicode);
else
match &= criteria.Artist.Matches(BeatmapInfo.Metadata.Artist) || criteria.Artist.Matches(BeatmapInfo.Metadata.ArtistUnicode);
}
if (criteria.Title.HasFilter)
{
if (criteria.Title.ExcludeTerm)
match &= criteria.Title.Matches(BeatmapInfo.Metadata.Title) && criteria.Title.Matches(BeatmapInfo.Metadata.TitleUnicode);
else
match &= criteria.Title.Matches(BeatmapInfo.Metadata.Title) || criteria.Title.Matches(BeatmapInfo.Metadata.TitleUnicode);
}
match &= !criteria.DifficultyName.HasFilter || criteria.DifficultyName.Matches(BeatmapInfo.DifficultyName);
match &= !criteria.Source.HasFilter || criteria.Source.Matches(BeatmapInfo.Metadata.Source);
@@ -96,10 +96,23 @@ namespace osu.Game.Screens.SelectV2
if (!match) return false;
match &= !criteria.Creator.HasFilter || criteria.Creator.Matches(beatmap.Metadata.Author.Username);
match &= !criteria.Artist.HasFilter || criteria.Artist.Matches(beatmap.Metadata.Artist) ||
criteria.Artist.Matches(beatmap.Metadata.ArtistUnicode);
match &= !criteria.Title.HasFilter || criteria.Title.Matches(beatmap.Metadata.Title) ||
criteria.Title.Matches(beatmap.Metadata.TitleUnicode);
if (criteria.Artist.HasFilter)
{
if (criteria.Artist.ExcludeTerm)
match &= criteria.Artist.Matches(beatmap.Metadata.Artist) && criteria.Artist.Matches(beatmap.Metadata.ArtistUnicode);
else
match &= criteria.Artist.Matches(beatmap.Metadata.Artist) || criteria.Artist.Matches(beatmap.Metadata.ArtistUnicode);
}
if (criteria.Title.HasFilter)
{
if (criteria.Title.ExcludeTerm)
match &= criteria.Title.Matches(beatmap.Metadata.Title) && criteria.Title.Matches(beatmap.Metadata.TitleUnicode);
else
match &= criteria.Title.Matches(beatmap.Metadata.Title) || criteria.Title.Matches(beatmap.Metadata.TitleUnicode);
}
match &= !criteria.DifficultyName.HasFilter || criteria.DifficultyName.Matches(beatmap.DifficultyName);
match &= !criteria.Source.HasFilter || criteria.Source.Matches(beatmap.Metadata.Source);