From 95e78e4f93b44665bd6cc921ef22e6bee622a9e3 Mon Sep 17 00:00:00 2001 From: Colanns Date: Fri, 29 Mar 2024 23:49:08 +0800 Subject: [PATCH] [+] Add a B50 / rating page to frontend --- AquaNet/src/components/MapDetails.svelte | 146 +++++++++++++++++++++++ AquaNet/src/libs/i18n/en_ref.ts | 1 + AquaNet/src/libs/i18n/zh.ts | 1 + AquaNet/src/pages/UserHome.svelte | 23 +++- 4 files changed, 168 insertions(+), 3 deletions(-) create mode 100644 AquaNet/src/components/MapDetails.svelte diff --git a/AquaNet/src/components/MapDetails.svelte b/AquaNet/src/components/MapDetails.svelte new file mode 100644 index 00000000..b81c6803 --- /dev/null +++ b/AquaNet/src/components/MapDetails.svelte @@ -0,0 +1,146 @@ + + + + +
+
+
+ +
+
+
{meta.name ?? t("UserHome.UnknownSong")}
+ + { mapRank } + +
+
+ + + {("" + getMult(mapData[3], game)[2]).replace("p", "+")} + {(mapData[3] / 10000).toFixed(2)}% + + {#if game === 'mai2'} + + { (mapData[3] / 1000000 * mapRank * Number(mult[1])).toFixed(0) } + + {/if} +
+
+
+
+
+ + + \ No newline at end of file diff --git a/AquaNet/src/libs/i18n/en_ref.ts b/AquaNet/src/libs/i18n/en_ref.ts index de669ab0..128d7acf 100644 --- a/AquaNet/src/libs/i18n/en_ref.ts +++ b/AquaNet/src/libs/i18n/en_ref.ts @@ -23,6 +23,7 @@ export const EN_REF_USER = { 'UserHome.ShowRanksDetails': "Click to show details", 'UserHome.RankDetail.Title': 'Achievement Details', 'UserHome.RankDetail.Level': "Level", + 'UserHome.B50': "B50", } export const EN_REF_Welcome = { diff --git a/AquaNet/src/libs/i18n/zh.ts b/AquaNet/src/libs/i18n/zh.ts index 8ffa93cb..5c28b09c 100644 --- a/AquaNet/src/libs/i18n/zh.ts +++ b/AquaNet/src/libs/i18n/zh.ts @@ -25,6 +25,7 @@ const zhUser: typeof EN_REF_USER = { 'UserHome.ShowRanksDetails': "点击显示评分详细", 'UserHome.RankDetail.Title': '评分详细', 'UserHome.RankDetail.Level': "等级", + 'UserHome.B50': "B50", } const zhWelcome: typeof EN_REF_Welcome = { diff --git a/AquaNet/src/pages/UserHome.svelte b/AquaNet/src/pages/UserHome.svelte index 2ddcf4db..3861e184 100644 --- a/AquaNet/src/pages/UserHome.svelte +++ b/AquaNet/src/pages/UserHome.svelte @@ -5,7 +5,10 @@ GenericGameSummary, MusicMeta, TrendEntry, - AquaNetUser + AquaNetUser, + + AllMusic + } from "../libs/generalTypes"; import { DATA_HOST } from "../libs/config"; import 'cal-heatmap/cal-heatmap.css'; @@ -18,6 +21,7 @@ import Icon from "@iconify/svelte"; import { GAME_TITLE, t } from "../libs/i18n"; import RankDetails from "../components/RankDetails.svelte"; + import MapDetails from "../components/MapDetails.svelte"; const TREND_DAYS = 60 @@ -38,11 +42,11 @@ user: GenericGameSummary, trend: TrendEntry[] recent: MusicAndPlay[], - validGames: [ string, string ][] + validGames: [ string, string ][], } | null + let allMusics: AllMusic let showDetailRank = false - USER.isLoggedIn() && USER.me().then(u => me = u) @@ -69,6 +73,7 @@ recent: user.recent.map(it => {return {...music[it.musicId], ...it}}), validGames: Object.entries(GAME_TITLE).filter(g => games[g[0] as GameName]) } + allMusics = music renderCal(calElement, trend.map(it => {return {date: it.date, value: it.plays}})).then(() => { // Scroll to the rightmost calElement.scrollLeft = calElement.scrollWidth - calElement.clientWidth @@ -215,6 +220,18 @@ + +
+

B35

+
+ {#each d.user.ratingComposition.best35.split(",") as map} + +
+ +
+ {/each} +
+

{t('UserHome.RecentScores')}