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 @@
+
+
+
+
+
+
+
+
+
+
+
+
1" style="padding: 20px">
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();