diff options
author | 2020-10-06 12:45:07 -0700 | |
---|---|---|
committer | 2020-10-06 12:45:07 -0700 | |
commit | 5381552c18b541121a33171f4763047e03362780 (patch) | |
tree | b09a915704c8472943494b2526a38cedf8ea46e4 | |
parent | Add license & copyright for autospec's _decoration_helper (diff) |
Silence: move unsilence scheduling to a separate function
-rw-r--r-- | bot/cogs/moderation/silence.py | 21 |
1 files changed, 13 insertions, 8 deletions
diff --git a/bot/cogs/moderation/silence.py b/bot/cogs/moderation/silence.py index 8e15b2284..08d0328ab 100644 --- a/bot/cogs/moderation/silence.py +++ b/bot/cogs/moderation/silence.py @@ -110,16 +110,12 @@ class Silence(commands.Cog): await ctx.send(MSG_SILENCE_FAIL) return + await self._schedule_unsilence(ctx, duration) + if duration is None: await ctx.send(MSG_SILENCE_PERMANENT) - await self.unsilence_timestamps.set(ctx.channel.id, -1) - return - - await ctx.send(MSG_SILENCE_SUCCESS.format(duration=duration)) - - self.scheduler.schedule_later(duration * 60, ctx.channel.id, ctx.invoke(self.unsilence)) - unsilence_time = (datetime.now(tz=timezone.utc) + timedelta(minutes=duration)) - await self.unsilence_timestamps.set(ctx.channel.id, unsilence_time.timestamp()) + else: + await ctx.send(MSG_SILENCE_SUCCESS.format(duration=duration)) @commands.command(aliases=("unhush",)) async def unsilence(self, ctx: Context) -> None: @@ -170,6 +166,15 @@ class Silence(commands.Cog): log.info(f"Silenced #{channel} ({channel.id}) for {duration} minute(s).") return True + async def _schedule_unsilence(self, ctx: Context, duration: Optional[int]) -> None: + """Schedule `ctx.channel` to be unsilenced if `duration` is not None.""" + if duration is None: + await self.unsilence_timestamps.set(ctx.channel.id, -1) + else: + self.scheduler.schedule_later(duration * 60, ctx.channel.id, ctx.invoke(self.unsilence)) + unsilence_time = (datetime.now(tz=timezone.utc) + timedelta(minutes=duration)) + await self.unsilence_timestamps.set(ctx.channel.id, unsilence_time.timestamp()) + async def _unsilence(self, channel: TextChannel) -> bool: """ Unsilence `channel`. |