diff --git a/main.go b/main.go index 5e08305..052d2f1 100644 --- a/main.go +++ b/main.go @@ -1,5 +1,6 @@ package main +import "cmp" import "encoding/json" import "errors" import "fmt" @@ -97,6 +98,7 @@ func (c KVVEFAClient) BuildRequest(stopId string) (*http.Request, error) { form.Set("useRealtime", "1") form.Set("limit", "10") form.Set("mode", "direct") + form.Set("useRealtime", "1") form.Set("outputFormat", "json") body := strings.NewReader(form.Encode()) @@ -179,6 +181,7 @@ type Departure struct { Symbol string `json:"symbol"` Direction string `json:"direction"` Leaving string `json:"leaving"` + Countdown int } func ParseDepartures(response DMResponse, allowedPlatform *string) (Departures, error) { @@ -223,9 +226,14 @@ func ParseDepartures(response DMResponse, allowedPlatform *string) (Departures, d.ServingLine.Symbol, direction, leaving, + countdown, }) } + slices.SortFunc(ds, func(a Departure, b Departure) int { + return cmp.Compare(a.Countdown, b.Countdown) + }) + return Departures{ds}, nil } @@ -265,6 +273,7 @@ func main() { } c := efaClients[(efaClient.Add(1) - 1) % uint64(len(efaClients))] + log.Print(c.GetName()) ds, err := FetchDepartures(c, stopId) if err != nil { http.Error(w, err.Error(), http.StatusInternalServerError)