Skip to content

Commit 485fe24

Browse files
committed
fix: task 结果统计错误
1 parent efcf57f commit 485fe24

File tree

1 file changed

+14
-10
lines changed

1 file changed

+14
-10
lines changed

mcim_sync/tasks/curseforge.py

Lines changed: 14 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -10,6 +10,7 @@
1010
CategoriesNotification,
1111
)
1212
from mcim_sync.config import Config
13+
from mcim_sync.utils.constans import ProjectDetail
1314
from mcim_sync.sync.curseforge import sync_mod, sync_categories
1415
from mcim_sync.checker.curseforge import (
1516
check_curseforge_modids_available,
@@ -50,23 +51,26 @@ def refresh_curseforge_with_modify_date() -> bool:
5051
MAX_WORKERS,
5152
"refresh_curseforge",
5253
)
53-
projects_detail_info = []
54+
projects_detail_info: List[ProjectDetail] = []
5455
for future in as_completed(curseforge_futures):
5556
result = future.result()
5657
if result:
5758
projects_detail_info.append(result)
5859
else:
5960
curseforge_pool.shutdown()
6061

61-
failed_count = len(curseforge_expired_modids) - len(projects_detail_info)
62+
success_modids = [project.id for project in projects_detail_info if project]
63+
64+
failed_count = len(curseforge_expired_modids) - len(success_modids)
6265
failed_modids = [
6366
modid
6467
for modid in curseforge_expired_modids
65-
if modid not in projects_detail_info
68+
if modid not in success_modids
6669
]
70+
6771
log.info(
6872
f"CurseForge expired data sync finished, total: {len(curseforge_expired_modids)}, "
69-
f"success: {len(projects_detail_info)}, failed: {failed_count}, "
73+
f"success: {len(success_modids)}, failed: {failed_count}, "
7074
f"failed modids: {failed_modids if failed_modids else 'None'}"
7175
)
7276

@@ -235,27 +239,27 @@ def sync_curseforge_full():
235239
f"All {len(curseforge_futures)} tasks submitted, waiting for completion..."
236240
)
237241

238-
projects_detail_info = []
242+
projects_detail_info: List[ProjectDetail] = []
239243
for future in as_completed(curseforge_futures):
240244
result = future.result()
241245
if result:
242246
projects_detail_info.append(result)
243247
else:
244248
curseforge_pool.shutdown()
245249

246-
failed_count = len(curseforge_data) - len(projects_detail_info)
250+
success_modids = [project.id for project in projects_detail_info if project]
251+
252+
failed_count = len(curseforge_data) - len(success_modids)
247253
failed_modids = [
248-
modid for modid in curseforge_data if modid not in projects_detail_info
254+
modid for modid in curseforge_data if modid not in success_modids
249255
]
250256

251257
log.info(
252258
f"CurseForge full sync finished, total: {len(curseforge_data)}, "
253-
f"success: {len(projects_detail_info)}, failed: {failed_count}, "
259+
f"success: {len(success_modids)}, failed: {failed_count}, "
254260
f"failed modids: {failed_modids if failed_modids else 'None'}"
255261
)
256262

257-
curseforge_pool.shutdown()
258-
259263
if config.telegram_bot:
260264
notification = RefreshNotification(
261265
platform=Platform.CURSEFORGE,

0 commit comments

Comments
 (0)