Source code for pylav.extension.red.ui.buttons.equalizer

from __future__ import annotations

from pathlib import Path

import discord
from redbot.core.i18n import Translator

from pylav.helpers import emojis
from pylav.type_hints.bot import DISCORD_COG_TYPE, DISCORD_INTERACTION_TYPE

_ = Translator("PyLav", Path(__file__))


[docs] class EqualizerButton(discord.ui.Button): def __init__(self, cog: DISCORD_COG_TYPE, style: discord.ButtonStyle, row: int = None) -> None: super().__init__( style=style, emoji=emojis.EQUALIZER, row=row, ) self.cog = cog
[docs] async def callback(self, interaction: DISCORD_INTERACTION_TYPE) -> None: if not interaction.response.is_done(): await interaction.response.defer(ephemeral=True) kwargs = await self.view.get_page(self.view.current_page) await self.view.prepare() attachments = [] if "file" in kwargs: attachments = [kwargs.pop("file")] elif "files" in kwargs: attachments = kwargs.pop("files") if attachments: kwargs["attachments"] = attachments await self.view.message.edit(view=self.view, **kwargs)