Skip to content

Commit ef94e38

Browse files
Bugfix for task.loop
Makes task.loop check if the time must be on this day or the next
1 parent 65de7f3 commit ef94e38

File tree

1 file changed

+6
-4
lines changed

1 file changed

+6
-4
lines changed

discord/ext/tasks/__init__.py

Lines changed: 6 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -565,11 +565,13 @@ def _get_next_sleep_time(self) -> datetime.datetime:
565565

566566
if self._current_loop == 0:
567567
self._time_index += 1
568-
return datetime.datetime.combine(datetime.datetime.now(datetime.timezone.utc), next_time)
568+
if next_time > datetime.datetime.now(datetime.timezone.utc).timetz():
569+
return datetime.datetime.combine(datetime.datetime.now(datetime.timezone.utc), next_time)
570+
else:
571+
return datetime.datetime.combine(datetime.datetime.now(datetime.timezone.utc) + datetime.timedelta(days=1), next_time)
569572

570-
next_date = self._last_iteration
571-
if self._time_index == 0:
572-
# we can assume that the earliest time should be scheduled for "tomorrow"
573+
next_date = cast(datetime.datetime, self._last_iteration)
574+
if next_time < next_date.timetz():
573575
next_date += datetime.timedelta(days=1)
574576

575577
self._time_index += 1

0 commit comments

Comments
 (0)