feat(aurora): added timeouts to configuration views

This commit is contained in:
Seaswimmer 2024-05-03 22:20:53 -04:00
parent 6c56ee6181
commit d6f33857a3
Signed by untrusted user: cswimr
GPG key ID: 5D671B5D03D65A7F
5 changed files with 36 additions and 12 deletions

View file

@ -1788,14 +1788,16 @@ class Aurora(commands.Cog):
@aurora_settings.command(name="overrides", aliases=["override", "user"]) @aurora_settings.command(name="overrides", aliases=["override", "user"])
async def aurora_settings_overrides(self, ctx: commands.Context): async def aurora_settings_overrides(self, ctx: commands.Context):
"""Manage Aurora's user overriddable settings.""" """Manage Aurora's user overriddable settings."""
await ctx.send(embed=await overrides_embed(ctx), view=Overrides(ctx)) msg = await ctx.send(embed=await overrides_embed(ctx))
await msg.edit(view=Overrides(ctx, msg, 180))
@aurora_settings.command(name="guild", aliases=["server"]) @aurora_settings.command(name="guild", aliases=["server"])
@commands.admin_or_permissions(manage_guild=True) @commands.admin_or_permissions(manage_guild=True)
@commands.guild_only() @commands.guild_only()
async def aurora_settings_guild(self, ctx: commands.Context): async def aurora_settings_guild(self, ctx: commands.Context):
"""Manage Aurora's guild settings.""" """Manage Aurora's guild settings."""
await ctx.send(embed=await guild_embed(ctx), view=Guild(ctx)) msg = await ctx.send(embed=await guild_embed(ctx))
await msg.edit(view=Guild(ctx, msg, 180))
@aurora_settings.command(name="addrole", aliases=["removerole"]) @aurora_settings.command(name="addrole", aliases=["removerole"])
@commands.admin_or_permissions(manage_guild=True) @commands.admin_or_permissions(manage_guild=True)
@ -1804,14 +1806,16 @@ class Aurora(commands.Cog):
"""Manage the addrole whitelist. """Manage the addrole whitelist.
Roles added to this list are also applied to `/removerole`.""" Roles added to this list are also applied to `/removerole`."""
await ctx.send(embed=await addrole_embed(ctx), view=Addrole(ctx)) msg = await ctx.send(embed=await addrole_embed(ctx))
await msg.edit(view=Addrole(ctx, msg, 180))
@aurora_settings.command(name="immunity") @aurora_settings.command(name="immunity")
@commands.admin_or_permissions(manage_guild=True) @commands.admin_or_permissions(manage_guild=True)
@commands.guild_only() @commands.guild_only()
async def aurora_settings_immunity(self, ctx: commands.Context): async def aurora_settings_immunity(self, ctx: commands.Context):
"""Manage the immunity whitelist.""" """Manage the immunity whitelist."""
await ctx.send(embed=await immune_embed(ctx), view=Immune(ctx)) msg = await ctx.send(embed=await immune_embed(ctx))
await msg.edit(view=Immune(ctx, msg, 180))
@aurora.group(autohelp=True, name="import") @aurora.group(autohelp=True, name="import")
@commands.admin() @commands.admin()

View file

@ -1,4 +1,4 @@
from discord import ButtonStyle, Interaction, ui from discord import ButtonStyle, Interaction, Message, ui
from redbot.core import commands from redbot.core import commands
from redbot.core.utils.chat_formatting import error from redbot.core.utils.chat_formatting import error
@ -7,9 +7,14 @@ from aurora.utilities.factory import addrole_embed
class Addrole(ui.View): class Addrole(ui.View):
def __init__(self, ctx: commands.Context): def __init__(self, ctx: commands.Context, message: Message, timeout: int = 0):
super().__init__() super().__init__()
self.ctx = ctx self.ctx = ctx
self.message = message
self.timeout = timeout
async def on_timeout(self):
await self.message.edit(view=None)
@ui.select(cls=ui.RoleSelect, placeholder="Select a role", min_values=0, max_values=25) @ui.select(cls=ui.RoleSelect, placeholder="Select a role", min_values=0, max_values=25)
async def addrole_select(self, interaction: Interaction, select: ui.RoleSelect): async def addrole_select(self, interaction: Interaction, select: ui.RoleSelect):

View file

@ -1,4 +1,4 @@
from discord import ButtonStyle, Interaction, ui from discord import ButtonStyle, Interaction, Message, ui
from redbot.core import commands from redbot.core import commands
from aurora.utilities.config import config from aurora.utilities.config import config
@ -7,9 +7,14 @@ from aurora.utilities.utils import create_pagesize_options
class Guild(ui.View): class Guild(ui.View):
def __init__(self, ctx: commands.Context): def __init__(self, ctx: commands.Context, message: Message, timeout: int = 0):
super().__init__() super().__init__()
self.ctx = ctx self.ctx = ctx
self.message = message
self.timeout = timeout
async def on_timeout(self):
await self.message.edit(view=None)
@ui.button(label="Show Moderator", style=ButtonStyle.green, row=0) @ui.button(label="Show Moderator", style=ButtonStyle.green, row=0)
async def show_moderator(self, interaction: Interaction, button: ui.Button): # pylint: disable=unused-argument async def show_moderator(self, interaction: Interaction, button: ui.Button): # pylint: disable=unused-argument

View file

@ -1,4 +1,4 @@
from discord import ButtonStyle, Interaction, ui from discord import ButtonStyle, Interaction, Message, ui
from redbot.core import commands from redbot.core import commands
from redbot.core.utils.chat_formatting import error from redbot.core.utils.chat_formatting import error
@ -7,9 +7,14 @@ from aurora.utilities.factory import immune_embed
class Immune(ui.View): class Immune(ui.View):
def __init__(self, ctx: commands.Context): def __init__(self, ctx: commands.Context, message: Message, timeout: int = 0):
super().__init__() super().__init__()
self.ctx = ctx self.ctx = ctx
self.message = message
self.timeout = timeout
async def on_timeout(self):
await self.message.edit(view=None)
@ui.select(cls=ui.RoleSelect, placeholder="Select a role", min_values=0, max_values=25) @ui.select(cls=ui.RoleSelect, placeholder="Select a role", min_values=0, max_values=25)
async def immune_select(self, interaction: Interaction, select: ui.RoleSelect): async def immune_select(self, interaction: Interaction, select: ui.RoleSelect):

View file

@ -1,4 +1,4 @@
from discord import ButtonStyle, Interaction, ui from discord import ButtonStyle, Interaction, Message, ui
from redbot.core import commands from redbot.core import commands
from aurora.utilities.config import config from aurora.utilities.config import config
@ -7,9 +7,14 @@ from aurora.utilities.utils import create_pagesize_options
class Overrides(ui.View): class Overrides(ui.View):
def __init__(self, ctx: commands.Context): def __init__(self, ctx: commands.Context, message: Message, timeout: int = 0):
super().__init__() super().__init__()
self.ctx = ctx self.ctx = ctx
self.message = message
self.timeout = timeout
async def on_timeout(self):
await self.message.edit(view=None)
@ui.button(label="Auto Evidence Format", style=ButtonStyle.green, row=0) @ui.button(label="Auto Evidence Format", style=ButtonStyle.green, row=0)
async def auto_evidenceformat(self, interaction: Interaction, button: ui.Button): # pylint: disable=unused-argument async def auto_evidenceformat(self, interaction: Interaction, button: ui.Button): # pylint: disable=unused-argument