@@ -2528,4 +2528,74 @@ function showVerifyModalForAllKeys(allKeys) {
25282528
25292529 // 显示模态框
25302530 modalElement . classList . remove ( "hidden" ) ;
2531+ }
2532+
2533+
2534+ // 执行验证所有密钥
2535+ async function executeVerifyAllKeys ( allKeys ) {
2536+ closeVerifyModal ( ) ;
2537+
2538+ // 获取批次大小
2539+ const batchSizeInput = document . getElementById ( "batchSize" ) ;
2540+ const batchSize = parseInt ( batchSizeInput . value , 10 ) || 10 ;
2541+
2542+ // 开始批量验证
2543+ showProgressModal ( `批量验证所有 ${ allKeys . length } 个密钥` ) ;
2544+
2545+ let allSuccessfulKeys = [ ] ;
2546+ let allFailedKeys = { } ;
2547+ let processedCount = 0 ;
2548+
2549+ for ( let i = 0 ; i < allKeys . length ; i += batchSize ) {
2550+ const batch = allKeys . slice ( i , i + batchSize ) ;
2551+ const progressText = `正在验证批次 ${ Math . floor ( i / batchSize ) + 1 } / ${ Math . ceil ( allKeys . length / batchSize ) } (密钥 ${ i + 1 } -${ Math . min ( i + batchSize , allKeys . length ) } )` ;
2552+
2553+ updateProgress ( i , allKeys . length , progressText ) ;
2554+ addProgressLog ( `处理批次: ${ batch . length } 个密钥...` ) ;
2555+
2556+ try {
2557+ const options = {
2558+ method : "POST" ,
2559+ headers : { "Content-Type" : "application/json" } ,
2560+ body : JSON . stringify ( { keys : batch } ) ,
2561+ } ;
2562+ const data = await fetchAPI ( `/gemini/v1beta/verify-selected-keys` , options ) ;
2563+
2564+ if ( data ) {
2565+ if ( data . successful_keys && data . successful_keys . length > 0 ) {
2566+ allSuccessfulKeys = allSuccessfulKeys . concat ( data . successful_keys ) ;
2567+ addProgressLog ( `✅ 批次成功: ${ data . successful_keys . length } 个` ) ;
2568+ }
2569+ if ( data . failed_keys && Object . keys ( data . failed_keys ) . length > 0 ) {
2570+ Object . assign ( allFailedKeys , data . failed_keys ) ;
2571+ addProgressLog ( `❌ 批次失败: ${ Object . keys ( data . failed_keys ) . length } 个` , true ) ;
2572+ }
2573+ } else {
2574+ addProgressLog ( `- 批次返回空数据` , true ) ;
2575+ }
2576+ } catch ( apiError ) {
2577+ addProgressLog ( `❌ 批次请求失败: ${ apiError . message } ` , true ) ;
2578+ // 将此批次的所有密钥标记为失败
2579+ batch . forEach ( key => {
2580+ allFailedKeys [ key ] = apiError . message ;
2581+ } ) ;
2582+ }
2583+ processedCount += batch . length ;
2584+ updateProgress ( processedCount , allKeys . length , progressText ) ;
2585+ }
2586+
2587+ updateProgress (
2588+ allKeys . length ,
2589+ allKeys . length ,
2590+ `所有批次验证完成!`
2591+ ) ;
2592+
2593+ // 关闭进度模态框并显示最终结果
2594+ closeProgressModal ( false ) ;
2595+ showVerificationResultModal ( {
2596+ successful_keys : allSuccessfulKeys ,
2597+ failed_keys : allFailedKeys ,
2598+ valid_count : allSuccessfulKeys . length ,
2599+ invalid_count : Object . keys ( allFailedKeys ) . length
2600+ } ) ;
25312601}
0 commit comments