Skip to content

Commit 5cd9ea5

Browse files
[Fix] Add support to create Embed not only with dictionary attributes. (#658)
* fix: unable to send custom classes to instantiate Embed * fix: remove useless __init__ statements * ci: correct from checks. Co-authored-by: pre-commit-ci[bot] <66853113+pre-commit-ci[bot]@users.noreply.github.com>
1 parent e456a9e commit 5cd9ea5

File tree

1 file changed

+9
-45
lines changed

1 file changed

+9
-45
lines changed

interactions/api/models/message.py

Lines changed: 9 additions & 45 deletions
Original file line numberDiff line numberDiff line change
@@ -854,9 +854,6 @@ class EmbedImageStruct(DictSerializerMixin):
854854

855855
__slots__ = ("_json", "url", "proxy_url", "height", "width")
856856

857-
def __init__(self, **kwargs):
858-
super().__init__(**kwargs)
859-
860857
def __setattr__(self, key, value) -> None:
861858
super().__setattr__(key, value)
862859
if key != "_json" and (key not in self._json or value != self._json.get(key)):
@@ -872,14 +869,11 @@ class EmbedProvider(DictSerializerMixin):
872869
A class object representing the provider of an embed.
873870
874871
:ivar Optional[str] name?: Name of provider
875-
:ivar Optional[str] name?: URL of provider
872+
:ivar Optional[str] url?: URL of provider
876873
"""
877874

878875
__slots__ = ("_json", "url", "name")
879876

880-
def __init__(self, **kwargs):
881-
super().__init__(**kwargs)
882-
883877
def __setattr__(self, key, value) -> None:
884878
super().__setattr__(key, value)
885879
if key != "_json" and (key not in self._json or value != self._json.get(key)):
@@ -910,9 +904,6 @@ class EmbedAuthor(DictSerializerMixin):
910904

911905
__slots__ = ("_json", "url", "proxy_icon_url", "icon_url", "name")
912906

913-
def __init__(self, **kwargs):
914-
super().__init__(**kwargs)
915-
916907
def __setattr__(self, key, value) -> None:
917908
super().__setattr__(key, value)
918909
if key != "_json" and (key not in self._json or value != self._json.get(key)):
@@ -942,9 +933,6 @@ class EmbedFooter(DictSerializerMixin):
942933

943934
__slots__ = ("_json", "text", "proxy_icon_url", "icon_url")
944935

945-
def __init__(self, **kwargs):
946-
super().__init__(**kwargs)
947-
948936
def __setattr__(self, key, value) -> None:
949937
super().__setattr__(key, value)
950938
if key != "_json" and (key not in self._json or value != self._json.get(key)):
@@ -976,9 +964,6 @@ class EmbedField(DictSerializerMixin):
976964

977965
__slots__ = ("_json", "name", "inline", "value")
978966

979-
def __init__(self, **kwargs):
980-
super().__init__(**kwargs)
981-
982967
def __setattr__(self, key, value) -> None:
983968
super().__setattr__(key, value)
984969
if key != "_json" and (key not in self._json or value != self._json.get(key)):
@@ -1046,41 +1031,20 @@ def __init__(self, **kwargs):
10461031
if self._json.get("timestamp")
10471032
else datetime.utcnow()
10481033
)
1049-
self.footer = (
1050-
EmbedFooter(**self.footer)
1051-
if isinstance(self._json.get("footer"), dict)
1052-
else self._json.get("footer")
1053-
)
1054-
self.image = (
1055-
EmbedImageStruct(**self.image)
1056-
if isinstance(self._json.get("image"), dict)
1057-
else self._json.get("image")
1058-
)
1034+
self.footer = EmbedFooter(**self.footer) if isinstance(self.footer, dict) else self.footer
1035+
self.image = EmbedImageStruct(**self.image) if isinstance(self.image, dict) else self.image
10591036
self.thumbnail = (
10601037
EmbedImageStruct(**self.thumbnail)
1061-
if isinstance(self._json.get("thumbnail"), dict)
1062-
else self._json.get("thumbnail")
1063-
)
1064-
self.video = (
1065-
EmbedImageStruct(**self.video)
1066-
if isinstance(self._json.get("video"), dict)
1067-
else self._json.get("video")
1038+
if isinstance(self.thumbnail, dict)
1039+
else self.thumbnail
10681040
)
1041+
self.video = EmbedImageStruct(**self.video) if isinstance(self.video, dict) else self.video
10691042
self.provider = (
1070-
EmbedProvider(**self.provider)
1071-
if isinstance(self._json.get("provider"), dict)
1072-
else self._json.get("provider")
1073-
)
1074-
self.author = (
1075-
EmbedAuthor(**self.author)
1076-
if isinstance(self._json.get("author"), dict)
1077-
else self._json.get("author")
1043+
EmbedProvider(**self.provider) if isinstance(self.provider, dict) else self.provider
10781044
)
1045+
self.author = EmbedAuthor(**self.author) if isinstance(self.author, dict) else self.author
10791046
self.fields = (
1080-
[
1081-
EmbedField(**field) if isinstance(field, dict) else field
1082-
for field in self._json["fields"]
1083-
]
1047+
[EmbedField(**field) if isinstance(field, dict) else field for field in self.fields]
10841048
if self._json.get("fields")
10851049
else None
10861050
)

0 commit comments

Comments
 (0)