From 8a27b310d2f955882ce47abbfda8f2dbcd1cee49 Mon Sep 17 00:00:00 2001 From: Claude Date: Mon, 5 Oct 2026 14:10:06 +0000 Subject: [PATCH] =?UTF-8?q?fix(meteo):=20repli=20sur=20la=20m=C3=A9t=C3=A9?= =?UTF-8?q?o=20relev=C3=A9e=20l'an=20dernier=20pour=20la=20comparaison=20N?= =?UTF-8?q?-1?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit La comparaison avec l'année dernière disparaît quand Visual Crossing refuse durablement l'historique (plan, quota) : le repli précédent ne cherchait que des lignes N-1 déjà en cache (is_current_year = false) à 7 jours près, qui n'existent plus si l'historique échoue depuis plus d'une semaine. La table weather_data garde pourtant la météo relevée chaque jour l'an dernier, quand ces dates étaient « aujourd'hui » (is_current_year = true). La route l'utilise désormais en second repli, au jour le plus proche de la date cible (7 jours max), et journalise l'absence totale de donnée N-1. Co-Authored-By: Claude Opus 5.5 Claude-Session: https://claude.ai/code/session_01MsDJjQrAggcJwbbBtKhgyb --- server/routes.ts | 13 +++++++++++++ 1 file changed, 13 insertions(+) diff --git a/server/routes.ts b/server/routes.ts index 4f05128..edfe76b 100644 --- a/server/routes.ts +++ b/server/routes.ts @@ -5481,6 +5481,19 @@ RÉSUMÉ DU SCAN } } + // Second repli : la météo relevée l'an dernier, au jour le jour, quand ces + // dates étaient « aujourd'hui » (lignes is_current_year = true datées de + // l'année précédente). Elle reste disponible même si l'API refuse + // durablement l'historique (plan, quota). + if (!previousYearData) { + previousYearData = await storage.getNearestWeatherData(previousYearDate, true, 7); + if (previousYearData) { + console.log(`🌤️ [FALLBACK] Using weather recorded last year (${previousYearData.date}) for target ${previousYearDate}`); + } else { + console.warn(`⚠️ [FALLBACK] No previous-year weather available around ${previousYearDate}`); + } + } + // Toujours retourner une réponse même si seule l'année actuelle est disponible const response = { currentYear: currentYearData ? {