diff --git a/index.html b/index.html index 4230031..8422c3c 100644 --- a/index.html +++ b/index.html @@ -368,26 +368,28 @@ function formatDuration(ms) { function getStatus(results) { if (!results || results.length === 0) return { state: 'loading', text: 'Inconnu' }; const last = results[0]; - const lastTime = new Date(last.timestamp); - const duration = formatDuration(Date.now() - lastTime.getTime()); - + if (last.success) { - // Cherche le dernier échec pour savoir depuis quand c'est en ligne - const lastFailureIndex = results.findIndex(r => !r.success); - if (lastFailureIndex === -1 || lastFailureIndex >= results.length) { + // Trouve quand le dernier échec s'est produit + const lastFailure = results.find(r => !r.success); + if (!lastFailure) { + // Jamais en panne dans l'historique return { state: 'ok', text: 'En ligne' }; } - const upSince = Date.now() - lastTime.getTime(); - if (upSince > 24 * 60 * 60 * 1000) { + const upSinceMs = new Date(last.timestamp) - new Date(lastFailure.timestamp); + if (upSinceMs > 24 * 60 * 60 * 1000) { return { state: 'ok', text: 'En ligne' }; } - return { state: 'ok', text: 'En ligne depuis ' + duration }; + return { state: 'ok', text: 'En ligne depuis ' + formatDuration(upSinceMs) }; } - - for (const r of results) { - if (r.success) return { state: 'warn', text: 'Hors ligne depuis ' + duration }; + + // Hors ligne — depuis quand ? + const lastSuccess = results.find(r => r.success); + const downSinceMs = Date.now() - new Date(last.timestamp).getTime(); + if (lastSuccess) { + return { state: 'warn', text: 'Hors ligne depuis ' + formatDuration(downSinceMs) }; } - return { state: 'err', text: 'Hors ligne depuis ' + duration }; + return { state: 'err', text: 'Hors ligne depuis ' + formatDuration(downSinceMs) }; } function renderCard(game, statusData) {