feat(beatmapset): support search beatmapset
This commit is contained in:
@@ -1,7 +1,9 @@
|
||||
from __future__ import annotations
|
||||
|
||||
from app.database.beatmapset import BeatmapsetResp
|
||||
from app.database.beatmapset import BeatmapsetResp, SearchBeatmapsetsResp
|
||||
from app.log import logger
|
||||
from app.models.beatmap import SearchQueryModel
|
||||
from app.models.model import Cursor
|
||||
|
||||
from ._base import BaseFetcher
|
||||
|
||||
@@ -17,3 +19,23 @@ class BeatmapsetFetcher(BaseFetcher):
|
||||
f"https://osu.ppy.sh/api/v2/beatmapsets/{beatmap_set_id}"
|
||||
)
|
||||
)
|
||||
|
||||
async def search_beatmapset(
|
||||
self, query: SearchQueryModel, cursor: Cursor
|
||||
) -> SearchBeatmapsetsResp:
|
||||
logger.opt(colors=True).debug(
|
||||
f"<blue>[BeatmapsetFetcher]</blue> search_beatmapset: <y>{query}</y>"
|
||||
)
|
||||
|
||||
params = query.model_dump(
|
||||
exclude_none=True, exclude_unset=True, exclude_defaults=True
|
||||
)
|
||||
for k, v in cursor.items():
|
||||
params[f"cursor[{k}]"] = v
|
||||
resp = SearchBeatmapsetsResp.model_validate(
|
||||
await self.request_api(
|
||||
"https://osu.ppy.sh/api/v2/beatmapsets/search",
|
||||
params=params,
|
||||
)
|
||||
)
|
||||
return resp
|
||||
|
||||
Reference in New Issue
Block a user