summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorBirte Kristina Friesel <derf@finalrewind.org>2024-11-05 21:38:51 +0100
committerBirte Kristina Friesel <derf@finalrewind.org>2024-11-05 21:38:51 +0100
commit45845964a3028b8baf35e447e3fdb4c67e39eec0 (patch)
tree2e5c6f5bc177fd6766988c9571e666f7fe9a2f30
parent042a59c865ab5a319bee0844368fd42df2e502b9 (diff)
IRIS, HAFAS: Pass version=raw to obtain raw serialized Perl objects
-rw-r--r--lib/DBInfoscreen/Controller/Stationboard.pm3
-rw-r--r--templates/layouts/app.html.ep8
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&amp;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&amp;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