backend/hafas: combine walking legs

This commit is contained in:
Milan Pässler 2020-02-08 00:02:06 +01:00
parent 14aec20be3
commit 5a4147cfa0

View file

@ -1,6 +1,7 @@
import ../types
import json
import leg
import options
proc mkParseJourney*(common: CommonData): proc =
proc parseJourney(j: JsonNode): Journey =
@ -11,4 +12,23 @@ proc mkParseJourney*(common: CommonData): proc =
result.legs = j{"secL"}.getElems().map(mkParseLeg(common))
result.lastUpdated = common.timeStamp
# combine walking legs
var i = 0
var firstWalking = -1
while true:
inc(i)
if i >= len(result.legs): break
if result.legs[i].isWalking:
if firstWalking == -1:
firstWalking = i
continue
else:
result.legs[firstWalking].arrival = result.legs[i].arrival
result.legs[firstWalking].distance.get += result.legs[i].distance.get
result.legs.delete(i)
dec(i)
else:
firstWalking = -1
return parseJourney