[07:00:09] [INFO] === FETCHER v2.0 (Multi-API Fallback) INICIADO ===
[07:00:09] [INFO] 2 APIs disponibles: apifootball.com → TheSportsDB (Sin key)
[07:00:09] [INFO] Buscando: 2026-05-14
[07:00:09] [WARN] apifootball: 404
[07:00:11] [WARN] apifootball: 404
[07:00:12] [INFO] ✓ apifootball.com respondió con 3 partidos
[07:00:12] [INFO] Liga 302: 3 partidos
[07:00:14] [WARN] apifootball: 404
[07:00:15] [WARN] apifootball: 404
[07:00:16] [WARN] apifootball: 404
[07:00:18] [WARN] apifootball: 404
[07:00:19] [WARN] apifootball: 404
[07:00:21] [WARN] apifootball: 404
[07:00:22] [WARN] apifootball: 404
[07:00:23] [WARN] apifootball: 404
[07:00:25] [WARN] apifootball: 404
[07:00:26] [WARN] apifootball: 404
[07:00:28] [INFO] ✓ apifootball.com respondió con 14 partidos
[07:00:28] [INFO] Liga 332: 14 partidos
[07:00:29] [WARN] apifootball: 404
[07:00:30] [WARN] apifootball: 404
[07:00:32] [WARN] apifootball: 404
[07:00:33] [WARN] apifootball: 404
[07:00:34] [WARN] apifootball: 404
[07:00:36] [WARN] apifootball: 404
[07:00:37] [INFO] ✓ apifootball.com respondió con 2 partidos
[07:00:37] [INFO] Liga 337: 2 partidos
[07:00:39] [WARN] apifootball: 404
[07:00:40] [WARN] apifootball: 404
[07:00:41] [INFO] Sin partidos para 2026-05-14
[07:00:41] [INFO] Buscando: 2026-05-15
[07:00:41] [WARN] apifootball: 404
[07:00:43] [INFO] ✓ apifootball.com respondió con 1 partidos
[07:00:43] [INFO] Liga 152: 1 partidos
[07:00:44] [WARN] apifootball: 404
[07:00:46] [WARN] apifootball: 404
[07:00:47] [WARN] apifootball: 404
[07:00:48] [INFO] ✓ apifootball.com respondió con 1 partidos
[07:00:48] [INFO] Liga 168: 1 partidos
[07:00:48] [INFO]   [apifootball] St Etienne vs Rodez (ID:764078)
[07:00:53] [INFO]   ✓ Guardado + H2H + Cuotas
[07:00:55] [WARN] apifootball: 404
[07:00:56] [WARN] apifootball: 404
[07:00:57] [WARN] apifootball: 404
[07:00:59] [INFO] ✓ apifootball.com respondió con 1 partidos
[07:00:59] [INFO] Liga 14: 1 partidos
[07:01:00] [WARN] apifootball: 404
[07:01:02] [WARN] apifootball: 404
[07:01:03] [WARN] apifootball: 404
[07:01:04] [WARN] apifootball: 404
[07:01:06] [WARN] apifootball: 404
[07:01:07] [INFO] ✓ apifootball.com respondió con 1 partidos
[07:01:07] [INFO] Liga 140: 1 partidos
[07:01:09] [WARN] apifootball: 404
[07:01:10] [INFO] ✓ apifootball.com respondió con 1 partidos
[07:01:10] [INFO] Liga 142: 1 partidos
[07:01:10] [INFO]   [apifootball] Municipal Limeno vs FAS (ID:764077)
[07:01:15] [INFO]   ✓ Guardado + H2H + Cuotas
[07:01:16] [WARN] apifootball: 404
[07:01:18] [WARN] apifootball: 404
[07:01:19] [WARN] apifootball: 404
[07:01:20] [WARN] apifootball: 404
[07:01:22] [WARN] apifootball: 404
[07:01:23] [INFO] ✓ 2026-05-15: 2 partidos guardados
[07:01:23] [INFO] === FETCHER FINALIZADO | Guardados: 2 ===
[11:56:20] [INFO] === AI PROCESSOR v2.0 (Workers Dinámicos) ===
[11:56:20] [INFO] 4 workers activos: Gemini 2.0 Flash Lite, Gemini 2.5 Flash Lite, Groq Llama 3.3 70B, OpenAI GPT-4o Mini
[11:56:20] [INFO] 2 partidos a procesar.
[11:56:20] [INFO] Procesando: Hassania Agadir vs FAR Rabat (ID: 762347)
[11:56:20] [INFO] → Intentando worker: Gemini 2.0 Flash Lite
[11:56:20] [INFO] === FETCHER v2.0 (Multi-API Fallback) INICIADO ===
[11:56:20] [INFO] 2 APIs disponibles: apifootball.com → TheSportsDB (Sin key)
[11:56:20] [INFO] Buscando: 2026-05-14
[11:56:20] [INFO] === CONSENSUS INICIADO ===
[11:56:20] [INFO] No hay partidos listos para consenso.
[11:56:20] [WARN] HTTP 429 en generativelanguage.googleapis.com | {"errno":0}
[11:56:20] [WARN] Rate limit (429) en Gemini 2.0 Flash Lite
[11:56:20] [WARN] ✗ Gemini 2.0 Flash Lite falló, probando siguiente...
[11:56:20] [INFO] ============================================
[11:56:20] [INFO] CRON MAESTRO INICIADO [completo]
[11:56:20] [INFO] ============================================
[11:56:20] [INFO] Evaluando estado del sistema...
[11:56:20] [INFO] Partidos encontrados para 2026-05-14: 19
[11:56:20] [INFO] Partidos sin análisis IA: 19. Ejecutando ANALYZE...
[11:56:20] [INFO] → Ejecutando: /home/hackruzc/web.hackruz.com/ai_processor.php
[11:56:20] [ERROR] Error en analyze: syntax error, unexpected token "." | {"file":"\/home\/hackruzc\/web.hackruz.com\/ai_processor.php","line":193}
[11:56:20] [INFO] Todos los partidos tienen veredicto final.
[11:56:20] [INFO] RESUMEN FINAL → Partidos: 19 | Analizados: 0 | Con veredicto: 0
[11:56:20] [INFO] CRON FINALIZADO en 0s
[11:56:20] [INFO] ============================================
[11:56:21] [WARN] apifootball: 404
[11:56:22] [WARN] apifootball: 404
[11:56:22] [INFO] → Intentando worker: Gemini 2.5 Flash Lite
[11:56:23] [WARN] HTTP 403 en generativelanguage.googleapis.com | {"errno":0}
[11:56:23] [WARN] ✗ Gemini 2.5 Flash Lite falló, probando siguiente...
[11:56:24] [INFO] ✓ apifootball.com respondió con 3 partidos
[11:56:24] [INFO] Liga 302: 3 partidos
[11:56:25] [INFO] → Intentando worker: Groq Llama 3.3 70B
[11:56:25] [WARN] apifootball: 404
[11:56:25] [INFO] ✓ Groq Llama 3.3 70B respondió: no_apostar (0%)
[11:56:26] [WARN] apifootball: 404
[11:56:28] [WARN] apifootball: 404
[11:56:29] [WARN] apifootball: 404
[11:56:30] [WARN] apifootball: 404
[11:56:32] [WARN] apifootball: 404
[11:56:33] [WARN] apifootball: 404
[11:56:35] [WARN] apifootball: 404
[11:56:36] [WARN] apifootball: 404
[11:56:37] [WARN] apifootball: 404
[11:56:39] [INFO] ✓ apifootball.com respondió con 14 partidos
[11:56:39] [INFO] Liga 332: 14 partidos
[11:56:40] [WARN] apifootball: 404
[11:56:42] [WARN] apifootball: 404
[11:56:43] [WARN] apifootball: 404
[11:56:45] [WARN] apifootball: 404
[11:56:46] [WARN] apifootball: 404
[11:56:47] [WARN] apifootball: 404
[11:56:49] [INFO] ✓ apifootball.com respondió con 2 partidos
[11:56:49] [INFO] Liga 337: 2 partidos
[11:56:50] [WARN] apifootball: 404
[11:56:51] [WARN] apifootball: 404
[11:56:52] [INFO] Sin partidos para 2026-05-14
[11:56:52] [INFO] Buscando: 2026-05-15
[11:56:53] [WARN] apifootball: 404
[11:56:54] [INFO] ✓ apifootball.com respondió con 1 partidos
[11:56:54] [INFO] Liga 152: 1 partidos
[11:56:55] [INFO] Procesando: West Ham vs Arsenal (ID: 619816)
[11:56:55] [INFO] → Intentando worker: Gemini 2.0 Flash Lite
[11:56:55] [WARN] HTTP 429 en generativelanguage.googleapis.com | {"errno":0}
[11:56:55] [WARN] Rate limit (429) en Gemini 2.0 Flash Lite
[11:56:55] [WARN] ✗ Gemini 2.0 Flash Lite falló, probando siguiente...
[11:56:56] [WARN] apifootball: 404
[11:56:57] [WARN] apifootball: 404
[11:56:57] [INFO] → Intentando worker: Gemini 2.5 Flash Lite
[11:56:57] [WARN] HTTP 403 en generativelanguage.googleapis.com | {"errno":0}
[11:56:57] [WARN] ✗ Gemini 2.5 Flash Lite falló, probando siguiente...
[11:56:58] [WARN] apifootball: 404
[11:56:59] [INFO] → Intentando worker: Groq Llama 3.3 70B
[11:57:00] [INFO] ✓ apifootball.com respondió con 1 partidos
[11:57:00] [INFO] Liga 168: 1 partidos
[11:57:00] [INFO] ✓ Groq Llama 3.3 70B respondió: no_apostar (0%)
[11:57:00] [INFO] Quedan 100 pendientes para próxima ejecución.
[11:57:00] [INFO] === AI PROCESSOR FINALIZADO ===
[11:57:01] [WARN] apifootball: 404
[11:57:03] [WARN] apifootball: 404
[11:57:04] [WARN] apifootball: 404
[11:57:05] [INFO] ✓ apifootball.com respondió con 1 partidos
[11:57:05] [INFO] Liga 14: 1 partidos
[11:57:07] [WARN] apifootball: 404
[11:57:08] [WARN] apifootball: 404
[11:57:09] [WARN] apifootball: 404
[11:57:11] [WARN] apifootball: 404
[11:57:12] [WARN] apifootball: 404
[11:57:14] [INFO] ✓ apifootball.com respondió con 1 partidos
[11:57:14] [INFO] Liga 140: 1 partidos
[11:57:15] [WARN] apifootball: 404
[11:57:16] [INFO] ✓ apifootball.com respondió con 1 partidos
[11:57:16] [INFO] Liga 142: 1 partidos
[11:57:18] [WARN] apifootball: 404
[11:57:19] [WARN] apifootball: 404
[11:57:21] [WARN] apifootball: 404
[11:57:22] [WARN] apifootball: 404
[11:57:23] [WARN] apifootball: 404
[11:57:24] [INFO] Sin partidos para 2026-05-15
[11:57:24] [INFO] Buscando: 2026-05-16
[11:57:25] [WARN] apifootball: 404
[11:57:26] [WARN] apifootball: 404
[11:57:27] [WARN] apifootball: 404
[11:57:29] [WARN] apifootball: 404
[11:57:30] [INFO] ✓ apifootball.com respondió con 9 partidos
[11:57:30] [INFO] Liga 175: 9 partidos
[11:57:32] [WARN] apifootball: 404
[11:57:33] [WARN] apifootball: 404
[11:57:35] [WARN] apifootball: 404
[11:57:36] [WARN] apifootball: 404
[11:57:37] [WARN] apifootball: 404
[11:57:39] [INFO] ✓ apifootball.com respondió con 1 partidos
[11:57:39] [INFO] Liga 11: 1 partidos
[11:57:40] [WARN] apifootball: 404
[11:57:41] [INFO] ✓ apifootball.com respondió con 4 partidos
[11:57:41] [INFO] Liga 333: 4 partidos
[11:57:43] [INFO] ✓ apifootball.com respondió con 1 partidos
[11:57:43] [INFO] Liga 332: 1 partidos
[11:57:44] [WARN] apifootball: 404
[11:57:46] [INFO] ✓ apifootball.com respondió con 3 partidos
[11:57:46] [INFO] Liga 140: 3 partidos
[11:57:47] [WARN] apifootball: 404
[11:57:48] [WARN] apifootball: 404
[11:57:50] [WARN] apifootball: 404
[11:57:51] [WARN] apifootball: 404
[11:57:53] [INFO] ✓ apifootball.com respondió con 1 partidos
[11:57:53] [INFO] Liga 337: 1 partidos
[11:57:54] [INFO] ✓ apifootball.com respondió con 4 partidos
[11:57:54] [INFO] Liga 136: 4 partidos
[11:57:55] [WARN] apifootball: 404
[11:57:56] [INFO] Sin partidos para 2026-05-16
[11:57:56] [INFO] Buscando: 2026-05-17
[11:57:57] [WARN] apifootball: 404
[11:57:58] [INFO] ✓ apifootball.com respondió con 6 partidos
[11:57:58] [INFO] Liga 152: 6 partidos
[11:58:00] [INFO] ✓ apifootball.com respondió con 10 partidos
[11:58:00] [INFO] Liga 302: 10 partidos
[11:58:01] [INFO] ✓ apifootball.com respondió con 9 partidos
[11:58:01] [INFO] Liga 207: 9 partidos
[11:58:03] [WARN] apifootball: 404
[11:58:04] [INFO] ✓ apifootball.com respondió con 9 partidos
[11:58:04] [INFO] Liga 168: 9 partidos
[11:58:06] [WARN] apifootball: 404
[11:58:07] [WARN] apifootball: 404
[11:58:08] [WARN] apifootball: 404
[11:58:10] [INFO] ✓ apifootball.com respondió con 4 partidos
[11:58:10] [INFO] Liga 14: 4 partidos
[11:58:11] [WARN] apifootball: 404
[11:58:13] [WARN] apifootball: 404
[11:58:14] [INFO] ✓ apifootball.com respondió con 3 partidos
[11:58:14] [INFO] Liga 333: 3 partidos
[11:58:15] [INFO] ✓ apifootball.com respondió con 12 partidos
[11:58:15] [INFO] Liga 332: 12 partidos
[11:58:17] [INFO] ✓ apifootball.com respondió con 8 partidos
[11:58:17] [INFO] Liga 188: 8 partidos
[11:58:18] [INFO] ✓ apifootball.com respondió con 2 partidos
[11:58:18] [INFO] Liga 140: 2 partidos
[11:58:20] [INFO] ✓ apifootball.com respondió con 3 partidos
[11:58:20] [INFO] Liga 141: 3 partidos
[16:55:05] [INFO] === AI PROCESSOR v2.0 (Workers Dinámicos) ===
[16:55:05] [INFO] 3 workers activos: Gemini 2.5 Flash Lite, Groq Llama 3.3 70B, OpenAI GPT-4o Mini
[16:55:05] [INFO] 2 partidos a procesar.
[16:55:05] [INFO] Procesando: Nottingham vs Newcastle (ID: 619818)
[16:55:05] [INFO] → Intentando worker: Gemini 2.5 Flash Lite
[16:55:05] [WARN] HTTP 403 en generativelanguage.googleapis.com | {"errno":0}
[16:55:05] [WARN] ✗ Gemini 2.5 Flash Lite falló, probando siguiente...
[16:55:07] [INFO] → Intentando worker: Groq Llama 3.3 70B
[16:55:08] [INFO] ✓ Groq Llama 3.3 70B respondió: no_apostar (0%)
[16:58:18] [INFO] === AI PROCESSOR v2.0 (Workers Dinámicos) ===
[16:58:18] [INFO] 3 workers activos: Gemini 2.5 Flash Lite, Groq Llama 3.3 70B, OpenAI GPT-4o Mini
[16:58:18] [INFO] 2 partidos a procesar.
[16:58:18] [INFO] Procesando: Burnley vs Aston Villa (ID: 619821)
[16:58:18] [INFO] → Intentando worker: Gemini 2.5 Flash Lite
[16:58:18] [WARN] HTTP 403 en generativelanguage.googleapis.com | {"errno":0}
[16:58:18] [WARN] ✗ Gemini 2.5 Flash Lite falló, probando siguiente...
[16:58:20] [INFO] → Intentando worker: Groq Llama 3.3 70B
[16:58:21] [INFO] ✓ Groq Llama 3.3 70B respondió: no_apostar (0%)
[20:00:05] [INFO] === FETCHER v2.0 (Multi-API Fallback) INICIADO ===
[20:00:05] [INFO] 1 APIs disponibles: TheSportsDB (Sin key)
[20:00:05] [INFO] Buscando: 2026-05-14
[20:00:08] [INFO] ✓ TheSportsDB (Sin key) respondió con 3 partidos
[20:00:08] [INFO] Liga 302: 3 partidos
[20:00:08] [INFO]   [thesportsdb] Girona vs Real Sociedad (ID:2279749)
[20:00:08] [INFO]   ✓ Guardado
[20:00:08] [INFO]   [thesportsdb] Real Madrid vs Real Oviedo (ID:2279751)
[20:00:08] [INFO]   ✓ Guardado
[20:00:08] [INFO]   [thesportsdb] Valencia vs Rayo Vallecano (ID:2279752)
[20:00:08] [INFO]   ✓ Guardado
[20:00:14] [INFO] ✓ TheSportsDB (Sin key) respondió con 3 partidos
[20:00:14] [INFO] Liga 4: 3 partidos
[20:00:18] [INFO] ✓ TheSportsDB (Sin key) respondió con 3 partidos
[20:00:18] [INFO] Liga 14: 3 partidos
[20:00:20] [INFO] ✓ TheSportsDB (Sin key) respondió con 3 partidos
[20:00:20] [INFO] Liga 12: 3 partidos
[20:00:23] [INFO] ✓ TheSportsDB (Sin key) respondió con 3 partidos
[20:00:23] [INFO] Liga 332: 3 partidos
[20:00:25] [INFO] ✓ TheSportsDB (Sin key) respondió con 3 partidos
[20:00:25] [INFO] Liga 140: 3 partidos
[20:00:26] [INFO] ✓ TheSportsDB (Sin key) respondió con 3 partidos
[20:00:26] [INFO] Liga 141: 3 partidos
[20:00:27] [INFO] ✓ TheSportsDB (Sin key) respondió con 3 partidos
[20:00:28] [INFO] Liga 142: 3 partidos
[20:00:29] [INFO] ✓ TheSportsDB (Sin key) respondió con 3 partidos
[20:00:29] [INFO] Liga 143: 3 partidos
[20:00:32] [INFO] ✓ TheSportsDB (Sin key) respondió con 3 partidos
[20:00:32] [INFO] Liga 136: 3 partidos
[20:00:33] [INFO] ✓ TheSportsDB (Sin key) respondió con 3 partidos
[20:00:34] [INFO] Liga 137: 3 partidos
[20:00:35] [INFO] ✓ 2026-05-14: 3 partidos guardados
[20:00:35] [INFO] === FETCHER FINALIZADO | Guardados: 3 ===
