1
1
from datetime import datetime
2
2
from enum import IntEnum
3
- from typing import List , Optional , Union
4
-
5
- from attrs import converters
3
+ from typing import TYPE_CHECKING , List , Optional , Union
6
4
7
5
from ..error import LibraryException
8
6
from .attrs_utils import (
22
20
from .team import Application
23
21
from .user import User
24
22
23
+ if TYPE_CHECKING :
24
+ from ...client .models .component import Component
25
+
25
26
__all__ = (
26
27
"MessageType" ,
27
28
"Message" ,
@@ -820,7 +821,7 @@ class Message(ClientSerializerMixin):
820
821
:ivar Union[int, str] nonce: Used for message validation
821
822
:ivar bool pinned: Whether this message is pinned.
822
823
:ivar Optional[Snowflake] webhook_id?: Webhook ID if the message is generated by a webhook.
823
- :ivar int type: Type of message
824
+ :ivar MessageType type: Type of message
824
825
:ivar Optional[MessageActivity] activity?: Message activity object that's sent by Rich Presence
825
826
:ivar Optional[Application] application?: Application object that's sent by Rich Presence
826
827
:ivar Optional[MessageReference] message_reference?: Data showing the source of a message (crosspost, channel follow, add, pin, or replied message)
@@ -837,9 +838,7 @@ class Message(ClientSerializerMixin):
837
838
channel_id : Snowflake = field (converter = Snowflake )
838
839
guild_id : Optional [Snowflake ] = field (converter = Snowflake , default = None )
839
840
author : User = field (converter = User , add_client = True , default = None )
840
- member : Optional [Member ] = field (
841
- converter = converters .optional (Member ), default = None , add_client = True
842
- )
841
+ member : Optional [Member ] = field (converter = Member , default = None , add_client = True )
843
842
content : str = field (default = None )
844
843
timestamp : datetime = field (converter = datetime .fromisoformat , default = None )
845
844
edited_timestamp : Optional [datetime ] = field (converter = datetime .fromisoformat , default = None )
@@ -861,7 +860,7 @@ class Message(ClientSerializerMixin):
861
860
nonce : Optional [Union [int , str ]] = field (default = None )
862
861
pinned : bool = field (default = None )
863
862
webhook_id : Optional [Snowflake ] = field (converter = Snowflake , default = None )
864
- type : int = field (default = None )
863
+ type : MessageType = field (converter = MessageType , default = None )
865
864
activity : Optional [MessageActivity ] = field (converter = MessageActivity , default = None )
866
865
application : Optional [Application ] = field (converter = Application , default = None )
867
866
application_id : Optional [Snowflake ] = field (converter = Snowflake , default = None )
@@ -874,7 +873,9 @@ class Message(ClientSerializerMixin):
874
873
thread : Optional [Channel ] = field (converter = Channel , default = None , add_client = True )
875
874
876
875
components : Optional [Union ["Component" , List ["Component" ]]] = field (default = None ) # noqa: F821
877
- sticker_items : Optional [List [PartialSticker ]] = field (converter = convert_list , default = None )
876
+ sticker_items : Optional [List [PartialSticker ]] = field (
877
+ converter = convert_list (PartialSticker ), default = None
878
+ )
878
879
stickers : Optional [List [Sticker ]] = field (
879
880
converter = convert_list (Sticker ), default = None
880
881
) # deprecated
0 commit comments