From f1433cbeee984c3e99ff53f3c25d2075839d97a7 Mon Sep 17 00:00:00 2001 From: Kae Bartlett Date: Tue, 6 Feb 2024 12:53:34 +0000 Subject: [PATCH] Ignore Discord undocumented field --- novus/models/embed.py | 15 ++++++++++++--- 1 file changed, 12 insertions(+), 3 deletions(-) diff --git a/novus/models/embed.py b/novus/models/embed.py index 5bde6475..7735e1a0 100644 --- a/novus/models/embed.py +++ b/novus/models/embed.py @@ -19,7 +19,7 @@ from dataclasses import dataclass from datetime import datetime as dt -from typing import TYPE_CHECKING +from typing import TYPE_CHECKING, Any from typing_extensions import Self @@ -61,6 +61,15 @@ class EmbedMedia: height: int | None = None width: int | None = None + @classmethod + def _from_data(cls, data: dict[Any, Any]) -> Self: + return cls( + url=data["url"], + proxy_url=data.get("proxy_url"), + width=data.get("width"), + height=data.get("height"), + ) + def _to_data(self) -> MediaPayload: return { "url": self.url @@ -263,9 +272,9 @@ def _from_data(cls, data: EmbedPayload) -> Self: if "footer" in data: embed._footer = EmbedFooter(**data["footer"]) if "image" in data: - embed._image = EmbedMedia(**data["image"]) + embed._image = EmbedMedia._from_data(data["image"]) if "thumbnail" in data: - embed._thumbnail = EmbedMedia(**data["thumbnail"]) + embed._thumbnail = EmbedMedia._from_data(data["thumbnail"]) if "video" in data: embed._video = EmbedVideo(**data["video"]) if "provider" in data: