feat: NoteReaction クラスを大幅に変更

pull/11/head
yupix 2 years ago
parent 86ddc2f684
commit 4cf23493ff
No known key found for this signature in database
GPG Key ID: 2FF705F5C56D9C06

@ -1,26 +1,21 @@
from __future__ import annotations from __future__ import annotations
from datetime import datetime from datetime import datetime
from typing import TYPE_CHECKING, Any, Literal, Optional, Union from typing import TYPE_CHECKING, Literal, Optional, Union
from typing_extensions import Self from typing_extensions import Self
from mipac.core.models.note import RawNote, RawReaction, RawRenote from mipac.core.models.note import RawReaction, RawRenote
from mipac.core.models.poll import RawPoll from mipac.core.models.poll import RawPoll
from mipac.core.models.reaction import RawNoteReaction
from mipac.core.models.user import RawUser
from mipac.exception import NotExistRequiredData from mipac.exception import NotExistRequiredData
from mipac.models.lite.user import UserLite from mipac.models.lite.user import UserLite
from mipac.types.drive import IDriveFile from mipac.types.drive import IDriveFile
from mipac.types.emoji import ICustomEmojiLite from mipac.types.emoji import ICustomEmojiLite
from mipac.types.note import INote, IPoll from mipac.types.note import INote, INoteReaction, IPoll
if TYPE_CHECKING: if TYPE_CHECKING:
from mipac.actions.note import NoteActions from mipac.actions.note import NoteActions
from mipac.manager.client import ClientActions from mipac.manager.client import ClientActions
from mipac.manager.file import MiFile
from mipac.manager.reaction import ReactionManager from mipac.manager.reaction import ReactionManager
from mipac.models.drive import File
from mipac.models.emoji import Emoji
from mipac.models.user import User from mipac.models.user import User
__all__ = ( __all__ = (
@ -184,30 +179,6 @@ class Renote:
return await self.__client.note.action.delete(self.__raw_data.id) return await self.__client.note.action.delete(self.__raw_data.id)
class NoteReaction:
def __init__(self, raw_data: RawNoteReaction, *, client: ClientActions):
self.__raw_data = raw_data
self.__client: ClientActions = client
@property
def id(self) -> str:
return self.__raw_data.id
@property
def created_at(self) -> datetime:
return self.__raw_data.created_at
@property
def user(self) -> User:
return self.__client._modeler.create_user_instance(
RawUser(self.__raw_data.user)
)
@property
def reaction(self) -> str:
return self.__raw_data.reaction
class Reaction: class Reaction:
def __init__(self, raw_data: RawReaction, *, client: ClientActions): def __init__(self, raw_data: RawReaction, *, client: ClientActions):
self.__raw_data: RawReaction = raw_data self.__raw_data: RawReaction = raw_data
@ -254,13 +225,57 @@ class Reaction:
return self.__client.reaction return self.__client.reaction
class NoteReaction:
"""
Attributes
----------
id : Optional[str], default=None
created_at : Optional[datetime], default=None
type : Optional[str], default=None
user : Optional[RawUser], default=None
"""
__slots__ = (
'id',
'created_at',
'user',
'type',
'__reaction',
)
def __init__(self, reaction: INoteReaction):
self.__reaction: INoteReaction = reaction
@property
def id(self) -> str | None:
return self.__reaction['id']
@property
def created_at(self) -> datetime | None:
return (
datetime.strptime(
self.__reaction['created_at'], '%Y-%m-%dT%H:%M:%S.%fZ'
)
if 'created_at' in self.__reaction
else None
)
@property
def type(self) -> str | None:
return self.__reaction['type']
@property
def user(self) -> UserLite:
return UserLite(self.__reaction['user'])
class Note: class Note:
""" """
Noteモデル Noteモデル
Parameters Parameters
---------- ----------
raw_data: RawNote note: INote
アクションを持たないNoteクラス アクションを持たないNoteクラス
client: ClientActions client: ClientActions
""" """

Loading…
Cancel
Save