From 9617729a895b0ecf0f155d869d7186a88432b303 Mon Sep 17 00:00:00 2001 From: Miku AuahDark <lumi.hotaru@gmail.com> Date: Sat, 23 Nov 2024 19:09:57 +0800 Subject: [PATCH] Stub /ranking/player and /ranking/unit --- npps4/game/__init__.py | 1 + npps4/game/models.py | 2 ++ npps4/game/ranking.py | 69 +++++++++++++++++++++++++++++++++++++++++ npps4/system/ranking.py | 0 4 files changed, 72 insertions(+) create mode 100644 npps4/game/ranking.py create mode 100644 npps4/system/ranking.py diff --git a/npps4/game/__init__.py b/npps4/game/__init__.py index cbcbc40..43264be 100644 --- a/npps4/game/__init__.py +++ b/npps4/game/__init__.py @@ -32,6 +32,7 @@ from . import payment from . import personalnotice from . import profile + from . import ranking from . import reward from . import scenario from . import secretbox diff --git a/npps4/game/models.py b/npps4/game/models.py index 2b173a6..4c3e3c5 100644 --- a/npps4/game/models.py +++ b/npps4/game/models.py @@ -1,10 +1,12 @@ import pydantic + class UserData(pydantic.BaseModel): user_id: int name: str level: int + class CenterUnitInfo(pydantic.BaseModel): unit_id: int level: int diff --git a/npps4/game/ranking.py b/npps4/game/ranking.py new file mode 100644 index 0000000..b08b1e2 --- /dev/null +++ b/npps4/game/ranking.py @@ -0,0 +1,69 @@ +import pydantic + +from . import models +from .. import idol +from .. import util +from ..system import common +from ..system import reward +from ..system import user + + +class PageableMixin(pydantic.BaseModel): + page: int = 0 + + +class RankingLiveRequest(PageableMixin): + live_difficulty_id: int + + +class RankingPlayerRequest(PageableMixin): + id: int = 0 + term: int + daily_index: int + + +class RankingUserData(pydantic.BaseModel): + user_id: int + name: str + level: int + + +class RankingData(pydantic.BaseModel): + rank: int + score: int + user_data: models.UserData + center_unit_info: models.CenterUnitInfo + setting_award_id: int + + +class RankingResponse(common.TimestampMixin, PageableMixin): + rank: int | None + items: list[RankingData] + total_cnt: int + present_cnt: int + + +@idol.register("ranking", "live") +async def ranking_live(context: idol.SchoolIdolUserParams, request: RankingLiveRequest) -> RankingResponse: + current_user = await user.get_current(context) + util.stub("ranking", "live", request) + return RankingResponse( + page=request.page, + rank=None, + items=[], + total_cnt=0, + present_cnt=await reward.count_presentbox(context, current_user), + ) + + +@idol.register("ranking", "player") +async def ranking_player(context: idol.SchoolIdolUserParams, request: RankingPlayerRequest) -> RankingResponse: + current_user = await user.get_current(context) + util.stub("ranking", "player", request) + return RankingResponse( + page=request.page, + rank=None, + items=[], + total_cnt=0, + present_cnt=await reward.count_presentbox(context, current_user), + ) diff --git a/npps4/system/ranking.py b/npps4/system/ranking.py new file mode 100644 index 0000000..e69de29