From 4438495dd9741501843f38e185fa03a8ba6c8f87 Mon Sep 17 00:00:00 2001 From: jiz4oh Date: Mon, 11 Aug 2025 16:33:24 +0800 Subject: [PATCH] fix: ensure retry method works properly --- efb_telegram_master/bot_manager.py | 15 ++++++++++----- 1 file changed, 10 insertions(+), 5 deletions(-) diff --git a/efb_telegram_master/bot_manager.py b/efb_telegram_master/bot_manager.py index 116633c7..3ac67cd3 100644 --- a/efb_telegram_master/bot_manager.py +++ b/efb_telegram_master/bot_manager.py @@ -50,11 +50,16 @@ def exception_filter(cls, exception: Exception): @classmethod def retry_on_timeout(cls, fn: Callable): """Infinitely retry for timed-out exceptions.""" - if not cls.enable_retry: - return fn - cls.logger.debug("Trying to call %s with infinite retry.", fn) - return retry(wait_exponential_multiplier=1e3, wait_exponential_max=180e3, - retry_on_exception=cls.exception_filter)(fn) + @wraps(fn) + def retry_wrapper(*args, **kwargs): + # Access the instance to get the retry setting + if not cls.enable_retry: + return fn(*args, **kwargs) + cls.logger.debug("Trying to call %s with infinite retry.", fn) + retried_fn = retry(wait_exponential_multiplier=1e3, wait_exponential_max=180e3, + retry_on_exception=cls.exception_filter)(fn) + return retried_fn(*args, **kwargs) + return retry_wrapper @classmethod def caption_strip_class_on_failure(cls, fn: Callable):