% if (is_user_authenticated()) {
% my $status = get_user_status(); % if ($status->{checked_in}) {
Hallo, <%= current_user()->{name} %>!

Du bist gerade eingecheckt in <%= $status->{train_type} %> <%= $status->{train_no} %> ab <%= $status->{station_name} %>. % if ($status->{timestamp_delta} < 3600) { undo Rückgängig % }

Bei Ankunft: Station auswählen zum Auschecken.

% my $is_after = 0; % for my $station (@{$status->{route_after}}) { % }
<%= $station %>
% } % else {
Hallo, <%= current_user()->{name} %>!

Du bist gerade nicht eingecheckt.

Stationen in der Umgebung:

% }

Letzte Fahrten

% for my $travel (get_user_travels(1)) { % if ($travel->{completed}) { % if ($travel->{rt_arrival}->epoch and $travel->{rt_departure}->epoch) { % } else { % } % } % } % } % else {

Travelynx erlaubt das Einchecken in Züge im Netz der Deutschen Bahn. So können die eigenen Fahrten später inklusive Echtzeitdaten und eingetragenen Servicemeldungen nachvollzogen und brennende Fragen wie „Wie viele Stunden habe ich letzten Monat im Zug vebracht?“ beantwortet werden.

Die Idee dazu kommt von Träwelling, hier gibt es aber keine Twitter-Anbindung und keine öffentlichen Leaderboards.

Features:

  • Protokoll von Fahrplan- und Echtzeitdaten an Start- und Zielbahnhof
  • API zum automatisierten Auslesen der letzten Reisen

Travelynx ist ein kostenfreies, privat betriebenes Projekt ohne Verfügbarkeitsgarantie. Unangekündigte Downtimes oder eine kurzfristige Einstellung dieser Seite sind nicht vorgesehen, aber möglich. Wer mag, kann auch den Quelltext laden und eine eigene Instanz aufsetzen.

% }
Datum Zug Strecke Dauer
<%= $travel->{sched_departure}->strftime('%d.%m.%Y') %> <%= $travel->{type} %> <%= $travel->{line} // $travel->{no} %> <%= $travel->{from_name} %> → <%= $travel->{to_name} %><%= ($travel->{rt_arrival}->epoch - $travel->{rt_departure}->epoch) / 60 %> min <%= sprintf('%.f', $self->get_travel_distance($travel->{from_name}, $travel->{to_name}, $travel->{route})) %>km timer_off