diff --git a/sopel/bot.py b/sopel/bot.py index d52e1707c..07bf78025 100644 --- a/sopel/bot.py +++ b/sopel/bot.py @@ -8,9 +8,11 @@ from __future__ import annotations from ast import literal_eval +from datetime import timedelta import inspect import itertools import logging +import math import re import threading import time @@ -631,7 +633,11 @@ def rate_limit_info( return False, None next_time = metrics.last_time + rate_limit - time_left = next_time - at_time + time_left = timedelta( + seconds=math.ceil( + (next_time - at_time).total_seconds() + ) + ) message: Optional[str] = None diff --git a/test/test_bot.py b/test/test_bot.py index 73904e810..63f68c3b3 100644 --- a/test/test_bot.py +++ b/test/test_bot.py @@ -1174,8 +1174,8 @@ def testrule(bot, trigger): # assert there is now a NOTICE which contains templated time left information assert mockbot.backend.message_sent patt = (br"NOTICE Test :" - br"time_left=\d+:\d+:\d+(\.\d+)? " - br"time_left_sec=\d+(\.\d+)?") + br"time_left=\d+:\d+:\d+ " + br"time_left_sec=\d+") assert re.match(patt, mockbot.backend.message_sent[0])