aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorGravatar MarkKoz <[email protected]>2020-04-20 11:44:05 -0700
committerGravatar MarkKoz <[email protected]>2020-04-20 12:05:13 -0700
commitb05b70453b5fc9f79b9434a8d9f9e49db7837856 (patch)
tree1da8246f9da144623968b9e516fb74e189e71744
parentHelpChannels: tidy up log messages (diff)
HelpChannels: pass coroutine func instead to `_change_cooldown_role`
This will allow `_change_cooldown_role` to handle the role argument rather than putting that burden on the callers.
-rw-r--r--bot/cogs/help_channels.py14
1 files changed, 8 insertions, 6 deletions
diff --git a/bot/cogs/help_channels.py b/bot/cogs/help_channels.py
index 875eb5330..30ef56f56 100644
--- a/bot/cogs/help_channels.py
+++ b/bot/cogs/help_channels.py
@@ -67,6 +67,8 @@ AVAILABLE_EMOJI = "✅"
IN_USE_EMOJI = "⌛"
NAME_SEPARATOR = "|"
+CoroutineFunc = t.Callable[..., t.Coroutine]
+
class TaskData(t.NamedTuple):
"""Data for a scheduled task."""
@@ -640,23 +642,23 @@ class HelpChannels(Scheduler, commands.Cog):
async def add_cooldown_role(cls, member: discord.Member) -> None:
"""Add the help cooldown role to `member`."""
log.trace(f"Adding cooldown role for {member} ({member.id}).")
- await cls._change_cooldown_role(member, member.add_roles(COOLDOWN_ROLE))
+ await cls._change_cooldown_role(member, member.add_roles)
@classmethod
async def remove_cooldown_role(cls, member: discord.Member) -> None:
"""Remove the help cooldown role from `member`."""
log.trace(f"Removing cooldown role for {member} ({member.id}).")
- await cls._change_cooldown_role(member, member.remove_roles(COOLDOWN_ROLE))
+ await cls._change_cooldown_role(member, member.remove_roles)
@staticmethod
- async def _change_cooldown_role(member: discord.Member, coro: t.Awaitable) -> None:
+ async def _change_cooldown_role(member: discord.Member, coro_func: CoroutineFunc) -> None:
"""
- Change `member`'s cooldown role via awaiting `coro` and handle errors.
+ Change `member`'s cooldown role via awaiting `coro_func` and handle errors.
- `coro` is intended to be `discord.Member.add_roles` or `discord.Member.remove_roles`.
+ `coro_func` is intended to be `discord.Member.add_roles` or `discord.Member.remove_roles`.
"""
try:
- await coro
+ await coro_func(COOLDOWN_ROLE)
except discord.NotFound:
log.debug(f"Failed to change role for {member} ({member.id}): member not found")
except discord.Forbidden: