mirror of
https://github.com/public-transport/db-vendo-client.git
synced 2025-02-23 15:19:35 +02:00
38 lines
1 KiB
JavaScript
38 lines
1 KiB
JavaScript
|
'use strict'
|
||
|
|
||
|
const parseDateTime = require('./date-time')
|
||
|
|
||
|
// todos from derhuerst/hafas-client#2
|
||
|
// - stdStop.dCncl
|
||
|
// - stdStop.dPlatfS, stdStop.dPlatfR
|
||
|
// todo: what is d.jny.dirFlg?
|
||
|
// todo: d.stbStop.dProgType
|
||
|
|
||
|
// tz = timezone, s = stations, ln = lines, r = remarks
|
||
|
const createParseDeparture = (tz, s, ln, r) => {
|
||
|
const parseDeparture = (d) => {
|
||
|
const when = parseDateTime(tz, d.date, d.stbStop.dTimeR || d.stbStop.dTimeS)
|
||
|
const result = {
|
||
|
ref: d.jid
|
||
|
, station: s[parseInt(d.stbStop.locX)]
|
||
|
, when: when.format()
|
||
|
, direction: d.dirTxt
|
||
|
, line: ln[parseInt(d.prodX)]
|
||
|
, remarks: d.remL ? d.remL.map((rm) => r[parseInt(rm.remX)]) : null
|
||
|
, trip: +d.jid.split('|')[1]
|
||
|
}
|
||
|
|
||
|
if (d.stbStop.dTimeR && d.stbStop.dTimeS) {
|
||
|
const realtime = parseDateTime(tz, d.date, d.stbStop.dTimeR)
|
||
|
const planned = parseDateTime(tz, d.date, d.stbStop.dTimeS)
|
||
|
result.delay = Math.round((realtime - planned) / 1000)
|
||
|
} else result.delay = null
|
||
|
|
||
|
return result
|
||
|
}
|
||
|
|
||
|
return parseDeparture
|
||
|
}
|
||
|
|
||
|
module.exports = createParseDeparture
|