Апи для получения скоров на карте
This commit is contained in:
@ -1,6 +1,6 @@
|
||||
[project]
|
||||
name = "osuclient"
|
||||
version = "0.5.5"
|
||||
version = "0.6.0"
|
||||
description = "Client for osu! API"
|
||||
readme = "README.md"
|
||||
authors = [
|
||||
|
||||
@ -117,6 +117,40 @@ class osuAPIClient(AioHTTPXClient):
|
||||
self.logger.error(req.text)
|
||||
raise s.Error(500, 'Internal Server Error')
|
||||
|
||||
async def get_user_beatmap_scores(
|
||||
self,
|
||||
access_token: str,
|
||||
beatmap_id: int,
|
||||
user_id: int,
|
||||
legacy_only: Literal[0, 1] = 0,
|
||||
ruleset: Literal['osu', 'taiko', 'fruits', 'mania'] | None = None,
|
||||
):
|
||||
req = await self.get(
|
||||
f'/beatmaps/{beatmap_id}/scores/users/{user_id}/all',
|
||||
params=self.clean_dict(
|
||||
{'legacy_only': legacy_only, 'ruleset': ruleset}
|
||||
),
|
||||
headers=self.clean_dict(
|
||||
{
|
||||
'Authorization': f'Bearer {access_token}',
|
||||
}
|
||||
),
|
||||
)
|
||||
|
||||
match req.status_code:
|
||||
case st.OK:
|
||||
return [s.Score.model_validate(score) for score in req.json()]
|
||||
|
||||
case st.NOT_FOUND:
|
||||
raise s.Error(req.status_code, 'Not Found')
|
||||
|
||||
case st.UNAUTHORIZED:
|
||||
raise s.Error(req.status_code, 'Unauthorized')
|
||||
|
||||
case _:
|
||||
self.logger.error(req.text)
|
||||
raise s.Error(500, 'Internal Server Error')
|
||||
|
||||
async def get_user(
|
||||
self,
|
||||
access_token: str,
|
||||
|
||||
Reference in New Issue
Block a user