diff --git a/didier/data/embeds/base.py b/didier/data/embeds/base.py index 8cab519..45be7a0 100644 --- a/didier/data/embeds/base.py +++ b/didier/data/embeds/base.py @@ -13,7 +13,7 @@ class EmbedBaseModel(ABC): """Abstract base class for a model that can be turned into a Discord embed""" @abstractmethod - def to_embed(self) -> discord.Embed: + def to_embed(self, **kwargs: dict) -> discord.Embed: """Turn this model into a Discord embed""" raise NotImplementedError diff --git a/didier/data/embeds/google/google_search.py b/didier/data/embeds/google/google_search.py index 7d31859..dcbad9c 100644 --- a/didier/data/embeds/google/google_search.py +++ b/didier/data/embeds/google/google_search.py @@ -33,7 +33,7 @@ class GoogleSearch(EmbedBaseModel): return embed @overrides - def to_embed(self) -> discord.Embed: + def to_embed(self, **kwargs: dict) -> discord.Embed: if not self.data.results or self.data.status_code != HTTPStatus.OK: return self._error_embed() diff --git a/didier/data/embeds/ufora/announcements.py b/didier/data/embeds/ufora/announcements.py index d906ea0..a766e79 100644 --- a/didier/data/embeds/ufora/announcements.py +++ b/didier/data/embeds/ufora/announcements.py @@ -47,7 +47,7 @@ class UforaNotification(EmbedBaseModel): self.published_dt = self._published_datetime() self._published = self._get_published() - def to_embed(self) -> discord.Embed: + def to_embed(self, **kwargs: dict) -> discord.Embed: """Turn the notification into an embed""" embed = discord.Embed(colour=discord.Colour.from_rgb(30, 100, 200)) diff --git a/didier/data/embeds/urban_dictionary.py b/didier/data/embeds/urban_dictionary.py index 4f42378..afaf4c5 100644 --- a/didier/data/embeds/urban_dictionary.py +++ b/didier/data/embeds/urban_dictionary.py @@ -46,7 +46,7 @@ class Definition(EmbedPydantic): return string_utils.abbreviate(field, max_length=Limits.EMBED_FIELD_VALUE_LENGTH) @overrides - def to_embed(self) -> discord.Embed: + def to_embed(self, **kwargs: dict) -> discord.Embed: embed = discord.Embed(colour=colours.urban_dictionary_green()) embed.set_author(name="Urban Dictionary") diff --git a/didier/data/embeds/wordle.py b/didier/data/embeds/wordle.py index daf3314..3f088f7 100644 --- a/didier/data/embeds/wordle.py +++ b/didier/data/embeds/wordle.py @@ -94,7 +94,9 @@ class WordleEmbed(EmbedBaseModel): return emojis @overrides - def to_embed(self) -> discord.Embed: + def to_embed(self, **kwargs) -> discord.Embed: + only_colours = kwargs.get("only_colours", False) + colours = self.colour_code_game() embed = discord.Embed(colour=discord.Colour.blue(), title="Wordle") @@ -102,15 +104,16 @@ class WordleEmbed(EmbedBaseModel): rows = [" ".join(row) for row in emojis] - for i, guess in enumerate(self.game.guesses): - rows[i] += f" ||{guess.upper()}||" + # Don't reveal anything if we only want to show the colours + if not only_colours: + for i, guess in enumerate(self.game.guesses): + rows[i] += f" ||{guess.upper()}||" + + # If the game is over, reveal the word + if self.game.is_game_over(self.word): + rows.append(f"\n\nThe word was **{self.word.upper()}**!") embed.description = "\n\n".join(rows) - - # If the game is over, reveal the word - if self.game.is_game_over(self.word): - embed.description += f"\n\nThe word was **{self.word.upper()}**!" - embed.set_footer(text=footer()) return embed