(error: any)
| 313 | error.message?.includes('timeout') || |
| 314 | error.message?.includes('canceled') || |
| 315 | error.message?.includes('cancelled') || |
| 316 | error.name === 'AbortError' || |
| 317 | error.code === 'ETIMEDOUT'; |
| 318 | }; |
| 319 | |
| 320 | interface DownloadResult { |
| 321 | mediaGroup: MediaGroup | null; |
| 322 | usedProxy?: string; // 成功时使用的代理 |
| 323 | failureReason?: 'network' | '404' | 'other'; // 失败原因 |
| 324 | hadNetworkFailures?: boolean; // 是否在成功前遇到过网络错误 |
| 325 | failedProxies?: string[]; // 失败的代理列表 |
no outgoing calls
no test coverage detected