StarRailDamageCal/starrail_damage_cal/mihomo/requests.py
2023-10-30 15:52:39 +08:00

28 lines
749 B
Python

from __future__ import annotations
from pathlib import Path
from httpx import AsyncClient
from msgspec import convert
from starrail_damage_cal.mihomo.models import MihomoData
_HEADER = {"User-Agent": "StarRailDamageCal/"}
async def get_char_card_info(
uid: str,
save_path: Path | None = None,
) -> MihomoData:
async with AsyncClient(
base_url="http://api.mihomo.me",
headers=_HEADER,
timeout=30,
) as client:
req = await client.get(f"/sr_info/{uid}")
if save_path:
save_path.mkdir(parents=True, exist_ok=True)
with Path.open(save_path / uid / f"{uid!s}.json", "w") as file:
file.write(req.text)
return convert(req.json(), type=MihomoData)