Skip to content

Commit db15472

Browse files
committed
fix: new schedule not updating
1 parent fb58ac4 commit db15472

File tree

2 files changed

+21
-10
lines changed

2 files changed

+21
-10
lines changed

src/cogs/forum/forum_showcase.py

Lines changed: 18 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -145,6 +145,7 @@ def calculate_next_run(self) -> datetime:
145145
now = datetime.now(timezone.utc)
146146
schedule = self.forum_showcase.schedule
147147
interval = self.forum_showcase.interval
148+
weekday_int = WEEKDAYS.index(self.forum_showcase.weekday)
148149

149150
next_run = schedule.replace(
150151
year=now.year, month=now.month, day=now.day, tzinfo=timezone.utc
@@ -154,8 +155,11 @@ def calculate_next_run(self) -> datetime:
154155
if interval == "daily":
155156
next_run += relativedelta(days=1)
156157
elif interval == "weekly":
157-
weekday = WEEKDAYS.index(self.forum_showcase.weekday)
158-
next_run += relativedelta(weekday=weekday)
158+
if weekday_int == now.weekday():
159+
next_run += relativedelta(weeks=1)
160+
else:
161+
weekday = weekday_int
162+
next_run += relativedelta(weekday=weekday)
159163
elif interval == "monthly":
160164
next_month = next_run.replace(day=1) + relativedelta(months=1)
161165
next_month_day = (next_month + relativedelta(days=1)).day
@@ -386,13 +390,17 @@ async def config(self, interaction: Interaction):
386390
weekday_select = ConfigureWeekday(
387391
self.forum_showcase, self.forum_showcase_db, self.logger
388392
)
389-
390393
await interaction.followup.send(
391394
"Select a weekday", view=weekday_select, ephemeral=True
392395
)
393396
await weekday_select.wait()
394397

395-
self.forum_showcase.weekday = weekday_select.forum_showcase.weekday
398+
if weekday_select.selected_weekday is not None:
399+
self.forum_showcase.weekday = weekday_select.forum_showcase.weekday
400+
self.logger.info(
401+
f"[FORUM-SHOWCASE] New weekday: {self.forum_showcase.weekday}"
402+
)
403+
await self.schedule_next_run()
396404

397405
time_select = ConfigureTime(
398406
self.forum_showcase, self.forum_showcase_db, self.logger
@@ -402,9 +410,12 @@ async def config(self, interaction: Interaction):
402410
)
403411
await time_select.wait()
404412

405-
self.forum_showcase.schedule = time_select.forum_showcase.schedule
406-
407-
await self.schedule_next_run()
413+
if time_select.selected_time is not None:
414+
self.forum_showcase.schedule = time_select.forum_showcase.schedule
415+
self.logger.info(
416+
f"[FORUM-SHOWCASE] New schedule: {self.forum_showcase.schedule}"
417+
)
418+
await self.schedule_next_run()
408419

409420
await interaction.followup.send(
410421
"All settings have been updated.", ephemeral=True

src/ui/views/forum_showcase.py

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -123,19 +123,19 @@ async def submit_button(self, interaction: Interaction, button: Button):
123123
self.stop()
124124
return
125125

126+
self.forum_showcase.weekday = self.selected_weekday
127+
126128
now = datetime.now(timezone.utc)
127129
update_showcase = UpdateForumShowcase(
128130
id=self.forum_showcase.id,
129131
target_channel=self.forum_showcase.target_channel,
130132
schedule=self.forum_showcase.schedule,
131133
interval=self.forum_showcase.interval,
132-
weekday=self.selected_weekday,
134+
weekday=self.forum_showcase.weekday,
133135
updated_at=now,
134136
)
135137
await self.forum_showcase_db.update_showcase(update_showcase)
136138

137-
self.forum_showcase.weekday = self.selected_weekday
138-
139139
await interaction.response.send_message(
140140
f"New weekday is {self.selected_weekday}", ephemeral=True
141141
)

0 commit comments

Comments
 (0)