Ajout des velov et des derniers passages
This commit is contained in:
+43
-6
@@ -1,4 +1,5 @@
|
||||
const DAY_IN_MS = 8.64e+7;
|
||||
const MIN_TIME_BETWEEN_DAYS = 2 * 60 * 60000 // 2 hours
|
||||
|
||||
class StopId {
|
||||
constructor(stopIdString){
|
||||
@@ -138,27 +139,63 @@ export async function getNextPassage(stop_description, options = {
|
||||
}
|
||||
|
||||
let [line, next_trip, line_stops, ...all_timetables] = await Promise.all(proms);
|
||||
|
||||
console.log(stopId)
|
||||
console.log("line", line)
|
||||
console.log("next trip", next_trip)
|
||||
console.log("stop", line_stops)
|
||||
console.log("timetable", all_timetables)
|
||||
|
||||
let line_timetables = []
|
||||
for(let timetable of all_timetables){
|
||||
line_timetables.push(...timetable)
|
||||
}
|
||||
line.timetable = line_timetables
|
||||
line.getLastPassageTime = getLastPassageTime.bind(line)
|
||||
|
||||
let stop = line_stops.find(it => it.id == stopId.stopId)
|
||||
|
||||
let time;
|
||||
if(next_trip.schedules){
|
||||
let next_schedule = next_trip.schedules.find(it => (new Date(it.dateTime).getTime() - Date.now()) > 120000 )
|
||||
if(!next_schedule) {
|
||||
next_schedule = next_trip.schedules[next_trip.schedules.length - 1]
|
||||
}
|
||||
if(next_schedule){
|
||||
time = new Date(next_schedule.dateTime)
|
||||
}
|
||||
}
|
||||
|
||||
let nextPassage = {
|
||||
line,
|
||||
displayName: stop?.name,
|
||||
displayTime: "<unsupported>",
|
||||
time: next_trip.schedules?.[0] ? new Date(next_trip.schedules?.[0].dateTime) : null
|
||||
}
|
||||
nextPassage.getLastPassageTime = getLastPassageTime.bind(nextPassage)
|
||||
|
||||
return nextPassage
|
||||
}
|
||||
|
||||
export async function getVelovBikeState(station_id){
|
||||
let res = await fetch(`/api/interface/tcl/realtime/navitia/${decodeURIComponent(station_id)}`)
|
||||
if(!res.ok){
|
||||
throw new Error(`Server responded with ${res.status} ${res.statusText}`)
|
||||
}
|
||||
return await res.json()
|
||||
}
|
||||
|
||||
function getLastPassageTime(){
|
||||
let timetable = this.timetable || this.line.timetable
|
||||
|
||||
if(!timetable){
|
||||
return
|
||||
}
|
||||
|
||||
let now = new Date()
|
||||
|
||||
let last_passage = timetable
|
||||
.find((it, i) => {
|
||||
if((timetable[i+1]) && it.time.getTime() > now && (it.time.getTime() + MIN_TIME_BETWEEN_DAYS) < timetable[i+1].time.getTime()){
|
||||
return true
|
||||
} else {
|
||||
return false
|
||||
}
|
||||
})
|
||||
|
||||
return last_passage
|
||||
}
|
||||
Reference in New Issue
Block a user