feat(repo): make all cogs pylance-typechecking compliant
at `basic` level, does not include Aurora as it's being rewritten in the `aurora/v3` branch
This commit is contained in:
parent
ea0b7937f8
commit
2a5b924409
11 changed files with 184 additions and 139 deletions
|
@ -17,7 +17,7 @@ class AntiPolls(commands.Cog):
|
|||
|
||||
__author__ = ["[cswimr](https://www.coastalcommits.com/cswimr)"]
|
||||
__git__ = "https://www.coastalcommits.com/cswimr/SeaCogs"
|
||||
__version__ = "1.0.2"
|
||||
__version__ = "1.0.3"
|
||||
__documentation__ = "https://seacogs.coastalcommits.com/antipolls/"
|
||||
|
||||
def __init__(self, bot: Red):
|
||||
|
@ -82,7 +82,7 @@ class AntiPolls(commands.Cog):
|
|||
return self.logger.trace("Deleted poll message %s", message.id)
|
||||
return self.logger.verbose("Message %s is not a poll, ignoring", message.id)
|
||||
|
||||
@commands.group(name="antipolls", aliases=["ap"])
|
||||
@commands.group(name="antipolls", aliases=["ap"]) # type: ignore
|
||||
@commands.guild_only()
|
||||
@commands.admin_or_permissions(manage_guild=True)
|
||||
async def antipolls(self, ctx: commands.Context) -> None:
|
||||
|
@ -95,6 +95,8 @@ class AntiPolls(commands.Cog):
|
|||
@antipolls_roles.command(name="add")
|
||||
async def antipolls_roles_add(self, ctx: commands.Context, *roles: discord.Role) -> None:
|
||||
"""Add roles to the whitelist."""
|
||||
assert ctx.guild is not None # using `assert` here and in the rest of this file to satisfy typecheckers
|
||||
# this is safe because the commands are part of a guild-only command group
|
||||
async with self.config.guild(ctx.guild).role_whitelist() as role_whitelist:
|
||||
role_whitelist: list
|
||||
failed: list[discord.Role] = []
|
||||
|
@ -110,6 +112,7 @@ class AntiPolls(commands.Cog):
|
|||
@antipolls_roles.command(name="remove")
|
||||
async def antipolls_roles_remove(self, ctx: commands.Context, *roles: discord.Role) -> None:
|
||||
"""Remove roles from the whitelist."""
|
||||
assert ctx.guild is not None
|
||||
async with self.config.guild(ctx.guild).role_whitelist() as role_whitelist:
|
||||
role_whitelist: list
|
||||
failed: list[discord.Role] = []
|
||||
|
@ -125,10 +128,11 @@ class AntiPolls(commands.Cog):
|
|||
@antipolls_roles.command(name="list")
|
||||
async def antipolls_roles_list(self, ctx: commands.Context) -> discord.Message:
|
||||
"""List roles in the whitelist."""
|
||||
assert ctx.guild is not None
|
||||
role_whitelist = await self.config.guild(ctx.guild).role_whitelist()
|
||||
if not role_whitelist:
|
||||
return await ctx.send("No roles in the whitelist.")
|
||||
roles = [ctx.guild.get_role(role) for role in role_whitelist]
|
||||
roles = [role for role in (ctx.guild.get_role(role) for role in role_whitelist) if role is not None]
|
||||
return await ctx.send(humanize_list([role.mention for role in roles]))
|
||||
|
||||
@antipolls.group(name="channels")
|
||||
|
@ -138,6 +142,7 @@ class AntiPolls(commands.Cog):
|
|||
@antipolls_channels.command(name="add")
|
||||
async def antipolls_channels_add(self, ctx: commands.Context, *channels: discord.TextChannel) -> None:
|
||||
"""Add channels to the whitelist."""
|
||||
assert ctx.guild is not None
|
||||
async with self.config.guild(ctx.guild).channel_whitelist() as channel_whitelist:
|
||||
channel_whitelist: list
|
||||
failed: list[discord.TextChannel] = []
|
||||
|
@ -153,6 +158,7 @@ class AntiPolls(commands.Cog):
|
|||
@antipolls_channels.command(name="remove")
|
||||
async def antipolls_channels_remove(self, ctx: commands.Context, *channels: discord.TextChannel) -> None:
|
||||
"""Remove channels from the whitelist."""
|
||||
assert ctx.guild is not None
|
||||
async with self.config.guild(ctx.guild).channel_whitelist() as channel_whitelist:
|
||||
channel_whitelist: list
|
||||
failed: list[discord.TextChannel] = []
|
||||
|
@ -168,14 +174,19 @@ class AntiPolls(commands.Cog):
|
|||
@antipolls_channels.command(name="list")
|
||||
async def antipolls_channels_list(self, ctx: commands.Context) -> discord.Message:
|
||||
"""List channels in the whitelist."""
|
||||
assert ctx.guild is not None
|
||||
channel_whitelist = await self.config.guild(ctx.guild).channel_whitelist()
|
||||
if not channel_whitelist:
|
||||
return await ctx.send("No channels in the whitelist.")
|
||||
channels = [ctx.guild.get_channel(channel) for channel in channel_whitelist]
|
||||
channels = [channel for channel in (ctx.guild.get_channel(channel) for channel in channel_whitelist) if channel is not None]
|
||||
for c in channels:
|
||||
if not c:
|
||||
channels.remove(c)
|
||||
return await ctx.send(humanize_list([channel.mention for channel in channels]))
|
||||
|
||||
@antipolls.command(name="managemessages")
|
||||
async def antipolls_managemessages(self, ctx: commands.Context, enabled: bool) -> None:
|
||||
"""Toggle Manage Messages permission check."""
|
||||
assert ctx.guild is not None
|
||||
await self.config.guild(ctx.guild).manage_messages.set(enabled)
|
||||
await ctx.tick()
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue