mirror of
https://github.com/PaiGramTeam/StarRailDamageCal.git
synced 2024-11-27 18:04:08 +00:00
29 lines
773 B
Python
29 lines
773 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:
|
|
path = save_path / str(uid)
|
|
path.mkdir(parents=True, exist_ok=True)
|
|
with Path.open(path / f"{uid!s}.json", "w") as file:
|
|
file.write(req.text)
|
|
return convert(req.json(), type=MihomoData)
|