feat: FrequentlyRepliedUser モデルを追加

pull/110/head
yupix 10 months ago
parent bc844eb0e1
commit 403dea0760
No known key found for this signature in database
GPG Key ID: 2FF705F5C56D9C06

@ -13,6 +13,7 @@ from mipac.types.meta import IPolicies
from mipac.types.page import IPage
from mipac.types.user import (
EmailNotificationTypes,
GetFrequentlyRepliedUsersResponse,
IAchievement,
IBlockingUser,
IFfVisibility,
@ -518,3 +519,24 @@ def packed_user(user: IUser, client: ClientManager) -> UserDetailedNotMe | MeDet
if is_me_detailed(user):
return MeDetailed(user, client=client)
raise ValueError("Invalid user model")
class FrequentlyRepliedUser:
def __init__(
self,
raw_frequently_replied_user: GetFrequentlyRepliedUsersResponse,
*,
client: ClientManager,
):
self._raw_frequently_replied_user: GetFrequentlyRepliedUsersResponse = (
raw_frequently_replied_user
)
self.__client: ClientManager = client
@property
def user(self) -> UserDetailedNotMe | MeDetailed:
return packed_user(self._raw_frequently_replied_user["user"], client=self.__client)
@property
def weight(self) -> int:
return self._raw_frequently_replied_user["weight"]

@ -267,3 +267,15 @@ def is_user_detailed(user: IUser) -> TypeGuard[IUserDetailed]:
if is_user_detailed_not_me(user) or is_me_detailed(user):
return True
return False
####
## ここからモデルというよりレスポンス
####
class GetFrequentlyRepliedUsersResponse(TypedDict):
"""`users/get-frequently-replied-users` のレスポンス"""
user: IUserDetailed
weight: int

Loading…
Cancel
Save