File size: 2,981 Bytes
f110811
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
/**

 * Script para probar cookies rate-limited y reactivarlas si ya no est谩n limitadas

 * Este script puede ser ejecutado manualmente o programado con cron

 */

const authCookieDB = require('../config/auth_cookies');
// Importar funciones necesarias
const { testRateLimitedCookie } = require('../utils/utils');

async function testRateLimitedCookies() {
    console.log('[RECOVERY] Iniciando prueba de cookies rate-limited...');
    
    // Obtener todas las cookies que necesitan ser probadas
    const cookiesForTesting = authCookieDB.getCookiesForTesting();
    
    if (cookiesForTesting.length === 0) {
        console.log('[RECOVERY] No hay cookies rate-limited que necesiten ser probadas');
        return;
    }
    
    console.log(`[RECOVERY] Encontradas ${cookiesForTesting.length} cookies para probar`);
    
    // Probar cada cookie
    for (const cookie of cookiesForTesting) {
        console.log(`[RECOVERY] Probando cookie: ${cookie.name} (${cookie.id.substring(0, 8)}...)`);
        
        try {
            const isWorking = await testRateLimitedCookie(cookie.id);
            
            if (isWorking) {
                console.log(`[RECOVERY] La cookie ${cookie.name} (${cookie.id.substring(0, 8)}...) ha sido reactivada`);
            } else {
                console.log(`[RECOVERY] La cookie ${cookie.name} (${cookie.id.substring(0, 8)}...) sigue rate-limited`);
            }
        } catch (error) {
            console.error(`[RECOVERY] Error al probar la cookie ${cookie.name}:`, error.message);
            // Actualizar el tiempo de la pr贸xima prueba
            authCookieDB.updateNextTestTime(cookie.id);
        }
    }
    
    console.log('[RECOVERY] Prueba de cookies rate-limited completada');
}

// Verificar tambi茅n cookies que hayan superado el tiempo de rate limit (12 horas)
function checkExpiredRateLimits() {
    console.log('[RECOVERY] Verificando cookies con rate limit expirado...');
    
    const updated = authCookieDB.checkExpiredRateLimits();
    
    if (updated) {
        console.log('[RECOVERY] Se reactivaron cookies con rate limit expirado');
    } else {
        console.log('[RECOVERY] No se encontraron cookies con rate limit expirado');
    }
}

// Ejecutar ambas funciones
async function main() {
    try {
        // Primero verificar cookies con rate limit expirado
        checkExpiredRateLimits();
        
        // Luego probar las cookies que necesitan ser probadas
        await testRateLimitedCookies();
        
        console.log('[RECOVERY] Proceso completado exitosamente');
    } catch (error) {
        console.error('[RECOVERY] Error en el proceso de recuperaci贸n:', error.message);
    }
}

// Si se ejecuta directamente, ejecutar la funci贸n principal
if (require.main === module) {
    main().catch(console.error);
}

module.exports = {
    testRateLimitedCookies,
    checkExpiredRateLimits,
    main
};