aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorGravatar ItsDrike <[email protected]>2020-06-06 23:41:59 +0200
committerGravatar ItsDrike <[email protected]>2020-06-06 23:41:59 +0200
commit73f258488d32be6c00aaea2cfa20ff2b24d48b30 (patch)
tree944297ba55bfe0c1e1e30f00b198d4a004abe30e
parentTest for channel not silenced message (diff)
Use class instead of NamedTuple
- Using a class is more readable than using a NamedTuple
-rw-r--r--bot/cogs/moderation/silence.py21
1 files changed, 12 insertions, 9 deletions
diff --git a/bot/cogs/moderation/silence.py b/bot/cogs/moderation/silence.py
index 08f3973b0..c8ab6443b 100644
--- a/bot/cogs/moderation/silence.py
+++ b/bot/cogs/moderation/silence.py
@@ -15,9 +15,12 @@ from bot.utils.scheduling import Scheduler
log = logging.getLogger(__name__)
-SilencedChannel = NamedTuple(
- "SilencedChannel", [("ctx", Context), ("delay", int)]
-)
+
+class TaskData(NamedTuple):
+ """Data for a scheduled task."""
+
+ delay: int
+ ctx: Context
class SilenceNotifier(tasks.Loop):
@@ -68,14 +71,14 @@ class Silence(Scheduler, commands.Cog):
self._get_instance_vars_task = self.bot.loop.create_task(self._get_instance_vars())
self._get_instance_vars_event = asyncio.Event()
- async def _scheduled_task(self, channel: SilencedChannel) -> None:
+ async def _scheduled_task(self, task: TaskData) -> None:
"""Calls `self.unsilence` on expired silenced channel to unsilence it."""
- await asyncio.sleep(channel.delay)
+ await asyncio.sleep(task.delay)
log.info("Unsilencing channel after set delay.")
# Because `self.unsilence` explicitly cancels this scheduled task, it is shielded
# to avoid prematurely cancelling itself
- await asyncio.shield(channel.ctx.invoke(self.unsilence))
+ await asyncio.shield(task.ctx.invoke(self.unsilence))
async def _get_instance_vars(self) -> None:
"""Get instance variables after they're available to get from the guild."""
@@ -106,12 +109,12 @@ class Silence(Scheduler, commands.Cog):
await ctx.send(f"{Emojis.check_mark} silenced current channel for {duration} minute(s).")
- channel = SilencedChannel(
- ctx=ctx,
+ task_data = TaskData(
delay=duration*60,
+ ctx=ctx
)
- self.schedule_task(ctx.channel.id, channel)
+ self.schedule_task(ctx.channel.id, task_data)
@commands.command(aliases=("unhush",))
async def unsilence(self, ctx: Context) -> None: