discord.py — как отследить view timeout и отключить кнопки?

Мне нужно, чтобы по прошествии времени в моём view отключались кнопки.

Как я могу это реализовать?

class test(commands.Cog):
    @app_commands.command(name='test', description='timeout test')
    async def test(self, interaction: discord.Interaction):
        testBTN = Button(label="test", style=discord.ButtonStyle.green)
        view = View(timeout=120)
        view.add_item(testBTN)
        view.on_timeout = print('Time is out')
        await interaction.response.send_message('text', view=view,ephemeral=True)

Ответы (1 шт):

Автор решения: web developer

Вы можете использовать on_timeout в коде своего представления, чтобы удалить кнопки:

def __init__(self, ctx, summary, ranked, matches):
super().__init__(timeout=600)
    self.summary = summary

async def on_timeout(self):
    await self.message.edit(embed=self.summary, view=None)

Но вам также нужно немного отредактировать код команды:

view = ViewSwitch(ctx, summary, ranked, matches)

view.message = await ctx.send(embed=summary, view=view)

→ Ссылка