From 88b86aa5c53e943271a4b93d8e616251a2b12fe1 Mon Sep 17 00:00:00 2001 From: mAxYoLo01 Date: Sat, 19 Mar 2022 17:43:55 +0100 Subject: [PATCH 1/5] fix: unable to send custom classes to instantiate Embed --- interactions/api/models/message.py | 30 +++++++++++++++--------------- 1 file changed, 15 insertions(+), 15 deletions(-) diff --git a/interactions/api/models/message.py b/interactions/api/models/message.py index ff3040d66..4f58cfb50 100644 --- a/interactions/api/models/message.py +++ b/interactions/api/models/message.py @@ -301,7 +301,7 @@ def __init__(self, **kwargs): def __repr__(self) -> str: return self.content - + async def get_channel(self) -> Channel: """ Gets the channel where the message was sent. @@ -872,7 +872,7 @@ class EmbedProvider(DictSerializerMixin): A class object representing the provider of an embed. :ivar Optional[str] name?: Name of provider - :ivar Optional[str] name?: URL of provider + :ivar Optional[str] url?: URL of provider """ __slots__ = ("_json", "url", "name") @@ -1048,38 +1048,38 @@ def __init__(self, **kwargs): ) self.footer = ( EmbedFooter(**self.footer) - if isinstance(self._json.get("footer"), dict) - else self._json.get("footer") + if isinstance(self.footer, dict) + else self.footer ) self.image = ( EmbedImageStruct(**self.image) - if isinstance(self._json.get("image"), dict) - else self._json.get("image") + if isinstance(self.image, dict) + else self.image ) self.thumbnail = ( EmbedImageStruct(**self.thumbnail) - if isinstance(self._json.get("thumbnail"), dict) - else self._json.get("thumbnail") + if isinstance(self.thumbnail, dict) + else self.thumbnail ) self.video = ( EmbedImageStruct(**self.video) - if isinstance(self._json.get("video"), dict) - else self._json.get("video") + if isinstance(self.video, dict) + else self.video ) self.provider = ( EmbedProvider(**self.provider) - if isinstance(self._json.get("provider"), dict) - else self._json.get("provider") + if isinstance(self.provider, dict) + else self.provider ) self.author = ( EmbedAuthor(**self.author) - if isinstance(self._json.get("author"), dict) - else self._json.get("author") + if isinstance(self.author, dict) + else self.author ) self.fields = ( [ EmbedField(**field) if isinstance(field, dict) else field - for field in self._json["fields"] + for field in self.fields ] if self._json.get("fields") else None From a886e65b88c48db403fe49000c41db7bea9648d2 Mon Sep 17 00:00:00 2001 From: mAxYoLo01 Date: Sat, 19 Mar 2022 17:49:36 +0100 Subject: [PATCH 2/5] fix: remove useless __init__ statements --- interactions/api/models/message.py | 15 --------------- 1 file changed, 15 deletions(-) diff --git a/interactions/api/models/message.py b/interactions/api/models/message.py index 4f58cfb50..8b3244ac0 100644 --- a/interactions/api/models/message.py +++ b/interactions/api/models/message.py @@ -854,9 +854,6 @@ class EmbedImageStruct(DictSerializerMixin): __slots__ = ("_json", "url", "proxy_url", "height", "width") - def __init__(self, **kwargs): - super().__init__(**kwargs) - def __setattr__(self, key, value) -> None: super().__setattr__(key, value) if key != "_json" and (key not in self._json or value != self._json.get(key)): @@ -877,9 +874,6 @@ class EmbedProvider(DictSerializerMixin): __slots__ = ("_json", "url", "name") - def __init__(self, **kwargs): - super().__init__(**kwargs) - def __setattr__(self, key, value) -> None: super().__setattr__(key, value) if key != "_json" and (key not in self._json or value != self._json.get(key)): @@ -910,9 +904,6 @@ class EmbedAuthor(DictSerializerMixin): __slots__ = ("_json", "url", "proxy_icon_url", "icon_url", "name") - def __init__(self, **kwargs): - super().__init__(**kwargs) - def __setattr__(self, key, value) -> None: super().__setattr__(key, value) if key != "_json" and (key not in self._json or value != self._json.get(key)): @@ -942,9 +933,6 @@ class EmbedFooter(DictSerializerMixin): __slots__ = ("_json", "text", "proxy_icon_url", "icon_url") - def __init__(self, **kwargs): - super().__init__(**kwargs) - def __setattr__(self, key, value) -> None: super().__setattr__(key, value) if key != "_json" and (key not in self._json or value != self._json.get(key)): @@ -976,9 +964,6 @@ class EmbedField(DictSerializerMixin): __slots__ = ("_json", "name", "inline", "value") - def __init__(self, **kwargs): - super().__init__(**kwargs) - def __setattr__(self, key, value) -> None: super().__setattr__(key, value) if key != "_json" and (key not in self._json or value != self._json.get(key)): From e641c6bebc6330eb68cd6a469cf32e0fa2b6c399 Mon Sep 17 00:00:00 2001 From: "pre-commit-ci[bot]" <66853113+pre-commit-ci[bot]@users.noreply.github.com> Date: Sat, 19 Mar 2022 17:03:01 +0000 Subject: [PATCH 3/5] ci: correct from checks. --- interactions/api/models/message.py | 35 ++++++------------------------ 1 file changed, 7 insertions(+), 28 deletions(-) diff --git a/interactions/api/models/message.py b/interactions/api/models/message.py index 8b3244ac0..befb8fb9b 100644 --- a/interactions/api/models/message.py +++ b/interactions/api/models/message.py @@ -301,7 +301,7 @@ def __init__(self, **kwargs): def __repr__(self) -> str: return self.content - + async def get_channel(self) -> Channel: """ Gets the channel where the message was sent. @@ -1031,41 +1031,20 @@ def __init__(self, **kwargs): if self._json.get("timestamp") else datetime.utcnow() ) - self.footer = ( - EmbedFooter(**self.footer) - if isinstance(self.footer, dict) - else self.footer - ) - self.image = ( - EmbedImageStruct(**self.image) - if isinstance(self.image, dict) - else self.image - ) + self.footer = EmbedFooter(**self.footer) if isinstance(self.footer, dict) else self.footer + self.image = EmbedImageStruct(**self.image) if isinstance(self.image, dict) else self.image self.thumbnail = ( EmbedImageStruct(**self.thumbnail) if isinstance(self.thumbnail, dict) else self.thumbnail ) - self.video = ( - EmbedImageStruct(**self.video) - if isinstance(self.video, dict) - else self.video - ) + self.video = EmbedImageStruct(**self.video) if isinstance(self.video, dict) else self.video self.provider = ( - EmbedProvider(**self.provider) - if isinstance(self.provider, dict) - else self.provider - ) - self.author = ( - EmbedAuthor(**self.author) - if isinstance(self.author, dict) - else self.author + EmbedProvider(**self.provider) if isinstance(self.provider, dict) else self.provider ) + self.author = EmbedAuthor(**self.author) if isinstance(self.author, dict) else self.author self.fields = ( - [ - EmbedField(**field) if isinstance(field, dict) else field - for field in self.fields - ] + [EmbedField(**field) if isinstance(field, dict) else field for field in self.fields] if self._json.get("fields") else None ) From 263442e48f90bd679723613a63990d7e0d933585 Mon Sep 17 00:00:00 2001 From: mAxYoLo01 Date: Thu, 31 Mar 2022 18:26:02 +0200 Subject: [PATCH 4/5] feat: add Embed.set_video() helper method --- interactions/api/models/message.py | 26 ++++++++++++++++++++++++-- interactions/api/models/message.pyi | 1 + 2 files changed, 25 insertions(+), 2 deletions(-) diff --git a/interactions/api/models/message.py b/interactions/api/models/message.py index befb8fb9b..53f4acb38 100644 --- a/interactions/api/models/message.py +++ b/interactions/api/models/message.py @@ -1242,13 +1242,35 @@ def set_image( """ self.image = EmbedImageStruct(url=url, proxy_url=proxy_url, height=height, width=width) + + def set_video( + self, + url: str, + proxy_url: Optional[str] = None, + height: Optional[int] = None, + width: Optional[int] = None, + ) -> None: + """ + Sets the embed's video + + :param url: Url of the video + :type url: str + :param proxy_url?: A proxied url of the video + :type proxy_url?: Optional[str] + :param height?: The video's height + :type height?: Optional[int] + :param width?: The video's width + :type width?: Optional[int] + """ + + self.video = EmbedImageStruct(url=url, proxy_url=proxy_url, height=height, width=width) def set_thumbnail( self, url: str, proxy_url: Optional[str] = None, - height: int = None, - width: Optional[str] = None, + height: Optional[int] = None, + width: Optional[int] = None, ) -> None: """ Sets the embed's thumbnail diff --git a/interactions/api/models/message.pyi b/interactions/api/models/message.pyi index 4542cb6ed..a0e1e2b3b 100644 --- a/interactions/api/models/message.pyi +++ b/interactions/api/models/message.pyi @@ -296,4 +296,5 @@ class Embed(DictSerializerMixin): def set_author(self, name: str, url: Optional[str] = None, icon_url: Optional[str] = None, proxy_icon_url: Optional[str] = None) -> None: ... def set_footer(self, text: str, icon_url: Optional[str] = None, proxy_icon_url: Optional[str] = None) -> None: ... def set_image(self, url: str, proxy_url: Optional[str] = None, height: Optional[int] = None, width: Optional[int] = None) -> None: ... + def set_video(self, url: str, proxy_url: Optional[str] = None, height: Optional[int] = None, width: Optional[int] = None) -> None: ... def set_thumbnail(self, url: str, proxy_url: Optional[str] = None, height: Optional[int] = None, width: Optional[int] = None) -> None: ... From ba018be7e4b663195b9d2f24db21aaff4d5b6893 Mon Sep 17 00:00:00 2001 From: "pre-commit-ci[bot]" <66853113+pre-commit-ci[bot]@users.noreply.github.com> Date: Thu, 31 Mar 2022 16:33:21 +0000 Subject: [PATCH 5/5] ci: correct from checks. --- interactions/api/models/message.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/interactions/api/models/message.py b/interactions/api/models/message.py index 53f4acb38..8f663638a 100644 --- a/interactions/api/models/message.py +++ b/interactions/api/models/message.py @@ -1242,7 +1242,7 @@ def set_image( """ self.image = EmbedImageStruct(url=url, proxy_url=proxy_url, height=height, width=width) - + def set_video( self, url: str,