feat: modelに_getメソッドを追加

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

@ -1,7 +1,7 @@
from __future__ import annotations from __future__ import annotations
from datetime import datetime from datetime import datetime
from typing import TYPE_CHECKING from typing import TYPE_CHECKING, Any
from mipac.models.user import UserDetailedNotMe, packed_user from mipac.models.user import UserDetailedNotMe, packed_user
from mipac.types.admin import ( from mipac.types.admin import (
@ -32,6 +32,9 @@ class UserIP:
def created_at(self) -> datetime: def created_at(self) -> datetime:
return str_to_datetime(self.__user_ip["created_at"]) return str_to_datetime(self.__user_ip["created_at"])
def _get(self, key: str) -> Any | None:
return self.__user_ip.get(key)
def __eq__(self, __value: object) -> bool: def __eq__(self, __value: object) -> bool:
return isinstance(__value, UserIP) and self.ip == __value.ip return isinstance(__value, UserIP) and self.ip == __value.ip
@ -63,6 +66,9 @@ class IndexStat:
def indexdef(self) -> str: def indexdef(self) -> str:
return self.__index_stat["indexdef"] return self.__index_stat["indexdef"]
def _get(self, key: str) -> Any | None:
return self.__index_stat.get(key)
class ModerationLog: class ModerationLog:
def __init__(self, moderation_log: IModerationLog, *, client: ClientManager) -> None: def __init__(self, moderation_log: IModerationLog, *, client: ClientManager) -> None:
@ -93,6 +99,9 @@ class ModerationLog:
def user(self) -> UserDetailedNotMe: def user(self) -> UserDetailedNotMe:
return packed_user(self.__moderation_log["user"], client=self.__client) return packed_user(self.__moderation_log["user"], client=self.__client)
def _get(self, key: str) -> Any | None:
return self.__moderation_log.get(key)
def __eq__(self, __value: object) -> bool: def __eq__(self, __value: object) -> bool:
return isinstance(__value, ModerationLog) and self.id == __value.id return isinstance(__value, ModerationLog) and self.id == __value.id
@ -112,6 +121,9 @@ class ServerInfoCpu:
def cores(self) -> int: def cores(self) -> int:
return self.__server_info_cpu["cores"] return self.__server_info_cpu["cores"]
def _get(self, key: str) -> Any | None:
return self.__server_info_cpu.get(key)
class ServerInfoMem: class ServerInfoMem:
def __init__(self, server_info_mem: IServerInfoMem) -> None: def __init__(self, server_info_mem: IServerInfoMem) -> None:
@ -121,6 +133,9 @@ class ServerInfoMem:
def total(self) -> int: def total(self) -> int:
return self.__server_info_mem["total"] return self.__server_info_mem["total"]
def _get(self, key: str) -> Any | None:
return self.__server_info_mem.get(key)
class ServerInfoFs: class ServerInfoFs:
def __init__(self, server_info_fs: IServerInfoFs) -> None: def __init__(self, server_info_fs: IServerInfoFs) -> None:
@ -134,6 +149,9 @@ class ServerInfoFs:
def used(self) -> int: def used(self) -> int:
return self.__server_info_fs["used"] return self.__server_info_fs["used"]
def _get(self, key: str) -> Any | None:
return self.__server_info_fs.get(key)
class ServerInfoNet: class ServerInfoNet:
def __init__(self, server_info_net: IServerInfoNet) -> None: def __init__(self, server_info_net: IServerInfoNet) -> None:
@ -143,6 +161,9 @@ class ServerInfoNet:
def interface(self) -> str: def interface(self) -> str:
return self.__server_info_net["interface"] return self.__server_info_net["interface"]
def _get(self, key: str) -> Any | None:
return self.__server_info_net.get(key)
class ServerInfo: class ServerInfo:
def __init__(self, server_info: IServerInfo) -> None: def __init__(self, server_info: IServerInfo) -> None:
@ -179,3 +200,6 @@ class ServerInfo:
@property @property
def net(self) -> ServerInfoNet: def net(self) -> ServerInfoNet:
return ServerInfoNet(self.__server_info["net"]) return ServerInfoNet(self.__server_info["net"])
def _get(self, key: str) -> Any | None:
return self.__server_info.get(key)

@ -1,7 +1,7 @@
from __future__ import annotations from __future__ import annotations
from datetime import datetime from datetime import datetime
from typing import TYPE_CHECKING from typing import TYPE_CHECKING, Any
from mipac.types.announcement import ( from mipac.types.announcement import (
AnnoucementDisplay, AnnoucementDisplay,
@ -80,9 +80,12 @@ class Announcement:
return not self.__eq__(__value) return not self.__eq__(__value)
@property @property
def action(self) -> ClientAdminAnnouncementManager: def api(self) -> ClientAdminAnnouncementManager:
return self.__client.admin._create_client_announcement_manager(announce_id=self.id) return self.__client.admin._create_client_announcement_manager(announce_id=self.id)
def _get(self, key: str) -> Any | None:
return self.__announcement.get(key)
class AnnouncementDetailed: class AnnouncementDetailed:
def __init__(self, raw_announcement: IAnnouncementDetailed, *, client: ClientManager) -> None: def __init__(self, raw_announcement: IAnnouncementDetailed, *, client: ClientManager) -> None:
@ -157,5 +160,8 @@ class AnnouncementDetailed:
return not self.__eq__(__value) return not self.__eq__(__value)
@property @property
def action(self) -> ClientAdminAnnouncementManager: def api(self) -> ClientAdminAnnouncementManager:
return self.__client.admin._create_client_announcement_manager(announce_id=self.id) return self.__client.admin._create_client_announcement_manager(announce_id=self.id)
def _get(self, key: str) -> Any | None:
return self.__raw_announcement.get(key)

@ -1,7 +1,7 @@
from __future__ import annotations from __future__ import annotations
from datetime import datetime from datetime import datetime
from typing import TYPE_CHECKING from typing import TYPE_CHECKING, Any
from mipac.types.antenna import IAntenna, IAntennaReceiveSource from mipac.types.antenna import IAntenna, IAntennaReceiveSource
from mipac.utils.format import str_to_datetime from mipac.utils.format import str_to_datetime
@ -80,6 +80,9 @@ class Antenna:
def api(self) -> ClientAntennaManager: def api(self) -> ClientAntennaManager:
return self.__client.antenna._create_client_antenna_manager(antenna_id=self.id) return self.__client.antenna._create_client_antenna_manager(antenna_id=self.id)
def _get(self, key: str) -> Any | None:
return self.__antenna.get(key)
def __eq__(self, __value: object) -> bool: def __eq__(self, __value: object) -> bool:
return isinstance(__value, Antenna) and self.id == __value.id return isinstance(__value, Antenna) and self.id == __value.id

@ -61,9 +61,6 @@ class Blocking:
""" """
return packed_user(self.__raw_blocking["blockee"], client=self.__client) return packed_user(self.__raw_blocking["blockee"], client=self.__client)
def _get(self, key: str) -> Any | None:
return self.__raw_blocking.get(key)
@property @property
def api(self) -> ClientBlockingManager: def api(self) -> ClientBlockingManager:
"""ブロック対象に対するAPIを利用するためのManager """ブロック対象に対するAPIを利用するためのManager
@ -75,6 +72,9 @@ class Blocking:
""" """
return self.__client.user._create_client_blocking_manager(user_id=self.blockee.id) return self.__client.user._create_client_blocking_manager(user_id=self.blockee.id)
def _get(self, key: str) -> Any | None:
return self.__raw_blocking.get(key)
def __eq__(self, __value: object) -> bool: def __eq__(self, __value: object) -> bool:
return isinstance(__value, Blocking) and self.id == __value.id return isinstance(__value, Blocking) and self.id == __value.id

@ -1,7 +1,7 @@
from __future__ import annotations from __future__ import annotations
from datetime import datetime from datetime import datetime
from typing import TYPE_CHECKING from typing import TYPE_CHECKING, Any
from mipac.models.note import Note from mipac.models.note import Note
from mipac.types.channel import IChannel from mipac.types.channel import IChannel
@ -200,6 +200,9 @@ class Channel:
""" """
return self.__client._create_client_channel_manager(channel_id=self.id) return self.__client._create_client_channel_manager(channel_id=self.id)
def _get(self, key: str) -> Any | None:
return self._raw_channel.get(key)
def __eq__(self, __value: object) -> bool: def __eq__(self, __value: object) -> bool:
return isinstance(__value, Channel) and self.id == __value.id return isinstance(__value, Channel) and self.id == __value.id

@ -1,3 +1,4 @@
from typing import Any
from mipac.types.chart import IActiveUsersChart, IDriveChart, IDriveLocalChart, IDriveRemoteChart from mipac.types.chart import IActiveUsersChart, IDriveChart, IDriveLocalChart, IDriveRemoteChart
@ -43,6 +44,9 @@ class ActiveUsersChart:
def registered_outside_year(self) -> list[int]: def registered_outside_year(self) -> list[int]:
return self.__data["registered_outside_year"] return self.__data["registered_outside_year"]
def _get(self, key: str) -> Any | None:
return self.__data.get(key)
class DriveLocalChart: class DriveLocalChart:
__slots__ = ("__data",) __slots__ = ("__data",)
@ -74,6 +78,9 @@ class DriveLocalChart:
def dec_size(self) -> list[int]: def dec_size(self) -> list[int]:
return self.__data["dec_size"] return self.__data["dec_size"]
def _get(self, key: str) -> Any | None:
return self.__data.get(key)
class DriveRemoteChart: class DriveRemoteChart:
__slots__ = ("__data",) __slots__ = ("__data",)
@ -105,6 +112,9 @@ class DriveRemoteChart:
def dec_size(self) -> list[int]: def dec_size(self) -> list[int]:
return self.__data["dec_size"] return self.__data["dec_size"]
def _get(self, key: str) -> Any | None:
return self.__data.get(key)
class DriveChart: class DriveChart:
__slots__ = ("__data",) __slots__ = ("__data",)
@ -119,3 +129,6 @@ class DriveChart:
@property @property
def remote(self) -> DriveRemoteChart: def remote(self) -> DriveRemoteChart:
return DriveRemoteChart(self.__data["remote"]) return DriveRemoteChart(self.__data["remote"])
def _get(self, key: str) -> Any | None:
return self.__data.get(key)

@ -1,6 +1,6 @@
from __future__ import annotations from __future__ import annotations
from typing import TYPE_CHECKING from typing import TYPE_CHECKING, Any
from mipac.models.lite.user import PartialUser from mipac.models.lite.user import PartialUser
from mipac.types.clip import IClip from mipac.types.clip import IClip
@ -68,3 +68,6 @@ class Clip:
@property @property
def api(self) -> ClientClipManager: def api(self) -> ClientClipManager:
return self.__client._get_client_clip_instance(clip_id=self.id) return self.__client._get_client_clip_instance(clip_id=self.id)
def _get(self, key: str) -> Any | None:
return self.__clip.get(key)

@ -1,6 +1,6 @@
from __future__ import annotations from __future__ import annotations
from typing import TYPE_CHECKING from typing import TYPE_CHECKING, Any
from mipac.models.lite.emoji import PartialCustomEmoji from mipac.models.lite.emoji import PartialCustomEmoji
from mipac.types.emoji import ICustomEmoji, IEmojiDetailed, IEmojiSimple from mipac.types.emoji import ICustomEmoji, IEmojiDetailed, IEmojiSimple
@ -76,6 +76,9 @@ class EmojiSimple:
def role_ids_that_can_be_used_this_emoji_as_reaction(self) -> list[str]: def role_ids_that_can_be_used_this_emoji_as_reaction(self) -> list[str]:
return self.__raw_emoji_simple.get("role_ids_that_can_be_used_this_emoji_as_reaction", []) return self.__raw_emoji_simple.get("role_ids_that_can_be_used_this_emoji_as_reaction", [])
def _get(self, key: str) -> Any | None:
return self.__raw_emoji_simple.get(key)
def __eq__(self, __value: object) -> bool: def __eq__(self, __value: object) -> bool:
return isinstance(__value, EmojiSimple) and self.name == __value.name return isinstance(__value, EmojiSimple) and self.name == __value.name
@ -124,6 +127,9 @@ class EmojiDetailed:
def role_ids_that_can_be_used_this_emoji_as_reaction(self) -> list[str]: def role_ids_that_can_be_used_this_emoji_as_reaction(self) -> list[str]:
return self.__raw_emoji_detailed["role_ids_that_can_be_used_this_emoji_as_reaction"] return self.__raw_emoji_detailed["role_ids_that_can_be_used_this_emoji_as_reaction"]
def _get(self, key: str) -> Any | None:
return self.__raw_emoji_detailed.get(key)
def __eq__(self, __value: object) -> bool: def __eq__(self, __value: object) -> bool:
return isinstance(__value, EmojiDetailed) and self.id == __value.id return isinstance(__value, EmojiDetailed) and self.id == __value.id

@ -1,6 +1,6 @@
from __future__ import annotations from __future__ import annotations
from typing import TYPE_CHECKING from typing import TYPE_CHECKING, Any
from mipac.models.lite.user import PartialUser from mipac.models.lite.user import PartialUser
from mipac.types.follow import IFollowRequest from mipac.types.follow import IFollowRequest
@ -31,6 +31,9 @@ class FollowRequest:
def api(self) -> FollowRequestManager: def api(self) -> FollowRequestManager:
return self.__client._create_user_instance(user=self.follower).follow.request return self.__client._create_user_instance(user=self.follower).follow.request
def _get(self, key: str) -> Any | None:
return self.__follow_request.get(key)
def __eq__(self, __value: object) -> bool: def __eq__(self, __value: object) -> bool:
return isinstance(__value, FollowRequest) and self.id == __value.id return isinstance(__value, FollowRequest) and self.id == __value.id

@ -1,7 +1,7 @@
from __future__ import annotations from __future__ import annotations
from datetime import datetime from datetime import datetime
from typing import TYPE_CHECKING from typing import TYPE_CHECKING, Any
from mipac.models.drive import File from mipac.models.drive import File
from mipac.models.lite.user import PartialUser from mipac.models.lite.user import PartialUser
@ -68,3 +68,6 @@ class GalleryPost:
@property @property
def is_liked(self) -> bool | None: def is_liked(self) -> bool | None:
return self._raw_gallery.get("is_liked") return self._raw_gallery.get("is_liked")
def _get(self, key: str) -> Any | None:
return self._raw_gallery.get(key)

@ -1,6 +1,6 @@
from __future__ import annotations from __future__ import annotations
from typing import TYPE_CHECKING from typing import TYPE_CHECKING, Any
from mipac.types.instance import IFederationInstance from mipac.types.instance import IFederationInstance
@ -109,6 +109,9 @@ class FederationInstance:
def last_communicated_at(self) -> str | None: def last_communicated_at(self) -> str | None:
return self.__instance.get("last_communicated_at") return self.__instance.get("last_communicated_at")
def _get(self, key: str) -> Any | None:
return self.__instance.get(key)
def __eq__(self, __value: object) -> bool: def __eq__(self, __value: object) -> bool:
return isinstance(__value, FederationInstance) and self.id == __value.id return isinstance(__value, FederationInstance) and self.id == __value.id

@ -1,7 +1,7 @@
from __future__ import annotations from __future__ import annotations
from datetime import datetime from datetime import datetime
from typing import TYPE_CHECKING from typing import TYPE_CHECKING, Any
from mipac.models.lite.user import PartialUser from mipac.models.lite.user import PartialUser
from mipac.types.invite import IInviteCode, IInviteLimit from mipac.types.invite import IInviteCode, IInviteLimit
@ -73,6 +73,9 @@ class InviteCode:
def api(self) -> ClientInviteManager: def api(self) -> ClientInviteManager:
return self.__client._create_client_invite_manager(invite_id=self.id) return self.__client._create_client_invite_manager(invite_id=self.id)
def _get(self, key: str) -> Any | None:
return self.__raw_invite_code.get(key)
class InviteLimit: class InviteLimit:
def __init__(self, raw_invite_limit: IInviteLimit, *, client: ClientManager) -> None: def __init__(self, raw_invite_limit: IInviteLimit, *, client: ClientManager) -> None:
@ -82,3 +85,6 @@ class InviteLimit:
@property @property
def remaining(self) -> int | None: def remaining(self) -> int | None:
return self.__raw_invite_limit["remaining"] return self.__raw_invite_limit["remaining"]
def _get(self, key: str) -> Any | None:
return self.__raw_invite_limit.get(key)

@ -41,6 +41,10 @@ class PartialAd[T: IPartialAd]:
def day_of_week(self) -> int: def day_of_week(self) -> int:
return self._raw_ad["day_of_week"] return self._raw_ad["day_of_week"]
@property
def api(self) -> ClientAdminAdManager:
return self._client.admin._create_client_ad_manager(ad_id=self.id)
def _get(self, key: str) -> Any | None: def _get(self, key: str) -> Any | None:
"""You can access the raw response data directly by specifying the key """You can access the raw response data directly by specifying the key
@ -52,10 +56,6 @@ class PartialAd[T: IPartialAd]:
""" """
return self._raw_ad.get(key) return self._raw_ad.get(key)
@property
def api(self) -> ClientAdminAdManager:
return self._client.admin._create_client_ad_manager(ad_id=self.id)
def __eq__(self, __value: object) -> bool: def __eq__(self, __value: object) -> bool:
return isinstance(__value, PartialAd) and self.id == __value.id return isinstance(__value, PartialAd) and self.id == __value.id

@ -1,6 +1,6 @@
from __future__ import annotations from __future__ import annotations
from typing import TYPE_CHECKING from typing import TYPE_CHECKING, Any
from mipac.config import config from mipac.config import config
from mipac.types.emoji import ICustomEmojiLite from mipac.types.emoji import ICustomEmojiLite
@ -23,3 +23,6 @@ class PartialCustomEmoji:
protocol = "https" if config.is_ssl else "http" protocol = "https" if config.is_ssl else "http"
url = f"{protocol}://{config.host}/emoji/{self.name}.webp" url = f"{protocol}://{config.host}/emoji/{self.name}.webp"
return url return url
def _get(self, key: str) -> Any | None:
return self.__emoji.get(key)

@ -1,4 +1,5 @@
from __future__ import annotations from __future__ import annotations
from typing import Any
from mipac.types.instance import IInstanceLite from mipac.types.instance import IInstanceLite
@ -30,3 +31,6 @@ class LiteInstance:
@property @property
def theme_color(self) -> str | None: def theme_color(self) -> str | None:
return self.__instance["theme_color"] return self.__instance["theme_color"]
def _get(self, key: str) -> Any | None:
return self.__instance.get(key)

@ -1,6 +1,6 @@
from __future__ import annotations from __future__ import annotations
from typing import TYPE_CHECKING from typing import TYPE_CHECKING, Any
from mipac.models.lite.ad import PartialAd from mipac.models.lite.ad import PartialAd
from mipac.types.meta import IPartialMeta, IPolicies from mipac.types.meta import IPartialMeta, IPolicies
@ -114,6 +114,9 @@ class Policies:
def rate_limit_factor(self) -> int: def rate_limit_factor(self) -> int:
return self.__raw_policies["rate_limit_factor"] return self.__raw_policies["rate_limit_factor"]
def _get(self, key: str) -> Any | None:
return self.__raw_policies.get(key)
class PartialMeta[T: IPartialMeta]: class PartialMeta[T: IPartialMeta]:
def __init__(self, raw_meta: T, *, client: ClientManager) -> None: def __init__(self, raw_meta: T, *, client: ClientManager) -> None:
@ -275,3 +278,6 @@ class PartialMeta[T: IPartialMeta]:
@property @property
def media_proxy(self) -> str: def media_proxy(self) -> str:
return self._raw_meta["media_proxy"] return self._raw_meta["media_proxy"]
def _get(self, key: str) -> Any | None:
return self._raw_meta.get(key)

@ -1,6 +1,6 @@
from __future__ import annotations from __future__ import annotations
from typing import TYPE_CHECKING from typing import TYPE_CHECKING, Any
from mipac.types.roles import IPartialRole from mipac.types.roles import IPartialRole
@ -50,6 +50,9 @@ class PartialRole[T: IPartialRole]:
def api(self) -> AdminRolesModelManager: def api(self) -> AdminRolesModelManager:
return self.__client.admin.create_roles_model_manager(self.id) return self.__client.admin.create_roles_model_manager(self.id)
def _get(self, key: str) -> Any | None:
return self._raw_role.get(key)
def __eq__(self, __value: object) -> bool: def __eq__(self, __value: object) -> bool:
return isinstance(__value, PartialRole) and self.id == __value.id return isinstance(__value, PartialRole) and self.id == __value.id

@ -1,6 +1,6 @@
from __future__ import annotations from __future__ import annotations
from typing import TYPE_CHECKING from typing import TYPE_CHECKING, Any
from mipac.models.lite.instance import LiteInstance from mipac.models.lite.instance import LiteInstance
from mipac.types.user import IAvatarDecoration, IBadgeRole, IPartialUser, IUserOnlineStatus from mipac.types.user import IAvatarDecoration, IBadgeRole, IPartialUser, IUserOnlineStatus
@ -297,6 +297,9 @@ class PartialUser[PU: IPartialUser]:
""" """
return self._client._create_client_user_manager(self) return self._client._create_client_user_manager(self)
def _get(self, key: str) -> Any | None:
return self._raw_user.get(key)
def __eq__(self, __value: object) -> bool: def __eq__(self, __value: object) -> bool:
return isinstance(__value, PartialUser) and self.id == __value.id return isinstance(__value, PartialUser) and self.id == __value.id

@ -1,6 +1,6 @@
from __future__ import annotations from __future__ import annotations
from typing import TYPE_CHECKING from typing import TYPE_CHECKING, Any
from mipac.models.lite.meta import PartialMeta from mipac.models.lite.meta import PartialMeta
from mipac.types.meta import ( from mipac.types.meta import (
@ -51,6 +51,9 @@ class Features:
def miauth(self) -> bool: def miauth(self) -> bool:
return self.__raw_features["miauth"] return self.__raw_features["miauth"]
def _get(self, key: str) -> Any | None:
return self.__raw_features.get(key)
class Meta(PartialMeta[IMeta]): class Meta(PartialMeta[IMeta]):
def __init__(self, instance_metadata: IMeta, *, client: ClientManager) -> None: def __init__(self, instance_metadata: IMeta, *, client: ClientManager) -> None:
@ -333,3 +336,6 @@ class AdminMeta:
@property @property
def object_storage_endpoint(self) -> str: def object_storage_endpoint(self) -> str:
return self.__raw_meta["object_storage_endpoint"] return self.__raw_meta["object_storage_endpoint"]
def _get(self, key: str) -> Any | None:
return self.__raw_meta.get(key)

@ -1,7 +1,7 @@
from __future__ import annotations from __future__ import annotations
from datetime import datetime from datetime import datetime
from typing import TYPE_CHECKING from typing import TYPE_CHECKING, Any
from mipac.models.user import UserDetailedNotMe from mipac.models.user import UserDetailedNotMe
from mipac.types.mute import IMutedUser from mipac.types.mute import IMutedUser
@ -40,6 +40,9 @@ class MutedUser:
def mutee(self) -> UserDetailedNotMe: def mutee(self) -> UserDetailedNotMe:
return UserDetailedNotMe(self.__raw_mute_user["mutee"], client=self.__client) return UserDetailedNotMe(self.__raw_mute_user["mutee"], client=self.__client)
def _get(self, key: str) -> Any | None:
return self.__raw_mute_user.get(key)
def __eq__(self, __value: object) -> bool: def __eq__(self, __value: object) -> bool:
return isinstance(__value, MutedUser) and self.id == __value.id return isinstance(__value, MutedUser) and self.id == __value.id

@ -28,7 +28,6 @@ if TYPE_CHECKING:
__all__ = ( __all__ = (
"NoteState", "NoteState",
"Note", "Note",
"Header",
"NoteReaction", "NoteReaction",
"NoteDeleted", "NoteDeleted",
"NoteTranslateResult", "NoteTranslateResult",
@ -47,6 +46,9 @@ class NoteState:
def is_muted_thread(self) -> bool: def is_muted_thread(self) -> bool:
return self.__data["is_muted_thread"] return self.__data["is_muted_thread"]
def _get(self, key: str) -> Any | None:
return self.__data.get(key)
class NoteDeleted: class NoteDeleted:
def __init__(self, data: INoteUpdated[INoteUpdatedDelete]) -> None: def __init__(self, data: INoteUpdated[INoteUpdatedDelete]) -> None:
@ -60,6 +62,9 @@ class NoteDeleted:
def deleted_at(self) -> datetime: def deleted_at(self) -> datetime:
return str_to_datetime(self.__data["body"]["body"]["deleted_at"]) return str_to_datetime(self.__data["body"]["body"]["deleted_at"])
def _get(self, key: str) -> Any | None:
return self.__data.get(key)
def __eq__(self, __value: object) -> bool: def __eq__(self, __value: object) -> bool:
return isinstance(__value, NoteDeleted) and self.note_id == __value.note_id return isinstance(__value, NoteDeleted) and self.note_id == __value.note_id
@ -67,12 +72,6 @@ class NoteDeleted:
return not self.__eq__(__value) return not self.__eq__(__value)
class Header:
def __init__(self, data):
self.id = data.get("id")
self.type = data.get("type")
class NoteReaction: class NoteReaction:
__slots__ = ("__reaction", "__client") __slots__ = ("__reaction", "__client")
@ -128,6 +127,9 @@ class NoteReaction:
""" """
return self.__reaction["type"] return self.__reaction["type"]
def _get(self, key: str) -> Any | None:
return self.__reaction.get(key)
def __eq__(self, __value: object) -> bool: def __eq__(self, __value: object) -> bool:
return isinstance(__value, NoteReaction) and self.id == __value.id return isinstance(__value, NoteReaction) and self.id == __value.id
@ -206,6 +208,9 @@ class NoteChannel:
""" """
return self.__raw_note_channel["user_id"] return self.__raw_note_channel["user_id"]
def _get(self, key: str) -> Any | None:
return self.__raw_note_channel.get(key)
class Note: class Note:
"""Noteモデル """Noteモデル
@ -675,3 +680,6 @@ class NoteTranslateResult:
@property @property
def text(self) -> str: def text(self) -> str:
return self.__translate_result["text"] return self.__translate_result["text"]
def _get(self, key: str) -> Any | None:
return self.__translate_result.get(key)

@ -1,7 +1,7 @@
from __future__ import annotations from __future__ import annotations
from datetime import datetime from datetime import datetime
from typing import TYPE_CHECKING from typing import TYPE_CHECKING, Any
from mipac.models.lite.user import PartialUser from mipac.models.lite.user import PartialUser
from mipac.models.note import Note from mipac.models.note import Note
@ -45,6 +45,9 @@ class Notification:
def is_read(self) -> bool: def is_read(self) -> bool:
return self.__notification["is_read"] return self.__notification["is_read"]
def _get(self, key: str) -> Any | None:
return self.__notification.get(key)
def __eq__(self, __value: object) -> bool: def __eq__(self, __value: object) -> bool:
return isinstance(__value, Notification) and self.id == __value.id return isinstance(__value, Notification) and self.id == __value.id

@ -1,7 +1,7 @@
from __future__ import annotations from __future__ import annotations
from datetime import datetime from datetime import datetime
from typing import TYPE_CHECKING from typing import TYPE_CHECKING, Any
from mipac.types.poll import ICreatePoll, IPoll, IPollChoice from mipac.types.poll import ICreatePoll, IPoll, IPollChoice
from mipac.utils.format import str_to_datetime from mipac.utils.format import str_to_datetime
@ -35,6 +35,9 @@ class PollChoice:
def votes(self) -> int: def votes(self) -> int:
return self.__choice["votes"] return self.__choice["votes"]
def _get(self, key: str) -> Any | None:
return self.__choice.get(key)
class Poll: class Poll:
def __init__(self, poll: IPoll, *, client: ClientManager): def __init__(self, poll: IPoll, *, client: ClientManager):
@ -52,3 +55,6 @@ class Poll:
@property @property
def choices(self) -> list[PollChoice]: def choices(self) -> list[PollChoice]:
return [PollChoice(i, client=self.__client) for i in self.__poll["choices"]] return [PollChoice(i, client=self.__client) for i in self.__poll["choices"]]
def _get(self, key: str) -> Any | None:
return self.__poll.get(key)

@ -1,6 +1,6 @@
from __future__ import annotations from __future__ import annotations
from typing import TYPE_CHECKING from typing import TYPE_CHECKING, Any
from mipac.models.lite.emoji import PartialCustomEmoji from mipac.models.lite.emoji import PartialCustomEmoji
from mipac.types.note import INoteUpdated, INoteUpdatedReaction from mipac.types.note import INoteUpdated, INoteUpdatedReaction
@ -27,3 +27,6 @@ class PartialReaction:
@property @property
def user_id(self) -> str: def user_id(self) -> str:
return self.__reaction["body"]["body"]["user_id"] return self.__reaction["body"]["body"]["user_id"]
def _get(self, key: str) -> Any | None:
return self.__reaction.get(key)

@ -1,7 +1,7 @@
from __future__ import annotations from __future__ import annotations
from datetime import datetime from datetime import datetime
from typing import TYPE_CHECKING from typing import TYPE_CHECKING, Any
from mipac.models.lite.role import PartialRole from mipac.models.lite.role import PartialRole
from mipac.models.user import MeDetailed, UserDetailedNotMe, packed_user from mipac.models.user import MeDetailed, UserDetailedNotMe, packed_user
@ -37,6 +37,9 @@ class RoleUser:
else None else None
) )
def _get(self, key: str) -> Any | None:
return self.__role_user.get(key)
def __eq__(self, __value: object) -> bool: def __eq__(self, __value: object) -> bool:
return isinstance(__value, RoleUser) and self.id == __value.id return isinstance(__value, RoleUser) and self.id == __value.id
@ -144,6 +147,9 @@ class RolePolicies:
def avatar_decoration_limit(self) -> int: def avatar_decoration_limit(self) -> int:
return self.__role_policies_data["avatar_decoration_limit"] return self.__role_policies_data["avatar_decoration_limit"]
def _get(self, key: str) -> Any | None:
return self.__role_policies_data.get(key)
class Role(PartialRole[IRole]): class Role(PartialRole[IRole]):
def __init__(self, role_data: IRole, *, client: ClientManager) -> None: def __init__(self, role_data: IRole, *, client: ClientManager) -> None:
@ -188,3 +194,6 @@ class Role(PartialRole[IRole]):
@property @property
def users_count(self) -> int: def users_count(self) -> int:
return self._raw_role["users_count"] return self._raw_role["users_count"]
def _get(self, key: str) -> Any | None:
return self._raw_role.get(key)

@ -1,7 +1,7 @@
from __future__ import annotations from __future__ import annotations
from datetime import datetime from datetime import datetime
from typing import TYPE_CHECKING from typing import TYPE_CHECKING, Any
from mipac.models.announcement import Announcement from mipac.models.announcement import Announcement
from mipac.models.lite.role import PartialRole from mipac.models.lite.role import PartialRole
@ -73,6 +73,9 @@ class FollowCommon[FFC: IFederationFollowCommon]:
raw_followee = self._raw_follow.get("followee") raw_followee = self._raw_follow.get("followee")
return packed_user(raw_followee, client=self._client) if raw_followee else None return packed_user(raw_followee, client=self._client) if raw_followee else None
def _get(self, key: str) -> Any | None:
return self._raw_follow.get(key)
class Follower(FollowCommon[IFederationFollower]): class Follower(FollowCommon[IFederationFollower]):
def __init__(self, raw_follow: IFederationFollower, *, client: ClientManager) -> None: def __init__(self, raw_follow: IFederationFollower, *, client: ClientManager) -> None:
@ -96,6 +99,9 @@ class Achievement:
def unlocked_at(self) -> int: def unlocked_at(self) -> int:
return self.__detail["unlocked_at"] return self.__detail["unlocked_at"]
def _get(self, key: str) -> Any | None:
return self.__detail.get(key)
class UserField: class UserField:
def __init__(self, raw_user_field: IUserField, *, client: ClientManager) -> None: def __init__(self, raw_user_field: IUserField, *, client: ClientManager) -> None:
@ -110,6 +116,9 @@ class UserField:
def value(self) -> str: def value(self) -> str:
return self._raw_user_field["value"] return self._raw_user_field["value"]
def _get(self, key: str) -> Any | None:
return self._raw_user_field.get(key)
@DeprecatedClass(remove_in_version="0.7.0") @DeprecatedClass(remove_in_version="0.7.0")
class UserRole(BadgeRole[IUserRole]): class UserRole(BadgeRole[IUserRole]):
@ -524,6 +533,9 @@ class UserList:
def api(self) -> ClientUserListManager: def api(self) -> ClientUserListManager:
return self.__client.user._create_client_user_list_manager(self.id) return self.__client.user._create_client_user_list_manager(self.id)
def _get(self, key: str) -> Any | None:
return self._raw_user_list.get(key)
class UserListMembership: class UserListMembership:
def __init__( def __init__(
@ -552,6 +564,9 @@ class UserListMembership:
def with_replies(self) -> bool: def with_replies(self) -> bool:
return self.__raw_user_list_membership["with_replies"] return self.__raw_user_list_membership["with_replies"]
def _get(self, key: str) -> Any | None:
return self.__raw_user_list_membership.get(key)
class FrequentlyRepliedUser: class FrequentlyRepliedUser:
def __init__( def __init__(
@ -572,3 +587,6 @@ class FrequentlyRepliedUser:
@property @property
def weight(self) -> int: def weight(self) -> int:
return self._raw_frequently_replied_user["weight"] return self._raw_frequently_replied_user["weight"]
def _get(self, key: str) -> Any | None:
return self._raw_frequently_replied_user.get(key)

@ -1,3 +1,4 @@
from typing import Any
from mipac.types.username import IUsernameAvailable from mipac.types.username import IUsernameAvailable
@ -8,3 +9,6 @@ class UsernameAvailable:
@property @property
def available(self) -> bool: def available(self) -> bool:
return self.__raw_username_available["available"] return self.__raw_username_available["available"]
def _get(self, key: str) -> Any | None:
return self.__raw_username_available.get(key)

Loading…
Cancel
Save