Skip to content

Commit 4bb55e8

Browse files
DamegoFayeDel
andauthored
fix: fix not fully model convertation to dict (#946)
Co-authored-by: DeltaX <33706469+DeltaXWizard@users.noreply.github.com>
1 parent 38f4208 commit 4bb55e8

File tree

2 files changed

+7
-8
lines changed

2 files changed

+7
-8
lines changed

interactions/api/gateway/client.py

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -12,6 +12,7 @@
1212
new_event_loop,
1313
sleep,
1414
)
15+
from datetime import datetime
1516
from sys import platform, version_info
1617
from time import perf_counter
1718
from typing import TYPE_CHECKING, Any, Dict, List, Optional, Tuple, Type, Union
@@ -440,6 +441,10 @@ def __modify_guild_cache():
440441
for key, value in old_obj._json.items():
441442
if hasattr(value, "_json"):
442443
old_obj._json[key] = value._json
444+
elif isinstance(value, Snowflake):
445+
old_obj._json[key] = int(value)
446+
elif isinstance(value, datetime):
447+
old_obj._json[key] = value.isoformat()
443448

444449
before = model(**old_obj._json)
445450
old_obj.update(**obj._json)

interactions/api/models/message.py

Lines changed: 2 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -842,8 +842,8 @@ class Message(ClientSerializerMixin, IDMixin):
842842
author: User = field(converter=User, add_client=True, default=None)
843843
member: Optional[Member] = field(converter=Member, default=None, add_client=True)
844844
content: str = field(default=None)
845-
timestamp: datetime = field(converter=str, default=None)
846-
edited_timestamp: Optional[datetime] = field(converter=str, default=None)
845+
timestamp: datetime = field(converter=datetime.fromisoformat, default=None)
846+
edited_timestamp: Optional[datetime] = field(converter=datetime.fromisoformat, default=None)
847847
tts: bool = field(default=None)
848848
mention_everyone: bool = field(default=None)
849849
# mentions: array of Users, and maybe partial members
@@ -882,12 +882,6 @@ class Message(ClientSerializerMixin, IDMixin):
882882
converter=convert_list(Sticker), default=None
883883
) # deprecated
884884

885-
def __attrs_post_init__(self):
886-
if self.timestamp and isinstance(self.timestamp, str):
887-
self.timestamp = datetime.fromisoformat(self.timestamp)
888-
if self.edited_timestamp and isinstance(self.edited_timestamp, str):
889-
self.edited_timestamp = datetime.fromisoformat(self.edited_timestamp)
890-
891885
async def get_channel(self) -> Channel:
892886
"""
893887
Gets the channel where the message was sent.

0 commit comments

Comments
 (0)