mirror of
https://github.com/jxxghp/MoviePilot.git
synced 2026-06-08 09:10:32 +08:00
fix RetryException
This commit is contained in:
@@ -20,6 +20,10 @@ from app.utils.http import RequestUtils
|
||||
from app.utils.string import StringUtils
|
||||
|
||||
|
||||
class RetryException(Exception):
|
||||
pass
|
||||
|
||||
|
||||
class Telegram:
|
||||
_ds_url = f"http://127.0.0.1:{settings.PORT}/api/v1/message?token={settings.API_TOKEN}"
|
||||
_event = Event()
|
||||
@@ -516,7 +520,7 @@ class Telegram:
|
||||
logger.error(f"编辑消息失败:{str(e)}")
|
||||
return False
|
||||
|
||||
@retry(Exception, logger=logger)
|
||||
@retry(RetryException, logger=logger)
|
||||
def __send_request(self, userid: Optional[str] = None, image="", caption="",
|
||||
reply_markup: Optional[InlineKeyboardMarkup] = None) -> bool:
|
||||
"""
|
||||
@@ -541,7 +545,7 @@ class Telegram:
|
||||
parse_mode="Markdown",
|
||||
reply_markup=reply_markup)
|
||||
if ret is None:
|
||||
raise Exception("发送图片消息失败")
|
||||
raise RetryException("发送图片消息失败")
|
||||
return True
|
||||
# 按4096分段循环发送消息
|
||||
ret = None
|
||||
@@ -557,7 +561,7 @@ class Telegram:
|
||||
parse_mode="Markdown",
|
||||
reply_markup=reply_markup)
|
||||
if ret is None:
|
||||
raise Exception("发送文本消息失败")
|
||||
raise RetryException("发送文本消息失败")
|
||||
return True if ret else False
|
||||
|
||||
def register_commands(self, commands: Dict[str, dict]):
|
||||
|
||||
@@ -15,6 +15,10 @@ from app.utils.url import UrlUtils
|
||||
lock = threading.Lock()
|
||||
|
||||
|
||||
class RetryException(Exception):
|
||||
pass
|
||||
|
||||
|
||||
class WeChat:
|
||||
# 企业微信Token
|
||||
_access_token = None
|
||||
@@ -68,7 +72,7 @@ class WeChat:
|
||||
"""
|
||||
return True if self.__get_access_token() else False
|
||||
|
||||
@retry(Exception, logger=logger)
|
||||
@retry(RetryException, logger=logger)
|
||||
def __get_access_token(self, force=False):
|
||||
"""
|
||||
获取微信Token
|
||||
@@ -84,23 +88,19 @@ class WeChat:
|
||||
if not token_flag or force:
|
||||
if not self._corpid or not self._appsecret:
|
||||
return None
|
||||
try:
|
||||
token_url = self._token_url.format(corpid=self._corpid, corpsecret=self._appsecret)
|
||||
res = RequestUtils().get_res(token_url)
|
||||
if res:
|
||||
ret_json = res.json()
|
||||
if ret_json.get("errcode") == 0:
|
||||
self._access_token = ret_json.get("access_token")
|
||||
self._expires_in = ret_json.get("expires_in")
|
||||
self._access_token_time = datetime.now()
|
||||
elif res is not None:
|
||||
logger.error(f"获取微信access_token失败,错误码:{res.status_code},错误原因:{res.reason}")
|
||||
else:
|
||||
logger.error(f"获取微信access_token失败,未获取到返回信息")
|
||||
raise Exception("获取微信access_token失败,网络连接失败")
|
||||
except Exception as e:
|
||||
logger.error(f"获取微信access_token失败,错误信息:{str(e)}")
|
||||
return None
|
||||
token_url = self._token_url.format(corpid=self._corpid, corpsecret=self._appsecret)
|
||||
res = RequestUtils().get_res(token_url)
|
||||
if res:
|
||||
ret_json = res.json()
|
||||
if ret_json.get("errcode") == 0:
|
||||
self._access_token = ret_json.get("access_token")
|
||||
self._expires_in = ret_json.get("expires_in")
|
||||
self._access_token_time = datetime.now()
|
||||
elif res is not None:
|
||||
logger.error(f"获取微信access_token失败,错误码:{res.status_code},错误原因:{res.reason}")
|
||||
else:
|
||||
logger.error(f"获取微信access_token失败,未获取到返回信息")
|
||||
raise RetryException("获取微信access_token失败,重试中...")
|
||||
return self._access_token
|
||||
|
||||
@staticmethod
|
||||
@@ -307,7 +307,8 @@ class WeChat:
|
||||
return False
|
||||
|
||||
def send_torrents_msg(self, torrents: List[Context],
|
||||
userid: Optional[str] = None, title: Optional[str] = None, link: Optional[str] = None) -> Optional[bool]:
|
||||
userid: Optional[str] = None, title: Optional[str] = None,
|
||||
link: Optional[str] = None) -> Optional[bool]:
|
||||
"""
|
||||
发送列表消息
|
||||
"""
|
||||
@@ -359,7 +360,7 @@ class WeChat:
|
||||
logger.error(f"发送消息失败:{e}")
|
||||
return False
|
||||
|
||||
@retry(Exception, logger=logger)
|
||||
@retry(RetryException, logger=logger)
|
||||
def __post_request(self, url: str, req_json: dict) -> bool:
|
||||
"""
|
||||
向微信发送请求
|
||||
@@ -384,7 +385,7 @@ class WeChat:
|
||||
self.__get_access_token(force=True)
|
||||
error_msg = (f"access_token 已过期,尝试重新获取 access_token,"
|
||||
f"errcode: {ret_json.get('errcode')}, errmsg: {ret_json.get('errmsg')}")
|
||||
raise Exception(error_msg)
|
||||
raise RetryException(error_msg)
|
||||
else:
|
||||
logger.error(f"发送请求失败,错误信息:{ret_json.get('errmsg')}")
|
||||
return False
|
||||
@@ -464,7 +465,6 @@ class WeChat:
|
||||
})
|
||||
except Exception as e:
|
||||
logger.error(f"创建菜单失败:{e}")
|
||||
return False
|
||||
|
||||
def delete_menus(self):
|
||||
"""
|
||||
@@ -477,4 +477,3 @@ class WeChat:
|
||||
RequestUtils().get(req_url)
|
||||
except Exception as e:
|
||||
logger.error(f"删除菜单失败:{e}")
|
||||
return False
|
||||
|
||||
Reference in New Issue
Block a user