修复插件商店获取插件信息提示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:
尝生 2025-06-09 14:41:19 +08:00 committed by GitHub
parent e7bae73c8f
commit 46a652bb27
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
2 changed files with 12 additions and 3 deletions

View File

@ -91,8 +91,8 @@ class ShopManage:
"plugins.json"
)
extra_github_url = await extra_github_repo.get_raw_download_urls("plugins.json")
res = await AsyncHttpx.get(default_github_url)
res2 = await AsyncHttpx.get(extra_github_url)
res = await AsyncHttpx.get(default_github_url, check_status_code=200)
res2 = await AsyncHttpx.get(extra_github_url, check_status_code=200)
# 检查请求结果
if res.status_code != 200 or res2.status_code != 200:

View File

@ -43,6 +43,7 @@ class AsyncHttpx:
use_proxy: bool = True,
proxy: dict[str, str] | None = None,
timeout: int = 30, # noqa: ASYNC109
check_status_code: int | None = None,
**kwargs,
) -> Response:
"""Get
@ -56,6 +57,7 @@ class AsyncHttpx:
use_proxy: 使用默认代理
proxy: 指定代理
timeout: 超时时间
check_status_code: 检查状态码
"""
urls = [url] if isinstance(url, str) else url
return await cls._get_first_successful(
@ -67,6 +69,7 @@ class AsyncHttpx:
use_proxy=use_proxy,
proxy=proxy,
timeout=timeout,
check_status_code=check_status_code,
**kwargs,
)
@ -74,12 +77,18 @@ class AsyncHttpx:
async def _get_first_successful(
cls,
urls: list[str],
check_status_code: int | None = None,
**kwargs,
) -> Response:
last_exception = None
for url in urls:
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:
last_exception = e
if url != urls[-1]: