fix: handle missing music

This commit is contained in:
mokurin000
2025-08-04 13:44:51 +08:00
parent b9e4b36053
commit 2a48f2a2ce
2 changed files with 6 additions and 2 deletions

View File

@@ -7,6 +7,7 @@ import polars as pl
import orjson as json
import pyecharts.options as opts
from pyecharts.charts import Scatter
from loguru import logger
from helpers import query_music_db, find_level, dx_rating
@@ -17,15 +18,17 @@ def calculate_dxrating(music: dict):
level_id = music["level"]
ach = music["achievement"]
music_info = query_music_db(music_id)
if not music_info:
logger.error(f"music: {music_id} not found")
return music | {"dxRating": 0}
level = find_level(music_info, level_id)
try:
return music | {"dxRating": dx_rating(Decimal(level.pop()["difficulty"]), ach)}
except IndexError as _:
print(f"unknown level: {music_id} - {level_id}", file=stderr)
logger.warning(f"unknown level: {music_id} - {level_id}", file=stderr)
return music | {"dxRating": 0}
data = json.loads(stdin.buffer.read())
user_id = data["userId"]
music_list: list[dict[str, dict]] = data["userMusicList"]