aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorGravatar MarkKoz <[email protected]>2020-10-06 12:45:07 -0700
committerGravatar MarkKoz <[email protected]>2020-10-06 12:45:07 -0700
commit5381552c18b541121a33171f4763047e03362780 (patch)
treeb09a915704c8472943494b2526a38cedf8ea46e4
parentAdd license & copyright for autospec's _decoration_helper (diff)
Silence: move unsilence scheduling to a separate function
-rw-r--r--bot/cogs/moderation/silence.py21
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`.