diff options
| author | 2020-04-20 11:44:05 -0700 | |
|---|---|---|
| committer | 2020-04-20 12:05:13 -0700 | |
| commit | b05b70453b5fc9f79b9434a8d9f9e49db7837856 (patch) | |
| tree | 1da8246f9da144623968b9e516fb74e189e71744 | |
| parent | HelpChannels: 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.py | 14 | 
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: | 
