mirror of
https://github.com/zhenxun-org/zhenxun_bot.git
synced 2025-12-15 06:12:53 +08:00
修复插件商店获取插件信息提示302异常 (#1904)
* 由于调用加速地址的时候状态码为302会被认为正常返回,但是所有的加速地址又没有调用完毕导致的插件商店经常报错302异常
* 优化异常代码行
* 🚨 auto fix by pre-commit hooks
---------
Co-authored-by: pre-commit-ci[bot] <66853113+pre-commit-ci[bot]@users.noreply.github.com>
This commit is contained in:
parent
e7bae73c8f
commit
46a652bb27
@ -91,8 +91,8 @@ class ShopManage:
|
|||||||
"plugins.json"
|
"plugins.json"
|
||||||
)
|
)
|
||||||
extra_github_url = await extra_github_repo.get_raw_download_urls("plugins.json")
|
extra_github_url = await extra_github_repo.get_raw_download_urls("plugins.json")
|
||||||
res = await AsyncHttpx.get(default_github_url)
|
res = await AsyncHttpx.get(default_github_url, check_status_code=200)
|
||||||
res2 = await AsyncHttpx.get(extra_github_url)
|
res2 = await AsyncHttpx.get(extra_github_url, check_status_code=200)
|
||||||
|
|
||||||
# 检查请求结果
|
# 检查请求结果
|
||||||
if res.status_code != 200 or res2.status_code != 200:
|
if res.status_code != 200 or res2.status_code != 200:
|
||||||
|
|||||||
@ -43,6 +43,7 @@ class AsyncHttpx:
|
|||||||
use_proxy: bool = True,
|
use_proxy: bool = True,
|
||||||
proxy: dict[str, str] | None = None,
|
proxy: dict[str, str] | None = None,
|
||||||
timeout: int = 30, # noqa: ASYNC109
|
timeout: int = 30, # noqa: ASYNC109
|
||||||
|
check_status_code: int | None = None,
|
||||||
**kwargs,
|
**kwargs,
|
||||||
) -> Response:
|
) -> Response:
|
||||||
"""Get
|
"""Get
|
||||||
@ -56,6 +57,7 @@ class AsyncHttpx:
|
|||||||
use_proxy: 使用默认代理
|
use_proxy: 使用默认代理
|
||||||
proxy: 指定代理
|
proxy: 指定代理
|
||||||
timeout: 超时时间
|
timeout: 超时时间
|
||||||
|
check_status_code: 检查状态码
|
||||||
"""
|
"""
|
||||||
urls = [url] if isinstance(url, str) else url
|
urls = [url] if isinstance(url, str) else url
|
||||||
return await cls._get_first_successful(
|
return await cls._get_first_successful(
|
||||||
@ -67,6 +69,7 @@ class AsyncHttpx:
|
|||||||
use_proxy=use_proxy,
|
use_proxy=use_proxy,
|
||||||
proxy=proxy,
|
proxy=proxy,
|
||||||
timeout=timeout,
|
timeout=timeout,
|
||||||
|
check_status_code=check_status_code,
|
||||||
**kwargs,
|
**kwargs,
|
||||||
)
|
)
|
||||||
|
|
||||||
@ -74,12 +77,18 @@ class AsyncHttpx:
|
|||||||
async def _get_first_successful(
|
async def _get_first_successful(
|
||||||
cls,
|
cls,
|
||||||
urls: list[str],
|
urls: list[str],
|
||||||
|
check_status_code: int | None = None,
|
||||||
**kwargs,
|
**kwargs,
|
||||||
) -> Response:
|
) -> Response:
|
||||||
last_exception = None
|
last_exception = None
|
||||||
for url in urls:
|
for url in urls:
|
||||||
try:
|
try:
|
||||||
return await cls._get_single(url, **kwargs)
|
logger.info(f"开始获取 {url}..")
|
||||||
|
response = await cls._get_single(url, **kwargs)
|
||||||
|
if check_status_code and response.status_code != check_status_code:
|
||||||
|
status_code = response.status_code
|
||||||
|
raise Exception(f"状态码错误:{status_code}!={check_status_code}")
|
||||||
|
return response
|
||||||
except Exception as e:
|
except Exception as e:
|
||||||
last_exception = e
|
last_exception = e
|
||||||
if url != urls[-1]:
|
if url != urls[-1]:
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user