feat: display music details

This commit is contained in:
mokurin000
2025-08-02 00:52:09 +08:00
parent 23d8345b0e
commit 2cb3c77d92
6 changed files with 106 additions and 24 deletions

View File

@@ -3,8 +3,9 @@ use std::fmt::Display;
use serde::Deserialize;
use serde::Serialize;
use crate::helper::MUSIC_DB;
use crate::helper::level_name;
use crate::helper::query_music;
use crate::helper::query_music_level;
#[derive(Default, Debug, Clone, PartialEq, Serialize, Deserialize)]
#[serde(rename_all = "camelCase")]
@@ -150,22 +151,11 @@ impl Display for MusicRating {
impl MusicRating {
pub fn music_title(&self) -> Option<String> {
MUSIC_DB
.as_ref()?
.get(&self.music_id)
.map(|music_info| music_info.name.clone())
Some(query_music(&self.music_id).as_ref()?.name.clone())
}
pub fn dx_rating(&self) -> Option<u32> {
Some(
MUSIC_DB
.as_ref()?
.get(&self.music_id)?
.levels
.iter()
.find(|d| d.level == self.level)?
.dx_rating(self.achievement),
)
Some(query_music_level(self.music_id, self.level)?.dx_rating(self.achievement))
}
}