From 07711ff1c6a05c4bc00dff254086cdb9598e38da Mon Sep 17 00:00:00 2001 From: Waffen Sultan Date: Sun, 14 Sep 2025 18:29:08 +0800 Subject: [PATCH] refactor: simplify calculate_next_run() by removing redundant code and using match-case --- src/cogs/forum/forum_showcase.py | 23 ++++++++++++----------- 1 file changed, 12 insertions(+), 11 deletions(-) diff --git a/src/cogs/forum/forum_showcase.py b/src/cogs/forum/forum_showcase.py index 26adb63..65626d3 100644 --- a/src/cogs/forum/forum_showcase.py +++ b/src/cogs/forum/forum_showcase.py @@ -157,17 +157,18 @@ def calculate_next_run( ) while next_run <= now: - if interval == "daily": - next_run += relativedelta(days=1) - elif interval == "weekly": - if weekday_int == now.weekday(): - next_run += relativedelta(weeks=1) - else: - weekday = weekday_int - next_run += relativedelta(weekday=weekday) - elif interval == "monthly": - next_month = next_run.replace(day=1) + relativedelta(months=1) - next_run = next_month.replace(day=next_month.day) + match interval: + case "daily": + next_run += relativedelta(days=1) + case "weekly": + if weekday_int == now.weekday(): + next_run += relativedelta(weeks=1) + else: + next_run += relativedelta(weekday=weekday_int) + case "monthly": + next_month = next_run.replace( + day=1) + relativedelta(months=1) + next_run = next_month return next_run