feat(moderation): added default setting configuration for the history command
Some checks failed
Pylint / Pylint (3.10) (push) Failing after 54s
Some checks failed
Pylint / Pylint (3.10) (push) Failing after 54s
This commit is contained in:
parent
b27397c040
commit
fa2c7d5b9c
1 changed files with 102 additions and 5 deletions
|
@ -28,7 +28,17 @@ class Moderation(commands.Cog):
|
||||||
self.config.register_guild(
|
self.config.register_guild(
|
||||||
ignore_other_bots = True,
|
ignore_other_bots = True,
|
||||||
dm_users = True,
|
dm_users = True,
|
||||||
log_channel = " "
|
log_channel = " ",
|
||||||
|
history_ephemeral = False,
|
||||||
|
history_inline = False,
|
||||||
|
history_pagesize = 5,
|
||||||
|
history_inline_pagesize = 6
|
||||||
|
)
|
||||||
|
self.config.register_user(
|
||||||
|
history_ephemeral = None,
|
||||||
|
history_inline = None,
|
||||||
|
history_pagesize = None,
|
||||||
|
history_inline_pagesize = None
|
||||||
)
|
)
|
||||||
disable_dateutil()
|
disable_dateutil()
|
||||||
self.handle_expiry.start() # pylint: disable=no-member
|
self.handle_expiry.start() # pylint: disable=no-member
|
||||||
|
@ -822,7 +832,7 @@ class Moderation(commands.Cog):
|
||||||
await self.log(interaction, moderation_id)
|
await self.log(interaction, moderation_id)
|
||||||
|
|
||||||
@app_commands.command(name="history")
|
@app_commands.command(name="history")
|
||||||
async def history(self, interaction: discord.Interaction, target: discord.User = None, moderator: discord.User = None, pagesize: app_commands.Range[int, 1, 25] = None, page: int = 1, ephemeral: bool = False, inline: bool = False, export: bool = False):
|
async def history(self, interaction: discord.Interaction, target: discord.User = None, moderator: discord.User = None, pagesize: app_commands.Range[int, 1, 25] = None, page: int = 1, ephemeral: bool = None, inline: bool = None, export: bool = False):
|
||||||
"""List previous infractions.
|
"""List previous infractions.
|
||||||
|
|
||||||
Parameters
|
Parameters
|
||||||
|
@ -853,9 +863,23 @@ class Moderation(commands.Cog):
|
||||||
|
|
||||||
if pagesize is None:
|
if pagesize is None:
|
||||||
if inline is True:
|
if inline is True:
|
||||||
pagesize = 6
|
pagesize = (await self.config.user(interaction.user).history_inline_pagesize()
|
||||||
|
or await self.config.guild(interaction.guild).history_inline_pagesize()
|
||||||
|
or 6)
|
||||||
else:
|
else:
|
||||||
pagesize = 5
|
pagesize = (await self.config.user(interaction.user).history_pagesize()
|
||||||
|
or await self.config.guild(interaction.guild).history_pagesize()
|
||||||
|
or 6)
|
||||||
|
|
||||||
|
if inline is None:
|
||||||
|
inline = (await self.config.user(interaction.user).history_inline()
|
||||||
|
or await self.config.guild(interaction.guild).history_inline()
|
||||||
|
or False)
|
||||||
|
|
||||||
|
if ephemeral is None:
|
||||||
|
ephemeral = (await self.config.user(interaction.user).history_ephemeral()
|
||||||
|
or await self.config.guild(interaction.guild).history_ephemeral()
|
||||||
|
or False)
|
||||||
|
|
||||||
if target:
|
if target:
|
||||||
query = """SELECT *
|
query = """SELECT *
|
||||||
|
@ -1115,10 +1139,83 @@ class Moderation(commands.Cog):
|
||||||
database.close()
|
database.close()
|
||||||
|
|
||||||
@commands.group(autohelp=True)
|
@commands.group(autohelp=True)
|
||||||
@checks.admin()
|
|
||||||
async def moderationset(self, ctx: commands.Context):
|
async def moderationset(self, ctx: commands.Context):
|
||||||
"""Manage moderation commands."""
|
"""Manage moderation commands."""
|
||||||
|
|
||||||
|
@commands.group(autohelp=True)
|
||||||
|
async def moderationset_history(self, ctx: commands.Context):
|
||||||
|
"""Manage configuration for the `/history` command."""
|
||||||
|
|
||||||
|
@commands.group(autohelp=True)
|
||||||
|
async def moderationset_history_user(self, ctx: commands.Context):
|
||||||
|
"""Manage configuration for the `/history` command, per user."""
|
||||||
|
|
||||||
|
@moderationset_history_user.command(name='ephemeral', aliases=['hidden', 'hide'])
|
||||||
|
async def moderationset_history_user_ephemeral(self, ctx: commands.Context):
|
||||||
|
"""Toggle if the `/history` command should be ephemeral."""
|
||||||
|
await self.config.user(ctx.author).history_ephemeral.set(not await self.config.user(ctx.author).ephemeral())
|
||||||
|
await ctx.send(f"Ephemeral setting set to {await self.config.user(ctx.author).ephemeral()}")
|
||||||
|
|
||||||
|
@moderationset_history_user.command(name='pagesize')
|
||||||
|
async def moderationset_history_user_pagesize(self, ctx: commands.Context, pagesize: int):
|
||||||
|
"""Set the amount of cases to display per page."""
|
||||||
|
await self.config.user(ctx.author).history_pagesize.set(pagesize)
|
||||||
|
await ctx.send(f"Pagesize set to {await self.config.user(ctx.author).history_pagesize()}")
|
||||||
|
|
||||||
|
@moderationset_history_user.group(name='inline')
|
||||||
|
async def moderationset_history_user_inline(self, ctx: commands.Context):
|
||||||
|
"""Manage configuration for the `/history` command's inline argument."""
|
||||||
|
|
||||||
|
@moderationset_history_user_inline.command(name='toggle')
|
||||||
|
async def moderationset_history_user_inline_toggle(self, ctx: commands.Context):
|
||||||
|
"""Enable the `/history` command's inline argument by default."""
|
||||||
|
await self.config.user(ctx.author).history_inline.set(not await self.config.user(ctx.author).history_inline())
|
||||||
|
await ctx.send(f"Inline setting set to {await self.config.user(ctx.author).history_inline()}")
|
||||||
|
|
||||||
|
@moderationset_history_user_inline.command(name='pagesize')
|
||||||
|
async def moderationset_history_user_inline_pagesize(self, ctx: commands.Context, pagesize: int):
|
||||||
|
"""Set the amount of cases to display per page."""
|
||||||
|
await self.config.user(ctx.author).history_inline_pagesize.set(pagesize)
|
||||||
|
await ctx.send(f"Inline pagesize set to {await self.config.user(ctx.author).history_inline_pagesize()}")
|
||||||
|
|
||||||
|
@commands.group(autohelp=True)
|
||||||
|
@checks.admin()
|
||||||
|
async def moderationset_history_guild(self, ctx: commands.Context):
|
||||||
|
"""Manage configuration for the `/history` command, per guild."""
|
||||||
|
|
||||||
|
@moderationset_history_guild.command(name='ephemeral', aliases=['hidden', 'hide'])
|
||||||
|
@checks.admin()
|
||||||
|
async def moderationset_history_guild_ephemeral(self, ctx: commands.Context):
|
||||||
|
"""Toggle if the `/history` command should be ephemeral."""
|
||||||
|
await self.config.guild(ctx.guild).history_ephemeral.set(not await self.config.guild(ctx.guild).ephemeral())
|
||||||
|
await ctx.send(f"Ephemeral setting set to {await self.config.guild(ctx.guild).ephemeral()}")
|
||||||
|
|
||||||
|
@moderationset_history_guild.command(name='pagesize')
|
||||||
|
@checks.admin()
|
||||||
|
async def moderationset_history_guild_pagesize(self, ctx: commands.Context, pagesize: int):
|
||||||
|
"""Set the amount of cases to display per page."""
|
||||||
|
await self.config.guild(ctx.guild).history_pagesize.set(pagesize)
|
||||||
|
await ctx.send(f"Pagesize set to {await self.config.guild(ctx.guild).history_pagesize()}")
|
||||||
|
|
||||||
|
@moderationset_history_guild.group(name='inline')
|
||||||
|
@checks.admin()
|
||||||
|
async def moderationset_history_guild_inline(self, ctx: commands.Context):
|
||||||
|
"""Manage configuration for the `/history` command's inline argument."""
|
||||||
|
|
||||||
|
@moderationset_history_guild_inline.command(name='toggle')
|
||||||
|
@checks.admin()
|
||||||
|
async def moderationset_history_guild_inline_toggle(self, ctx: commands.Context):
|
||||||
|
"""Enable the `/history` command's inline argument by default."""
|
||||||
|
await self.config.guild(ctx.guild).history_inline.set(not await self.config.guild(ctx.guild).history_inline())
|
||||||
|
await ctx.send(f"Inline setting set to {await self.config.guild(ctx.guild).history_inline()}")
|
||||||
|
|
||||||
|
@moderationset_history_guild_inline.command(name='pagesize')
|
||||||
|
@checks.admin()
|
||||||
|
async def moderationset_history_guild_inline_pagesize(self, ctx: commands.Context, pagesize: int):
|
||||||
|
"""Set the amount of cases to display per page."""
|
||||||
|
await self.config.guild(ctx.guild).history_inline_pagesize.set(pagesize)
|
||||||
|
await ctx.send(f"Inline pagesize set to {await self.config.guild(ctx.guild).history_inline_pagesize()}")
|
||||||
|
|
||||||
@moderationset.command(name="ignorebots")
|
@moderationset.command(name="ignorebots")
|
||||||
@checks.admin()
|
@checks.admin()
|
||||||
async def moderationset_ignorebots(self, ctx: commands.Context):
|
async def moderationset_ignorebots(self, ctx: commands.Context):
|
||||||
|
|
Loading…
Reference in a new issue