@@ -647,7 +647,7 @@ async def _get_mapping(
647647 yield (song , diff , score )
648648
649649 @staticmethod
650- def calcuate_dx_star (dx_score , max_dx_score ) :
650+ def _calcuate_dx_star (dx_score : int , max_dx_score : int ) -> int :
651651 THRESHOLD = [0.85 , 0.90 , 0.93 , 0.95 , 0.97 ]
652652
653653 percentage = dx_score / max_dx_score
@@ -661,15 +661,16 @@ async def _get_extended(scores: Iterable[Score], maimai_songs: MaimaiSongs) -> l
661661 extended_scores = []
662662 async for song , diff , score in MaimaiScores ._get_mapping (scores , maimai_songs ):
663663 extended_dict = dataclasses .asdict (score )
664- max_dx_score = (diff .tap_num + diff .hold_num + diff .slide_num + diff .break_num + diff .touch_num ) * 3
664+ level_dx_score = (diff .tap_num + diff .hold_num + diff .slide_num + diff .break_num + diff .touch_num ) * 3
665+ dx_star = MaimaiScores ._calcuate_dx_star (score .dx_score , level_dx_score ) if score .dx_score else None
665666 extended_dict .update (
666667 {
667668 "level" : diff .level , # Ensure level is set correctly.
668669 "title" : song .title ,
670+ "dx_star" : dx_star ,
671+ "version" : diff .version ,
669672 "level_value" : diff .level_value ,
670- "level_dx_score" : max_dx_score ,
671- "dx_star" : MaimaiScores .calcuate_dx_star (score .dx_score , max_dx_score ),
672- "version" : Version .fromVersionNumber (diff .version ),
673+ "level_dx_score" : level_dx_score ,
673674 }
674675 )
675676 extended_scores .append (ScoreExtend (** extended_dict ))
0 commit comments