Compare commits
2 Commits
addc90d856
...
f3120905fe
Author | SHA1 | Date | |
---|---|---|---|
f3120905fe | |||
4a73099460 |
@ -176,14 +176,19 @@ void logic_loop() {
|
|||||||
|
|
||||||
int line = 0;
|
int line = 0;
|
||||||
for (JsonVariant departure : departures["departures"].as<JsonArray>()) {
|
for (JsonVariant departure : departures["departures"].as<JsonArray>()) {
|
||||||
const char *directionStr = departure["direction"].as<const char *>();
|
|
||||||
|
|
||||||
display.setCursor(MAIN_X, MAIN_Y + (CY + 3) * line);
|
display.setCursor(MAIN_X, MAIN_Y + (CY + 3) * line);
|
||||||
display.printf("%2s %-15.15s %6s",
|
display.printf("%2s %-15.15s ",
|
||||||
departure["symbol"].as<const char*>(),
|
departure["symbol"].as<const char*>(),
|
||||||
directionStr,
|
departure["direction"].as<const char *>()
|
||||||
departure["leaving"].as<const char*>()
|
|
||||||
);
|
);
|
||||||
|
if (departure["leaving"].as<String>().equals("sofort")) {
|
||||||
|
int16_t x = display.getCursorX();
|
||||||
|
int16_t y = display.getCursorY();
|
||||||
|
display.drawBitmap(x + 6 * CX - tiny_train_dims[0], y, tiny_train[0], tiny_train_dims[0], tiny_train_dims[1], COLOR_TEXT);
|
||||||
|
} else {
|
||||||
|
display.printf("%6s", departure["leaving"].as<const char*>());
|
||||||
|
}
|
||||||
|
|
||||||
line++;
|
line++;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
9
main.go
9
main.go
@ -1,5 +1,6 @@
|
|||||||
package main
|
package main
|
||||||
|
|
||||||
|
import "cmp"
|
||||||
import "encoding/json"
|
import "encoding/json"
|
||||||
import "errors"
|
import "errors"
|
||||||
import "fmt"
|
import "fmt"
|
||||||
@ -97,6 +98,7 @@ func (c KVVEFAClient) BuildRequest(stopId string) (*http.Request, error) {
|
|||||||
form.Set("useRealtime", "1")
|
form.Set("useRealtime", "1")
|
||||||
form.Set("limit", "10")
|
form.Set("limit", "10")
|
||||||
form.Set("mode", "direct")
|
form.Set("mode", "direct")
|
||||||
|
form.Set("useRealtime", "1")
|
||||||
form.Set("outputFormat", "json")
|
form.Set("outputFormat", "json")
|
||||||
body := strings.NewReader(form.Encode())
|
body := strings.NewReader(form.Encode())
|
||||||
|
|
||||||
@ -179,6 +181,7 @@ type Departure struct {
|
|||||||
Symbol string `json:"symbol"`
|
Symbol string `json:"symbol"`
|
||||||
Direction string `json:"direction"`
|
Direction string `json:"direction"`
|
||||||
Leaving string `json:"leaving"`
|
Leaving string `json:"leaving"`
|
||||||
|
Countdown int
|
||||||
}
|
}
|
||||||
|
|
||||||
func ParseDepartures(response DMResponse, allowedPlatform *string) (Departures, error) {
|
func ParseDepartures(response DMResponse, allowedPlatform *string) (Departures, error) {
|
||||||
@ -223,9 +226,14 @@ func ParseDepartures(response DMResponse, allowedPlatform *string) (Departures,
|
|||||||
d.ServingLine.Symbol,
|
d.ServingLine.Symbol,
|
||||||
direction,
|
direction,
|
||||||
leaving,
|
leaving,
|
||||||
|
countdown,
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
|
|
||||||
|
slices.SortFunc(ds, func(a Departure, b Departure) int {
|
||||||
|
return cmp.Compare(a.Countdown, b.Countdown)
|
||||||
|
})
|
||||||
|
|
||||||
return Departures{ds}, nil
|
return Departures{ds}, nil
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -265,6 +273,7 @@ func main() {
|
|||||||
}
|
}
|
||||||
|
|
||||||
c := efaClients[(efaClient.Add(1) - 1) % uint64(len(efaClients))]
|
c := efaClients[(efaClient.Add(1) - 1) % uint64(len(efaClients))]
|
||||||
|
log.Print(c.GetName())
|
||||||
ds, err := FetchDepartures(c, stopId)
|
ds, err := FetchDepartures(c, stopId)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
http.Error(w, err.Error(), http.StatusInternalServerError)
|
http.Error(w, err.Error(), http.StatusInternalServerError)
|
||||||
|
Loading…
x
Reference in New Issue
Block a user