|
|
|
@ -128,44 +128,18 @@ socket.onmessage = function(e) { |
|
|
|
} catch { |
|
|
|
} catch { |
|
|
|
return; |
|
|
|
return; |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
// Vérifie le format des données reçues |
|
|
|
// Vérifie le format des données reçues |
|
|
|
let rowData; |
|
|
|
let rowData; |
|
|
|
function formatHMS(seconds) { |
|
|
|
|
|
|
|
// Copie la logique du templatetag temps_format |
|
|
|
if (typeof data === 'object' && data !== null) { |
|
|
|
if (seconds === undefined || seconds === null || seconds === "") return "--:--:--"; |
|
|
|
|
|
|
|
let total_seconds = 0; |
|
|
|
|
|
|
|
if (typeof seconds === 'string' && seconds.includes(':')) { |
|
|
|
|
|
|
|
// déjà formaté |
|
|
|
|
|
|
|
return seconds; |
|
|
|
|
|
|
|
} |
|
|
|
|
|
|
|
if (!isNaN(Number(seconds))) { |
|
|
|
|
|
|
|
total_seconds = Math.floor(Number(seconds)); |
|
|
|
|
|
|
|
} else { |
|
|
|
|
|
|
|
return "--:--:--"; |
|
|
|
|
|
|
|
} |
|
|
|
|
|
|
|
let h = Math.floor(total_seconds / 3600); |
|
|
|
|
|
|
|
let m = Math.floor((total_seconds % 3600) / 60); |
|
|
|
|
|
|
|
let s = total_seconds % 60; |
|
|
|
|
|
|
|
return (h < 10 ? '0' : '') + h + 'h' + (m < 10 ? '0' : '') + m + 'm' + (s < 10 ? '0' : '') + s + 's'; |
|
|
|
|
|
|
|
} |
|
|
|
|
|
|
|
if (Array.isArray(data)) { |
|
|
|
|
|
|
|
// Si la ligne reçue n'a pas 5 colonnes, on complète avec des vides |
|
|
|
|
|
|
|
rowData = data.slice(0, 5); |
|
|
|
|
|
|
|
while (rowData.length < 5) rowData.push(''); |
|
|
|
|
|
|
|
// Si le temps est en secondes, on le formate |
|
|
|
|
|
|
|
if (rowData.length > 4 && /^\d+$/.test(rowData[4])) { |
|
|
|
|
|
|
|
rowData[4] = formatHMS(rowData[4]); |
|
|
|
|
|
|
|
} |
|
|
|
|
|
|
|
} else if (typeof data === 'object' && data !== null) { |
|
|
|
|
|
|
|
// Transforme l'objet en tableau dans l'ordre attendu |
|
|
|
// Transforme l'objet en tableau dans l'ordre attendu |
|
|
|
let temps = data.temps; |
|
|
|
|
|
|
|
if (/^\d+$/.test(temps)) temps = formatHMS(temps); |
|
|
|
|
|
|
|
rowData = [ |
|
|
|
rowData = [ |
|
|
|
data.rang, |
|
|
|
data.rang, |
|
|
|
data.nom || (data.coureur && data.coureur.nom), |
|
|
|
data.nom || (data.coureur && data.coureur.nom), |
|
|
|
data.prenom || (data.coureur && data.coureur.prenom), |
|
|
|
data.prenom || (data.coureur && data.coureur.prenom), |
|
|
|
data.classe || (data.coureur && data.coureur.classe), |
|
|
|
data.classe || (data.coureur && data.coureur.classe), |
|
|
|
temps |
|
|
|
data.temps |
|
|
|
]; |
|
|
|
]; |
|
|
|
} else { |
|
|
|
} else { |
|
|
|
// Format inconnu, ignore |
|
|
|
// Format inconnu, ignore |
|
|
|
|