V2.0.0 : VOICI LES MODIFICATIONS MAJEURS APPRTÉES DANS CETTE VERSION :
-> REFONTE DU DESIGN DES AFFICHEURS CLASSIQUES (GÉNÉRAL + QUAIS) -> IMPLÉMENTATION DU DESIGN AFL : GÉNÉRAL ET QUAIS -> CHOIX DE LA SÉLECTION DES TYPES D'AFFICHEURS (GÉNÉRAL / QUAIS) UNE FOIS LE TYPE D'AFFICHEUR SÉLECTIONNÉS EN COURS DE DÉVELOPPEMENT : -> IMPLÉMENTATION DES PERTURBATION DU LANDEMAIN POUR LES HORAIRES DU LANDEMAIN AFFICHÉS AVANT MINUIT. -> IMPLÉMENTATION DES AFFICHEURS D'INFORMATIONS / INFOS TRAVAUX, etc... (AFFICHEURS AFL)
This commit is contained in:
1 parent
f0d9ed9ee7
commit
f06ebbaf48
43 files changed
+10519
-3813
No files matched your search
@@ -0,0 +1,85 @@
|
||||
const { createClient } = require('@supabase/supabase-js');
|
||||
require('dotenv').config({ path: '/Users/mathisgrillot/IdeaProjects/afficheurs-ferrovia/.env' });
|
||||
const supabase = createClient(process.env.REACT_APP_SUPABASE_URL, process.env.REACT_APP_SUPABASE_ANON_KEY);
|
||||
|
||||
const normalizeName = (s) => {
|
||||
if (!s) return '';
|
||||
try {
|
||||
const t = String(s).normalize('NFD').replace(/\p{M}/gu, '').toLowerCase().trim();
|
||||
return t.replace(/[-_]+/g, ' ').replace(/\s+/g, ' ');
|
||||
} catch (e) {
|
||||
return String(s).toLowerCase().trim();
|
||||
}
|
||||
};
|
||||
|
||||
const parseTimeHM = (v) => {
|
||||
if (!v) return null;
|
||||
const m = String(v).match(/(\d{1,2}):(\d{2})/);
|
||||
if (m) return parseInt(m[1], 10)*60 + parseInt(m[2], 10);
|
||||
return null;
|
||||
};
|
||||
|
||||
async function run() {
|
||||
const gareDisplay = "Ouges";
|
||||
const flexNeedle = `%${String(gareDisplay).replace(/[-_+\s]+/g, '%')}%`;
|
||||
const { data: gdata } = await supabase.from('gares').select('id,type').ilike('nom', flexNeedle).limit(1);
|
||||
const stationType = gdata && gdata.length ? gdata[0].type.toLowerCase() : null;
|
||||
console.log("stationType:", stationType);
|
||||
|
||||
const thresholdForStationType = (typeGare) => {
|
||||
const tG = String(typeGare || '').trim().toLowerCase();
|
||||
if (tG === 'interurbaine' || tG.includes('interurb')) return 360;
|
||||
if (tG === 'ville' || tG.includes('ville')) return 30;
|
||||
return 30;
|
||||
};
|
||||
const threshold = thresholdForStationType(stationType);
|
||||
console.log("threshold:", threshold);
|
||||
|
||||
const { data: allData } = await supabase.from('horaires').select('*').limit(200);
|
||||
const horaires = allData.filter(h => JSON.stringify(h).includes("Ouges"));
|
||||
const h = horaires[0];
|
||||
|
||||
const stops = h.gares_desservies;
|
||||
const targetStationName = gareDisplay;
|
||||
|
||||
const stopForStation = (stops || []).find(s => {
|
||||
const nm = s.gare_nom || s.nom || s.name || s.stop_name || '';
|
||||
const ns = normalizeName(nm || '');
|
||||
const target = normalizeName(targetStationName || '');
|
||||
return (targetStationName && (ns === target || ns.includes(target) || target.includes(ns)));
|
||||
}) || null;
|
||||
|
||||
h._displayPlatform = (stopForStation && stopForStation.quai_reel) || h.quai_reel || '';
|
||||
console.log("_displayPlatform:", h._displayPlatform);
|
||||
|
||||
const platform = (h._displayPlatform || '').toString().trim();
|
||||
let showPlatform = Boolean(platform);
|
||||
console.log("Boolean(platform):", showPlatform);
|
||||
|
||||
if (showPlatform) {
|
||||
let diffMinutes = null;
|
||||
h._depHM = parseTimeHM(h.heure_depart);
|
||||
const sched = h._depHM;
|
||||
console.log("sched:", sched);
|
||||
|
||||
const currentTime = new Date();
|
||||
if (sched !== null) {
|
||||
const baseDate = new Date();
|
||||
baseDate.setHours(Math.floor(sched / 60), sched % 60, 0, 0);
|
||||
const nowHM = currentTime.getHours() * 60 + currentTime.getMinutes();
|
||||
if (sched < 240 && nowHM > 1200) baseDate.setDate(baseDate.getDate() + 1);
|
||||
else if (sched > 1200 && nowHM < 240) baseDate.setDate(baseDate.getDate() - 1);
|
||||
diffMinutes = (baseDate.getTime() - currentTime.getTime()) / 60000;
|
||||
}
|
||||
console.log("diffMinutes:", diffMinutes);
|
||||
|
||||
if (diffMinutes !== null) {
|
||||
showPlatform = (diffMinutes <= threshold);
|
||||
} else {
|
||||
showPlatform = false;
|
||||
}
|
||||
}
|
||||
console.log("FINAL showPlatform:", showPlatform);
|
||||
}
|
||||
|
||||
run();
|
||||
Reference in new issue
Block a user