feat: RolePoliciesを更新

pull/109/head
yupix 7 months ago
parent a612cf8472
commit 2f0f51ef52
No known key found for this signature in database
GPG Key ID: 2FF705F5C56D9C06

@ -5,7 +5,7 @@ from typing import TYPE_CHECKING
from mipac.models.lite.role import PartialRole
from mipac.models.user import MeDetailed, UserDetailedNotMe, packed_user
from mipac.types.roles import IMeRole, IRole, IRolePolicies, IRolePolicieValue, IRoleUser
from mipac.types.roles import IMeRole, IRole, IRolePolicies, IRoleUser
from mipac.utils.format import str_to_datetime
if TYPE_CHECKING:
@ -77,90 +77,105 @@ class MeRole:
return not self.__eq__(__value)
class RolePolicyValue:
def __init__(self, policiy_value_data: IRolePolicieValue) -> None:
self.__policy_value_data = policiy_value_data
class RolePolicies:
def __init__(self, role_policies_data: IRolePolicies) -> None:
self.__role_policies_data = role_policies_data
@property
def value(self) -> int:
return self.__policy_value_data.get("value")
def gtl_available(self) -> bool:
return self.__role_policies_data["gtl_available"]
@property
def use_default(self) -> bool:
return self.__policy_value_data.get("use_default")
def ltl_available(self) -> bool:
return self.__role_policies_data["ltl_available"]
@property
def priority(self) -> int | None:
return self.__policy_value_data.get("priority")
def can_public_note(self) -> bool:
return self.__role_policies_data["can_public_note"]
@property
def can_invite(self) -> bool:
return self.__role_policies_data["can_invite"]
class RolePolicies:
def __init__(self, role_policies_data: IRolePolicies) -> None:
self.__role_policies_data = role_policies_data
@property
def invite_limit(self) -> int:
return self.__role_policies_data["invite_limit"]
@property
def invite_limit_cycle(self) -> int:
return self.__role_policies_data["invite_limit_cycle"]
@property
def invite_expiration_time(self) -> int:
return self.__role_policies_data["invite_expiration_time"]
@property
def can_manage_custom_emojis(self) -> bool:
return self.__role_policies_data["can_manage_custom_emojis"]
@property
def antenna_limit(self) -> RolePolicyValue:
return RolePolicyValue(self.__role_policies_data["antenna_limit"])
def can_manage_avatar_decorations(self) -> bool:
return self.__role_policies_data["can_manage_avatar_decorations"]
@property
def gtl_available(self) -> RolePolicyValue:
return RolePolicyValue(self.__role_policies_data["gtl_available"])
def can_search_notes(self) -> bool:
return self.__role_policies_data["can_search_notes"]
@property
def ltl_available(self) -> RolePolicyValue:
return RolePolicyValue(self.__role_policies_data["ltl_available"])
def can_use_translator(self) -> bool:
return self.__role_policies_data["can_use_translator"]
@property
def can_public_note(self) -> RolePolicyValue:
return RolePolicyValue(self.__role_policies_data["can_public_note"])
def can_hide_ads(self) -> bool:
return self.__role_policies_data["can_hide_ads"]
@property
def drive_capacity_mb(self) -> RolePolicyValue:
return RolePolicyValue(self.__role_policies_data["drive_capacity_mb"])
def drive_capacity_mb(self) -> int:
return self.__role_policies_data["drive_capacity_mb"]
@property
def can_invite(self) -> RolePolicyValue:
return RolePolicyValue(self.__role_policies_data["can_invite"])
def always_mark_nfsw(self) -> bool:
return self.__role_policies_data["always_mark_nfsw"]
@property
def can_manage_custom_emojis(self) -> RolePolicyValue:
return RolePolicyValue(self.__role_policies_data["can_manage_custom_emojis"])
def pin_limit(self) -> int:
return self.__role_policies_data["pin_limit"]
@property
def can_hide_ads(self) -> RolePolicyValue:
return RolePolicyValue(self.__role_policies_data["can_hide_ads"])
def antenna_limit(self) -> int:
return self.__role_policies_data["antenna_limit"]
@property
def pin_limit(self) -> RolePolicyValue:
return RolePolicyValue(self.__role_policies_data["pin_limit"])
def word_mute_limit(self) -> int:
return self.__role_policies_data["word_mute_limit"]
@property
def word_mute_limit(self) -> RolePolicyValue:
return RolePolicyValue(self.__role_policies_data["word_mute_limit"])
def webhook_limit(self) -> int:
return self.__role_policies_data["webhook_limit"]
@property
def webhook_limit(self) -> RolePolicyValue:
return RolePolicyValue(self.__role_policies_data["webhook_limit"])
def clip_limit(self) -> int:
return self.__role_policies_data["clip_limit"]
@property
def clip_limit(self) -> RolePolicyValue:
return RolePolicyValue(self.__role_policies_data["clip_limit"])
def note_each_clips_limit(self) -> int:
return self.__role_policies_data["note_each_clips_limit"]
@property
def note_each_clips_limit(self) -> RolePolicyValue:
return RolePolicyValue(self.__role_policies_data["note_each_clips_limit"])
def user_list_limit(self) -> int:
return self.__role_policies_data["user_list_limit"]
@property
def user_list_limit(self) -> RolePolicyValue:
return RolePolicyValue(self.__role_policies_data["user_list_limit"])
def user_each_user_lists_limit(self) -> int:
return self.__role_policies_data["user_each_user_lists_limit"]
@property
def user_each_user_lists_limit(self) -> RolePolicyValue:
return RolePolicyValue(self.__role_policies_data["user_each_user_lists_limit"])
def rate_limit_factor(self) -> int:
return self.__role_policies_data["rate_limit_factor"]
@property
def rate_limit_factor(self) -> RolePolicyValue:
return RolePolicyValue(self.__role_policies_data["rate_limit_factor"])
def avatar_decoration_limit(self) -> int:
return self.__role_policies_data["avatar_decoration_limit"]
class Role(PartialRole[IRole]):

