fixed rating calculation

This commit is contained in:
Polaris 2024-08-14 23:57:35 -04:00
parent 7fa7747b62
commit 64da6391f3
3 changed files with 19 additions and 11 deletions

View File

@ -34,6 +34,7 @@ export async function getUserRatingBaseList() {
songId: {
in: baseListMusicIds,
},
version: supportedVersionNumber, // Ensure the version matches
},
select: {
songId: true,
@ -47,18 +48,23 @@ export async function getUserRatingBaseList() {
},
});
const staticMusic = new Map(
staticMusicInfo.map((info) => [info.songId, info]),
);
// Map to join `musicId` and `difficultId` with static music info
// i hate it
const profileRatingToStaticMusic = new Map<
string,
(typeof staticMusicInfo)[0]
>(staticMusicInfo.map((info) => [`${info.songId}-${info.chartId}`, info]));
const songsWithTitles = userRatingBaseList.map((ratingListSong) => {
const staticInfo = staticMusic.get(ratingListSong.musicId);
const MusicIdtoDiffId = `${ratingListSong.musicId}-${ratingListSong.difficultId}`;
const songInfo = profileRatingToStaticMusic.get(MusicIdtoDiffId);
const level = staticInfo?.level ?? 0;
const level = songInfo?.level ?? 0;
const score = ratingListSong.score ?? 0;
// Calculate the rating
let rating = 0;
if (score >= 1009000) {
rating = level * 100 + 215;
} else if (score >= 1007500) {
@ -81,12 +87,12 @@ export async function getUserRatingBaseList() {
return {
...ratingListSong,
title: staticInfo?.title || "Unknown Title",
artist: staticInfo?.artist || "Unknown Artist",
genre: staticInfo?.genre || "Unknown Genre",
chartId: staticInfo?.chartId || "Unknown chartId",
level: staticInfo?.level || "Unknown Level",
jacketPath: staticInfo?.jacketPath || "",
title: songInfo?.title || "Unknown Title",
artist: songInfo?.artist || "Unknown Artist",
genre: songInfo?.genre || "Unknown Genre",
chartId: songInfo?.chartId || "Unknown chartId",
level: songInfo?.level || "Unknown Level",
jacketPath: songInfo?.jacketPath || "",
rating,
};
});

View File

@ -179,6 +179,7 @@ const config = {
"db"
],
"activeProvider": "mysql",
"postinstall": false,
"inlineDatasources": {
"db": {
"url": {

View File

@ -180,6 +180,7 @@ const config = {
"db"
],
"activeProvider": "mysql",
"postinstall": false,
"inlineDatasources": {
"db": {
"url": {