diff --git a/cogs/logging_cog.py b/cogs/logging_cog.py index 8c6450e..5b019da 100644 --- a/cogs/logging_cog.py +++ b/cogs/logging_cog.py @@ -56,7 +56,7 @@ class LoggingCog(commands.Cog): asyncio.create_task(self.start_audit_log_poller_when_ready()) # Keep this for initial start class LogView(ui.LayoutView): - """Simple view for log messages.""" + """Simple view for log messages with helper methods.""" def __init__(self, bot: commands.Bot, title: str, description: str, color: discord.Color, author: Optional[discord.abc.User], @@ -72,6 +72,7 @@ class LoggingCog(commands.Cog): self.header.add_item(ui.TextDisplay(description)) self.container.add_item(self.header) + # Section to hold log fields with no accessory self.fields_section = ui.Section(accessory=None) self.container.add_item(self.fields_section) @@ -82,20 +83,23 @@ class LoggingCog(commands.Cog): self.footer_display = ui.TextDisplay(footer_text) self.container.add_item(self.footer_display) - def add_field(self, *, name: str, value: str, inline: bool = False) -> None: - """Mimic discord.Embed.add_field for compatibility.""" + # --- Compatibility helpers --- + def add_field(self, name: str, value: str, inline: bool = False): + """Mimic Embed.add_field by appending a bolded name/value line.""" self.fields_section.add_item(ui.TextDisplay(f"**{name}:** {value}")) - def set_author(self, *, name: str, icon_url: Optional[str] | None = None) -> None: - """Set the author line similarly to discord.Embed.set_author.""" - if icon_url: - self.header.accessory = ui.Thumbnail(media=icon_url) - self.header.add_item(ui.TextDisplay(name)) - - def set_footer(self, *, text: str) -> None: - """Set footer text similarly to discord.Embed.set_footer.""" + def set_footer(self, text: str): + """Mimic Embed.set_footer by replacing the footer text display.""" self.footer_display.content = text + def set_author(self, name: str, icon_url: Optional[str] = None): + """Mimic Embed.set_author by adjusting the header section.""" + self.header.clear_items() + if icon_url: + self.header.accessory = ui.Thumbnail(media=icon_url) + else: + self.header.accessory = None + self.header.add_item(ui.TextDisplay(name)) def _user_display(self, user: Union[discord.Member, discord.User]) -> str: """Return display name, username and ID string for a user.""" display = user.display_name if isinstance(user, discord.Member) else user.name