@ -17,30 +17,31 @@ class IMeRole(TypedDict):
user: IMeDetailedSchema
expires_at: str | None
class IRolePolicieValue(TypedDict):
value: int
use_default: bool
priority: NotRequired[int]
class IRolePolicies(TypedDict):
antenna_limit: IRolePolicieValue
gtl_available: IRolePolicieValue
ltl_available: IRolePolicieValue
can_public_note: IRolePolicieValue
drive_capacity_mb: IRolePolicieValue
can_invite: IRolePolicieValue
can_manage_custom_emojis: IRolePolicieValue
can_hide_ads: IRolePolicieValue
pin_limit: IRolePolicieValue
word_mute_limit: IRolePolicieValue
webhook_limit: IRolePolicieValue
clip_limit: IRolePolicieValue
note_each_clips_limit: IRolePolicieValue
user_list_limit: IRolePolicieValue
user_each_user_lists_limit: IRolePolicieValue
rate_limit_factor: IRolePolicieValue
gtl_available: bool
ltl_available: bool
can_public_note: bool
can_invite: bool
invite_limit: int
invite_limit_cycle: int
invite_expiration_time: int
can_manage_custom_emojis: bool
can_manage_avatar_decorations: bool
can_search_notes: bool
can_use_translator: bool
can_hide_ads: bool
drive_capacity_mb: int
always_mark_nfsw: bool
pin_limit: int
antenna_limit: int
word_mute_limit: int
webhook_limit: int
clip_limit: int
note_each_clips_limit: int
user_list_limit: int
user_each_user_lists_limit: int
rate_limit_factor: int
avatar_decoration_limit: int
class IPartialRole(TypedDict):

Loading…
Cancel
Save