From 3a73942602d1017a4471a662ec589e0cf71e42c9 Mon Sep 17 00:00:00 2001 From: Stedoss <29103029+Stedoss@users.noreply.github.com> Date: Tue, 11 Mar 2025 17:37:51 +0000 Subject: [PATCH] Add `leaderboard_rank` filters to `similar-replays` screen --- nise-frontend/src/app/replays.ts | 2 ++ .../view-similar-replays.component.html | 14 ++++++++++++++ .../view-similar-replays.component.ts | 10 +++++++++- 3 files changed, 25 insertions(+), 1 deletion(-) diff --git a/nise-frontend/src/app/replays.ts b/nise-frontend/src/app/replays.ts index e1eb2b8..620f06d 100644 --- a/nise-frontend/src/app/replays.ts +++ b/nise-frontend/src/app/replays.ts @@ -170,6 +170,8 @@ export interface SimilarReplay { replay_date_2: string; replay_pp_1: number; replay_pp_2: number; + replay_leaderboard_rank_1: number; + replay_leaderboard_rank_2: number; beatmap_id: number; beatmap_title: string; beatmap_star_rating: number; diff --git a/nise-frontend/src/app/view-similar-replays/view-similar-replays.component.html b/nise-frontend/src/app/view-similar-replays/view-similar-replays.component.html index 05f399a..a9d496c 100644 --- a/nise-frontend/src/app/view-similar-replays/view-similar-replays.component.html +++ b/nise-frontend/src/app/view-similar-replays/view-similar-replays.component.html @@ -51,6 +51,20 @@

+ + +

+ + +

+ + +

+ + +

diff --git a/nise-frontend/src/app/view-similar-replays/view-similar-replays.component.ts b/nise-frontend/src/app/view-similar-replays/view-similar-replays.component.ts index 1b818d0..35b49a9 100644 --- a/nise-frontend/src/app/view-similar-replays/view-similar-replays.component.ts +++ b/nise-frontend/src/app/view-similar-replays/view-similar-replays.component.ts @@ -19,6 +19,9 @@ export interface FilterStolenReplays { minSimilarity?: number; maxSimilarity?: number; + + minRank?: number; + maxRank?: number; } @Component({ @@ -133,7 +136,12 @@ export class ViewSimilarReplaysComponent implements OnInit { const similarityMatch = (filters.minSimilarity !== undefined ? score.similarity >= filters.minSimilarity : true) && (filters.maxSimilarity !== undefined ? score.similarity <= filters.maxSimilarity : true); - return usernameMatch && beatmapMatch && ppMatch && similarityMatch; + const scoreHasRank = score.replay_leaderboard_rank_2 > 0; + + const rankMatch = (filters.minRank == null || (score.replay_leaderboard_rank_2 <= filters.minRank && scoreHasRank)) && + (filters.maxRank == null || score.replay_leaderboard_rank_2 >= filters.maxRank && scoreHasRank); + + return usernameMatch && beatmapMatch && ppMatch && similarityMatch && rankMatch; }); this.filterManager.persistToLocalStorage();