feat: Reaction型を新しく #10

pull/11/head
yupix 2 years ago
parent 8835faa999
commit aeb6e6d0f9
No known key found for this signature in database
GPG Key ID: 2FF705F5C56D9C06

@ -2,8 +2,9 @@ from .chat import Chat
from .drive import File, Folder, Properties
from .emoji import Emoji
from .instance import Instance, InstanceMeta
from .note import Follow, Header, Note, NoteReaction, Poll, Reaction, Renote
from .note import Follow, Header, Note, NoteReaction, Poll, Renote
from .user import Followee, FollowRequest, User
from .notification import Reaction
__all__ = (
'Chat',

@ -4,24 +4,22 @@ from datetime import datetime
from typing import TYPE_CHECKING, Literal, Optional, Union
from typing_extensions import Self
from mipac.core.models.note import RawReaction, RawRenote
from mipac.core.models.note import RawRenote
from mipac.core.models.poll import RawPoll
from mipac.exception import NotExistRequiredData
from mipac.models.lite.user import UserLite
from mipac.types.drive import IDriveFile
from mipac.types.emoji import ICustomEmojiLite
from mipac.types.note import INote, INoteReaction, IPoll
from mipac.exception import NotExistRequiredData
if TYPE_CHECKING:
from mipac.actions.note import NoteActions
from mipac.manager.client import ClientActions
from mipac.manager.reaction import ReactionManager
from mipac.models.user import User
from mipac.types.drive import IDriveFile
from mipac.types.emoji import ICustomEmojiLite
from mipac.types.note import INote, INoteReaction, IPoll
__all__ = (
'Note',
'Poll',
'Reaction',
'Follow',
'Header',
'Renote',
@ -179,52 +177,6 @@ class Renote:
return await self.__client.note.action.delete(self.__raw_data.id)
class Reaction:
def __init__(self, raw_data: RawReaction, *, client: ClientActions):
self.__raw_data: RawReaction = raw_data
self.__client: ClientActions = client
@property
def id(self) -> Optional[str]:
return self.__raw_data.id
@property
def created_at(self) -> Optional[datetime]:
return self.__raw_data.created_at
@property
def type(self) -> Optional[str]:
return self.__raw_data.type
@property
def is_read(self) -> bool:
return self.__raw_data.is_read
@property
def user(self) -> Optional[User]:
return (
self.__client._modeler.create_user_instance(self.__raw_data.user)
if self.__raw_data.user
else None
)
@property
def note(self) -> Optional[Note]:
return (
Note(self.__raw_data.note, client=self.__client)
if self.__raw_data.note
else None
)
@property
def reaction(self) -> str:
return self.__raw_data.reaction
@property # TODO: 修正
def action(self) -> ReactionManager:
return self.__client.reaction
class NoteReaction:
"""
Attributes

@ -0,0 +1,52 @@
from __future__ import annotations
from datetime import datetime
from typing import TYPE_CHECKING
from mipac.manager.client import ClientActions
from mipac.manager.reaction import ReactionManager
from mipac.models.lite.user import UserLite
from mipac.models.note import Note
if TYPE_CHECKING:
from mipac.types.notification import IReactionNf
class Reaction:
def __init__(
self, reaction: IReactionNf, *, client: ClientActions
) -> None:
self.__reaction: IReactionNf = reaction
self.__client: ClientActions = client
@property
def id(self) -> str:
return self.__reaction['id']
@property
def created_at(self) -> datetime:
return datetime.strptime(
self.__reaction['created_at'], '%Y-%m-%dT%H:%M:%S.%fZ'
)
@property
def type(self) -> str:
return self.__reaction['type']
@property
def is_read(self) -> bool:
return self.__reaction['is_read']
@property
def user(self) -> UserLite:
return UserLite(self.__reaction['user'])
@property
def note(self) -> Note:
return Note(self.__reaction['note'], client=self.__client)
@property
def reaction(self) -> str:
return self.__reaction['reaction']
@property
def action(self) -> ReactionManager:
return self.__client.reaction
Loading…
Cancel
Save