fix: handle missing music
This commit is contained in:
@@ -5,6 +5,7 @@ description = "Add your description here"
|
|||||||
readme = "README.md"
|
readme = "README.md"
|
||||||
requires-python = ">=3.12"
|
requires-python = ">=3.12"
|
||||||
dependencies = [
|
dependencies = [
|
||||||
|
"loguru>=0.7.3",
|
||||||
"orjson>=3.11.1",
|
"orjson>=3.11.1",
|
||||||
"polars>=1.32.0",
|
"polars>=1.32.0",
|
||||||
"pyecharts>=2.0.8",
|
"pyecharts>=2.0.8",
|
||||||
|
|||||||
@@ -7,6 +7,7 @@ import polars as pl
|
|||||||
import orjson as json
|
import orjson as json
|
||||||
import pyecharts.options as opts
|
import pyecharts.options as opts
|
||||||
from pyecharts.charts import Scatter
|
from pyecharts.charts import Scatter
|
||||||
|
from loguru import logger
|
||||||
|
|
||||||
|
|
||||||
from helpers import query_music_db, find_level, dx_rating
|
from helpers import query_music_db, find_level, dx_rating
|
||||||
@@ -17,15 +18,17 @@ def calculate_dxrating(music: dict):
|
|||||||
level_id = music["level"]
|
level_id = music["level"]
|
||||||
ach = music["achievement"]
|
ach = music["achievement"]
|
||||||
music_info = query_music_db(music_id)
|
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)
|
level = find_level(music_info, level_id)
|
||||||
|
|
||||||
try:
|
try:
|
||||||
return music | {"dxRating": dx_rating(Decimal(level.pop()["difficulty"]), ach)}
|
return music | {"dxRating": dx_rating(Decimal(level.pop()["difficulty"]), ach)}
|
||||||
except IndexError as _:
|
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}
|
return music | {"dxRating": 0}
|
||||||
|
|
||||||
|
|
||||||
data = json.loads(stdin.buffer.read())
|
data = json.loads(stdin.buffer.read())
|
||||||
user_id = data["userId"]
|
user_id = data["userId"]
|
||||||
music_list: list[dict[str, dict]] = data["userMusicList"]
|
music_list: list[dict[str, dict]] = data["userMusicList"]
|
||||||
|
|||||||
Reference in New Issue
Block a user