|
10 | 10 | CategoriesNotification, |
11 | 11 | ) |
12 | 12 | from mcim_sync.config import Config |
| 13 | +from mcim_sync.utils.constans import ProjectDetail |
13 | 14 | from mcim_sync.sync.curseforge import sync_mod, sync_categories |
14 | 15 | from mcim_sync.checker.curseforge import ( |
15 | 16 | check_curseforge_modids_available, |
@@ -50,23 +51,26 @@ def refresh_curseforge_with_modify_date() -> bool: |
50 | 51 | MAX_WORKERS, |
51 | 52 | "refresh_curseforge", |
52 | 53 | ) |
53 | | - projects_detail_info = [] |
| 54 | + projects_detail_info: List[ProjectDetail] = [] |
54 | 55 | for future in as_completed(curseforge_futures): |
55 | 56 | result = future.result() |
56 | 57 | if result: |
57 | 58 | projects_detail_info.append(result) |
58 | 59 | else: |
59 | 60 | curseforge_pool.shutdown() |
60 | 61 |
|
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) |
62 | 65 | failed_modids = [ |
63 | 66 | modid |
64 | 67 | for modid in curseforge_expired_modids |
65 | | - if modid not in projects_detail_info |
| 68 | + if modid not in success_modids |
66 | 69 | ] |
| 70 | + |
67 | 71 | log.info( |
68 | 72 | 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}, " |
70 | 74 | f"failed modids: {failed_modids if failed_modids else 'None'}" |
71 | 75 | ) |
72 | 76 |
|
@@ -235,27 +239,27 @@ def sync_curseforge_full(): |
235 | 239 | f"All {len(curseforge_futures)} tasks submitted, waiting for completion..." |
236 | 240 | ) |
237 | 241 |
|
238 | | - projects_detail_info = [] |
| 242 | + projects_detail_info: List[ProjectDetail] = [] |
239 | 243 | for future in as_completed(curseforge_futures): |
240 | 244 | result = future.result() |
241 | 245 | if result: |
242 | 246 | projects_detail_info.append(result) |
243 | 247 | else: |
244 | 248 | curseforge_pool.shutdown() |
245 | 249 |
|
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) |
247 | 253 | 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 |
249 | 255 | ] |
250 | 256 |
|
251 | 257 | log.info( |
252 | 258 | 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}, " |
254 | 260 | f"failed modids: {failed_modids if failed_modids else 'None'}" |
255 | 261 | ) |
256 | 262 |
|
257 | | - curseforge_pool.shutdown() |
258 | | - |
259 | 263 | if config.telegram_bot: |
260 | 264 | notification = RefreshNotification( |
261 | 265 | platform=Platform.CURSEFORGE, |
|
0 commit comments