diff options
author | Birte Kristina Friesel <derf@finalrewind.org> | 2024-11-05 21:38:51 +0100 |
---|---|---|
committer | Birte Kristina Friesel <derf@finalrewind.org> | 2024-11-05 21:38:51 +0100 |
commit | 45845964a3028b8baf35e447e3fdb4c67e39eec0 (patch) | |
tree | 2e5c6f5bc177fd6766988c9571e666f7fe9a2f30 | |
parent | 042a59c865ab5a319bee0844368fd42df2e502b9 (diff) |
IRIS, HAFAS: Pass version=raw to obtain raw serialized Perl objects
-rw-r--r-- | lib/DBInfoscreen/Controller/Stationboard.pm | 3 | ||||
-rw-r--r-- | templates/layouts/app.html.ep | 8 |
2 files changed, 9 insertions, 2 deletions
diff --git a/lib/DBInfoscreen/Controller/Stationboard.pm b/lib/DBInfoscreen/Controller/Stationboard.pm index 0e1c6aa..8c8365f 100644 --- a/lib/DBInfoscreen/Controller/Stationboard.pm +++ b/lib/DBInfoscreen/Controller/Stationboard.pm @@ -1977,6 +1977,9 @@ sub handle_result { ); return; } + elsif ( $apiver eq 'raw' ) { + push( @departures, $result ); + } else { # apiver == 3 if ( $result->isa('Travel::Status::DE::IRIS::Result') ) { my ( $delay_arr, $delay_dep, $sched_arr, $sched_dep ); diff --git a/templates/layouts/app.html.ep b/templates/layouts/app.html.ep index ee8a2dd..ce82662 100644 --- a/templates/layouts/app.html.ep +++ b/templates/layouts/app.html.ep @@ -281,17 +281,21 @@ Bitte eine Station aus der Liste auswählen</div> <li>Die Parameter <span style="font-family: monospace;">mode=json&version=3</span> (alternativ <span style="font-family: monospace;">https://dbf.finalrewind.org/Bahnhofsname.json?version=3</span>) - bieten ein JSON-IRIS-Interface. Die route-Elemente können zusätzlich + bieten ein JSON-Interface für IRIS- und HAFAS-Abfahrten. + Die route-Elemente können zusätzlich die Felder "isAdditional" oder "isCancelled" enthalten, der Rest sollte selbsterklärend sein. Im Fehlerfall fehlt das "departures"-Element, stattdessen wird ein "error"-Element mit Fehlermeldung zurückgegeben. Bitte maximal 30 Anfragen pro Minute und insbesondere nur eine Anfrage pro Station und Minute – eine höhere Auflösung haben die Backenddaten ohnehin nicht.</li> - <li>Ein JSON-Interface für Zugdetails ist in Arbeit.</li> <li>Mit <span style="font-family: monospace;">limit</span> kann die Anzahl der angezeigten / im JSON enthaltenen Abfahrten eingeschränkt werden, z.B. <span style="font-family: monospace;">limit=10</span> für die ersten zehn.</li> + <li><span style="font-family: monospace;">mode=json&version=raw</span> + erlaubt direkten Zugriff auf die serialisierten Travel::Status::DE::{EFA,HAFAS,IRIS}-Objekte. + Hier gibt es keine stabile API.</li> + <li>Zugdetails sind ebenfalls per JSON verfügbar und ebenso ohne stabile API.</li> <li>Dieser Dienst ist Open Source-Software und kann leicht auf eigenen Servern <a href="https://github.com/derf/db-fakedisplay/blob/master/README.md">installiert</a> werden. Automatisierte Crawler, die mehrere Dutzend Stationen pro Minute |