Апи для получения скоров на карте
This commit is contained in:
@ -1,6 +1,6 @@
|
|||||||
[project]
|
[project]
|
||||||
name = "osuclient"
|
name = "osuclient"
|
||||||
version = "0.5.5"
|
version = "0.6.0"
|
||||||
description = "Client for osu! API"
|
description = "Client for osu! API"
|
||||||
readme = "README.md"
|
readme = "README.md"
|
||||||
authors = [
|
authors = [
|
||||||
|
|||||||
@ -117,6 +117,40 @@ class osuAPIClient(AioHTTPXClient):
|
|||||||
self.logger.error(req.text)
|
self.logger.error(req.text)
|
||||||
raise s.Error(500, 'Internal Server Error')
|
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(
|
async def get_user(
|
||||||
self,
|
self,
|
||||||
access_token: str,
|
access_token: str,
|
||||||
|
|||||||
Reference in New Issue
Block a user