fix(core): 网络模块支持并发请求

This commit is contained in:
DLmaster361
2025-05-30 20:30:23 +08:00
parent 222a3b35a2
commit e3c4b2edc8
8 changed files with 134 additions and 159 deletions

View File

@@ -199,20 +199,22 @@ class Home(QWidget):
elif Config.get(Config.function_HomeImageMode) == "主题图像":
# 从远程服务器获取最新主题图像
Network.set_info(
network = Network.add_task(
mode="get",
url="https://gitee.com/DLmaster_361/AUTO_MAA/raw/server/theme_image.json",
)
Network.start()
Network.loop.exec()
if Network.stutus_code == 200:
theme_image = Network.response_json
network.loop.exec()
network_result = Network.get_result(network)
if network_result["status_code"] == 200:
theme_image = network_result["response_json"]
else:
logger.warning(f"获取最新主题图像时出错:{Network.error_message}")
logger.warning(
f"获取最新主题图像时出错:{network_result['error_message']}"
)
MainInfoBar.push_info_bar(
"warning",
"获取最新主题图像时出错",
f"网络错误:{Network.stutus_code}",
f"网络错误:{network_result['status_code']}",
5000,
)
return None
@@ -236,15 +238,15 @@ class Home(QWidget):
> time_local
):
Network.set_info(
network = Network.add_task(
mode="get_file",
url=theme_image["url"],
path=Config.app_path / "resources/images/Home/BannerTheme.jpg",
)
Network.start()
Network.loop.exec()
network.loop.exec()
network_result = Network.get_result(network)
if Network.stutus_code == 200:
if network_result["status_code"] == 200:
with (Config.app_path / "resources/theme_image.json").open(
mode="w", encoding="utf-8"
@@ -261,11 +263,13 @@ class Home(QWidget):
else:
logger.warning(f"下载最新主题图像时出错:{Network.error_message}")
logger.warning(
f"下载最新主题图像时出错:{network_result['error_message']}"
)
MainInfoBar.push_info_bar(
"warning",
"下载最新主题图像时出错",
f"网络错误:{Network.stutus_code}",
f"网络错误:{network_result['status_code']}",
5000,
)

View File

@@ -333,20 +333,20 @@ class MemberManager(QWidget):
return None
# 从远程服务器获取应用列表
Network.set_info(
network = Network.add_task(
mode="get",
url="https://gitee.com/DLmaster_361/AUTO_MAA/raw/server/apps_info.json",
)
Network.start()
Network.loop.exec()
if Network.stutus_code == 200:
apps_info = Network.response_json
network.loop.exec()
network_result = Network.get_result(network)
if network_result["status_code"] == 200:
apps_info = network_result["response_json"]
else:
logger.warning(f"获取应用列表时出错:{Network.error_message}")
logger.warning(f"获取应用列表时出错:{network_result['error_message']}")
MainInfoBar.push_info_bar(
"warning",
"获取应用列表时出错",
f"网络错误:{Network.stutus_code}",
f"网络错误:{network_result['status_code']}",
5000,
)
return None
@@ -376,19 +376,19 @@ class MemberManager(QWidget):
return None
# 从mirrorc服务器获取最新版本信息
Network.set_info(
network = Network.add_task(
mode="get",
url=f"https://mirrorchyan.com/api/resources/{app_rid}/latest?user_agent=AutoMaaGui&cdk={Crypto.win_decryptor(Config.get(Config.update_MirrorChyanCDK))}&os={apps_info[app_name]["os"]}&arch={apps_info[app_name]["arch"]}&channel=stable",
)
Network.start()
Network.loop.exec()
if Network.stutus_code == 200:
app_info = Network.response_json
network.loop.exec()
network_result = Network.get_result(network)
if network_result["status_code"] == 200:
app_info = network_result["response_json"]
else:
if Network.response_json:
if network_result["response_json"]:
app_info = Network.response_json
app_info = network_result["response_json"]
if app_info["code"] != 0:
@@ -425,11 +425,11 @@ class MemberManager(QWidget):
return None
logger.warning(f"获取版本信息时出错:{Network.error_message}")
logger.warning(f"获取版本信息时出错:{network_result['error_message']}")
MainInfoBar.push_info_bar(
"warning",
"获取版本信息时出错",
f"网络错误:{Network.stutus_code}",
f"网络错误:{network_result['status_code']}",
5000,
)
return None

View File

@@ -262,31 +262,26 @@ class Setting(QWidget):
current_version = list(map(int, Config.VERSION.split(".")))
if Network.if_running and if_show:
MainInfoBar.push_info_bar(
"warning", "请求速度过快", "上个网络请求还未结束,请稍等片刻", 5000
)
return None
# 从远程服务器获取最新版本信息
Network.set_info(
network = Network.add_task(
mode="get",
url=f"https://mirrorchyan.com/api/resources/AUTO_MAA/latest?user_agent=AutoMaaGui&current_version={version_text(current_version)}&cdk={Crypto.win_decryptor(Config.get(Config.update_MirrorChyanCDK))}&channel={Config.get(Config.update_UpdateType)}",
)
Network.start()
Network.loop.exec()
if Network.stutus_code == 200:
version_info: Dict[str, Union[int, str, Dict[str, str]]] = (
Network.response_json
)
network.loop.exec()
network_result = Network.get_result(network)
if network_result["status_code"] == 200:
version_info: Dict[str, Union[int, str, Dict[str, str]]] = network_result[
"response_json"
]
else:
if Network.response_json:
if network_result["response_json"]:
version_info = Network.response_json
version_info = network_result["response_json"]
if version_info["code"] != 0:
logger.error(f"获取版本信息时出错:{version_info["msg"]}")
logger.error(f"获取版本信息时出错:{version_info['msg']}")
error_remark_dict = {
1001: "获取版本信息的URL参数不正确",
@@ -319,11 +314,11 @@ class Setting(QWidget):
return None
logger.warning(f"获取版本信息时出错:{Network.error_message}")
logger.warning(f"获取版本信息时出错:{network_result['error_message']}")
MainInfoBar.push_info_bar(
"warning",
"获取版本信息时出错",
f"网络错误:{Network.stutus_code}",
f"网络错误:{network_result['status_code']}",
5000,
)
return None
@@ -406,20 +401,22 @@ class Setting(QWidget):
else:
# 从远程服务器获取代理信息
Network.set_info(
network = Network.add_task(
mode="get",
url="https://gitee.com/DLmaster_361/AUTO_MAA/raw/server/download_info.json",
)
Network.start()
Network.loop.exec()
if Network.stutus_code == 200:
download_info = Network.response_json
network.loop.exec()
network_result = Network.get_result(network)
if network_result["status_code"] == 200:
download_info = network_result["response_json"]
else:
logger.warning(f"获取应用列表时出错:{Network.error_message}")
logger.warning(
f"获取应用列表时出错:{network_result['error_message']}"
)
MainInfoBar.push_info_bar(
"warning",
"获取应用列表时出错",
f"网络错误:{Network.stutus_code}",
f"网络错误:{network_result['status_code']}",
5000,
)
return None
@@ -488,20 +485,20 @@ class Setting(QWidget):
"""显示公告"""
# 从远程服务器获取最新公告
Network.set_info(
network = Network.add_task(
mode="get",
url="https://gitee.com/DLmaster_361/AUTO_MAA/raw/server/notice.json",
)
Network.start()
Network.loop.exec()
if Network.stutus_code == 200:
notice = Network.response_json
network.loop.exec()
network_result = Network.get_result(network)
if network_result["status_code"] == 200:
notice = network_result["response_json"]
else:
logger.warning(f"获取最新公告时出错:{Network.error_message}")
logger.warning(f"获取最新公告时出错:{network_result['error_message']}")
MainInfoBar.push_info_bar(
"warning",
"获取最新公告时出错",
f"网络错误:{Network.stutus_code}",
f"网络错误:{network_result['status_code']}",
5000,
)
return None