<h1>Changelog</h1> <div class="row"> <div class="col s12 m1 l1"> 2.7 </div> <div class="col s12 m11 l11"> <p> <i class="material-icons left" aria-label="Verbesserung">star</i> Checkins via Nahverkehr (HAFAS) speichern nun Polylines (Routen für die Fahrtenkarte) und Wagenreihungen, sofern verfügbar. Sie sind damit fast identisch zu Checkins via Schienenverkehr (IRIS); es fehlen im Wesentlichen lediglich die mit Zeitstempel versehenen Verspätungs- und Störungsmeldungen. <p/> <p> <i class="material-icons left" aria-label="Bugfix">build</i> Verbesserte (aber weiterhin nicht perfekte) Unterstützung für Ringlinien. </p> <p> <i class="material-icons left" aria-label="Bugfix">build</i> Korrekte Verlinkung von HAFAS-basierten Abfahrtstafeln bei den Unterwegshalten des aktuellen Checkins im Nahverkehrsmodus. Die Konfigurationsmöglichkeit zur Auswahl zwischen bahn.expert und DBF unter Account → Externe Dienste besteht wegen der Abhängigkeit des Diensts vom genutzten Backend und zwecks besserer Wartbarkeit von travelynx nun nicht mehr. </p> </div> </div> <div class="row"> <div class="col s12 m1 l1"> 2.6 </div> <div class="col s12 m11 l11"> <p> <i class="material-icons left" aria-label="Verbesserung">star</i> Übersichtlichere Darstellung vergangener Fahrten. Patch von Cass Dingenskirchen, vielen Dank! </p> <p> <i class="material-icons left" aria-label="Neues Feature">add</i> Nahverkehr (HAFAS-Backend): Checkins in Fahrten, die mehr als 30 Minuten vor/nach dem Anfragezeitpunkt liegen. </p> </div> </div> <div class="row"> <div class="col s12 m1 l1"> 2.5 </div> <div class="col s12 m11 l11"> <p> <i class="material-icons left" aria-label="Verbesserung">star</i> Übersichtlichere Abfahrstafel mit Kennzeichnung der verschiedenen Arten von Verkehrsmitteln. Patch von Cass Dingenskirchen, vielen Dank! </p> </div> </div> <div class="row"> <div class="col s12 m1 l1"> 2.4 </div> <div class="col s12 m11 l11"> <p> <i class="material-icons left" aria-label="Verbesserung">star</i> Berücksichtigung verwandter Stationen (d.h. Stationen, die zwar gleich heißen, aber intern unterschiedliche IDs haben) bei Checkin-Vorschlägen für Nahverkehrsfahrten. Vorschläge für Zugverbindungen gibt es aus dem Nahverkehrsmenü in vielen Fällen ebenfalls, andersherum meist noch nicht. Die restlichen Feinheiten dieses Themenkomplexes werden im Laufe der Zeit ausgebügelt. </p> </div> </div> <div class="row"> <div class="col s12 m1 l1"> 2.3 </div> <div class="col s12 m11 l11"> <p> <i class="material-icons left" aria-label="Neues Feature">add</i> Checkin-Vorschläge für Nahverkehrsfahrten. Die manuelle Angabe von Nahverkehrszielen für Anschlusshinweise entfällt damit. Bei größeren oder aus anderen Gründen im Backend komplexen Stationen werden derzeit teilweise nicht alle möglichen Verbindungen angegeben – dieser Aspekt wird in einem späteren Release verbessert. Eine von der Auswahl von Nah- vs. Fernverkehr unabhängige Liste mit Verbindungsvorschlägen folgt ebenfalls später. </p> </div> </div> <div class="row"> <div class="col s12 m1 l1"> 2.2 </div> <div class="col s12 m11 l11"> <p> <i class="material-icons left" aria-label="Neues Feature">add</i> Hinweis für fehlende Echtzeitdaten (→ nur Fahrplandaten verfügbar) bei der aktuellen Reise. </p> <p> <i class="material-icons left" aria-label="Bugfix">build</i> Korrekte Angabe der Unterwegshalte auch bei fehlenden Echtzeitdaten. </p> </div> </div> <div class="row"> <div class="col s12 m1 l1"> 2.1 </div> <div class="col s12 m11 l11"> <p> <i class="material-icons left" aria-label="Neues Feature">add</i> Vorschlag geeigneter Stationen bei Eingabe eines uneindeutigen Namens auf der Startseite. </p> <p> <i class="material-icons left" aria-label="Bugfix">build</i> Fahrten, die vor Mitternacht begannen, zeigen nun auch nach Mitternacht korrekte Echtzeitdaten an und gehen nicht fälschlich von 24 Stunden Verspätung aus. </p> <p> <i class="material-icons left" aria-label="Bugfix">build</i> Vergangene Fahrten und letzte Fahrtziele werden nun anhand der Abfahrtszeit und nicht anhand der Nummer des Eintrags ausgewählt. Somit können manuelle Einträge für weit in der Vergangenheit liegende Fahrten keine vor kurzem geloggten Fahrten mehr verdecken. </p> </div> </div> <div class="row"> <div class="col s12 m1 l1"> 2.0 </div> <div class="col s12 m11 l11"> <p> <i class="material-icons left" aria-label="Neues Feature">add</i> Checkins in Nahverkehrsmittel (Bus und Bahn) und Züge außerhalb des DB-Netzes per HAFAS-Backend. Die verfügbaren Backends werden per Icon Identifiziert: <i class="material-icons">train</i> IRIS und <i class="material-icons">directions</i> HAFAS. </p> <p> <i class="material-icons left" aria-label="Ankündigung">announcement</i> Aktuell beschränkt die HAFAS-Anbindung auf Stationssuche, Checkins und Träwelling-Synchronisierung. Eine Einbindung in die Verbindungssuche und das manuelle Nachtragen von HAFAS-Fahrten folgen zu einem späteren Zeitpunkt. </p> <p> <i class="material-icons left" aria-label="Nicht Rückwärtskompatibel">warning</i> Stationsangaben (z.B. auf der Hauptseite, beim Import oder in der API) müssen nun genau mit der gewünschten Station übereinstimmen. Unbekannte Stationen werden an das HAFAS weitergereicht, welches meist weniger Details bereitstellt als das IRIS. Fuzzy Matching wird nicht mehr in der bisherigen Form unterstützt. Sofern eine Station sowohl via IRIS als auch via HAFAS bekannt ist, wird die IRIS-Version bevorzugt. </p> <p> <i class="material-icons left" aria-label="Ankündigung">warning</i> Das ds100-Feld in API und Web Hook ist nun optional und bei HAFAS-Checkins null. </p> </div> </div> <div class="row"> <div class="col s12 m1 l1"> 1.34 </div> <div class="col s12 m11 l11"> <p> <i class="material-icons left" aria-label="Änderung">build</i> Die Verknüpfung von travelynx zu Träwelling nutzt nun OAuth2 anstelle eines passwortbasierten Logins. Einerseits ist OAuth2 eine bedeutend elegantere Lösung; andererseits wird die Träwelling-API für Passwortlogin bald abgeschaltet. Für bestehende Träwelling-Verknüpfungen ergeben sich keine Veränderungen. Neue Verknüpfungen sind weiterhin möglich und benötigen nun keine Angabe von E-Mail und Passwort mehr. Selbst gehostete travelynx-Instanzen, die die Träwelling-Verknüpfung anbieten möchten, müssen ab soforn bei Träwelling eine eigene <a href="https://traewelling.de/settings/applications">Anwendung anlegen</a> und in travelynx konfigurieren. Bitte auch die neue Dependency Mojolicious::Plugin::OAuth2 im cpanfile beachten. </p> <p> <i class="material-icons left" aria-label="Ankündigung">announcement</i> Derzeit unterstützt travelynx neben Bahnhofsnamen auch EVA-IDs und DS100/Ril100-Codes. In Zukunft werden in einzelnen Fällen nur noch Bahnhofsnamen und EVA-IDs unterstützt. </p> </div> </div> <div class="row"> <div class="col s12 m1 l1"> 1.33 </div> <div class="col s12 m11 l11"> <p> <i class="material-icons left" aria-label="Neues Feature">add</i> Synchronisierung der Checkin-Sichtbarkeit von travelynx zu Träwelling (Patch von networkException). </p> <p> <i class="material-icons left" aria-label="Neues Feature">add</i> <a href="/timeline/in-transit">Timeline-Ansicht</a> mit aktuellen Checkins gefolgter Accounts. Die Timeline wird von der Homepage verlinkt, wenn passende Checkins vorliegen. </p> <p> <i class="material-icons left" aria-label="Neues Feature">add</i> Angabe von passenden Checkins gefolgter Accounts in der Abfahrtstafel (im Sinne von: „der folgende Account ist mit auch mit diesem Zug unterwegs“). </p> </div> </div> <div class="row"> <div class="col s12 m1 l1"> 1.32 </div> <div class="col s12 m11 l11"> <p> <i class="material-icons left" aria-label="Neues Feature">add</i> Angabe von Kommentaren und Sichtbarkeit in der JSON-API </p> <p> <i class="material-icons left" aria-label="Neues Feature">add</i> Editierbare Beschreibung und optionale Links auf der Profilseite. Hier können beispielsweise Träwelling oder andere Social Media-Accounts eingetragen werden. </p> <p> <i class="material-icons left" aria-label="Neues Feature">add</i> Optional: folgen von Accounts. Die Sichtbarkeit von Checkins und vergangenen Fahrten kann somit auf Follower eingeschränkt werden. Eine Übersichtsseite mit aktuellen Checkins gefolgter Accounts (ähnlich zur Timeline im Fediverse) folgt in einem späteren Release.<br/> Für jeden Account kann individuell eingestellt werden, ob Accounts ihm folgen können, ob Folge-Anfragen zunächst angenommen werden müssen oder ob Folgen grundszätzlich nicht möglich ist. Standardmäßig ist dieses Feature inaktiv: Folge(anfrage)n müssen zunächst in den Einstellung aktiviert werden. Falls notwendig, können einzelne Accounts blockiert und dadurch am Folgen und am Stellen von Folge-Anfragen gehindert werden. </p> </div> </div> <div class="row"> <div class="col s12 m1 l1"> 1.31 </div> <div class="col s12 m11 l11"> <p> <i class="material-icons left" aria-label="Neues Feature">add</i> Vorhalten der Echtzeitdaten von Unterwegshalten. </p> </div> </div> <div class="row"> <div class="col s12 m1 l1"> 1.30 </div> <div class="col s12 m11 l11"> <p> <i class="material-icons left" aria-label="Neues Feature">add</i> Individuelle Sichtbarkeit für jede Fahrt. Optional können Fahrten und Check-Ins nur mit einem explizit geteilten Link für andere Personen sichtbar sein. </p> </div> </div> <div class="row"> <div class="col s12 m1 l1"> 1.29 </div> <div class="col s12 m11 l11"> <p> <i class="material-icons left" aria-label="Neues Feature">add</i> Jahresrückblick mit erweiterten Statistiken. Der Rückblick ist jeweils ab dem 31.12. verfügbar. </p> </div> </div> <div class="row"> <div class="col s12 m1 l1"> 1.28 </div> <div class="col s12 m11 l11"> <p> <i class="material-icons left" aria-label="Bugfix">build</i> Behandlung von nicht mehr im IRIS eingepflegten Stationen bei vergangenen Reisen. Bislang hatten diese zu unvollständigen Reisestatistiken geführt. </p> </div> </div> <div class="row"> <div class="col s12 m1 l1"> 1.27 </div> <div class="col s12 m11 l11"> <p> <i class="material-icons left" aria-label="Neues Feature">add</i> Angabe von „Kein Zustieg“ (Abfahrtstafel) bzw. „Kein Ausstieg“ (Route) durch eingeklammerte Uhrzeiten „(HH:MM)“. </p> </div> </div> <div class="row"> <div class="col s12 m1 l1"> 1.26 </div> <div class="col s12 m11 l11"> <p> <i class="material-icons left" aria-label="Neues Feature">add</i> Angabe der erwarteten Zugauslastung bei Unterwegshalten und Anschlussvorschlägen, sofern verfügbar. </p> </div> </div> <div class="row"> <div class="col s12 m1 l1"> 1.25 </div> <div class="col s12 m11 l11"> <p> <i class="material-icons left" aria-label="Interne Änderungen">star</i> Umstellung der Träwelling-Anbindung auf Träwelling-API v1, da v0 sukzessive abgeschaltet wird. API v1 ist noch nicht stabil. </p> <p> <i class="material-icons left" aria-label="Interne Änderungen">star</i> Nutzung eines internen HAFAS-mgate.exe-Clients anstelle von transport.rest. </p> </div> </div> <div class="row"> <div class="col s12 m1 l1"> 1.24 </div> <div class="col s12 m11 l11"> <p> <i class="material-icons left" aria-label="Neues Feature">add</i> Angabe der geschätzten Ankunft am Ziel bei Checkinvorschlägen. </p> <p> <i class="material-icons left" aria-label="Neues Feature">add</i> Anzeige von Anschlussmöglichkeiten an den Nahverkehr (Bus und Stadtbahn) unterhalb der Anschlusszüge. Da travelynx derzeit keine Checkins in Nahverkehrsmittel unterstützt, muss die Liste relevanter Ziele händisch unter Account → Verbindungen gepflegt werden. Sofern eine zukünftige travelynx-Version Nahverkehrs-Checkins unterstützt, entfällt diese Liste. </p> <p> <i class="material-icons left" aria-label="Neues Feature">add</i> Optionale Verlinkung externer Dienste (z.B. DBF oder bahn.expert) in der eigenen Checkin-Ansicht. Somit können von dort aus alle Abfahrten an einer Ziel- oder Unterwegsstation eingesehen werden. Dieses Feature ist standardmäßig deaktiviert und kann über Account → Externe Dienste konfiguriert werden. </p> <p> <i class="material-icons left" aria-label="Verbesserung">star</i> Checkinvorschläge für Anschlussverbindungen schauen weiter in die Zukunft und enthalten weniger nutzlose Vorschläge (z.B. Rückfahrt zur Ursprungsstation oder Weiterfahrt zu einem späteren Ziel mit dem Folgetakt). </p> </div> </div> <div class="row"> <div class="col s12 m1 l1"> 1.23 </div> <div class="col s12 m11 l11"> <p> <i class="material-icons left" aria-label="Neues Feature">add</i> Optionale Links zu externen Abfahrtsmonitoren in der Halteliste des aktuell ausgewählten Zugs. Die Abfahrtstafelseite kann bei den Account-Einstellungen konfiguriert werden. </p> </div> </div> <div class="row"> <div class="col s12 m1 l1"> 1.22 </div> <div class="col s12 m11 l11"> <p> <i class="material-icons left" aria-label="Verbesserung">star</i> Verbesserte Verknüpfung und Synchronisierung mit <a href="https://traewelling.de">Träwelling</a>. </p> <p> <i class="material-icons left" aria-label="Neues Feature">add</i> Inaktive Accounts erhalten nach einem Jahr eine E-Mail, die auf die in vier Wochen folgende Löschung hinweist. Betreiber:innen einer selbstgehosteten travelynx-Instanz müssen hierzu <i>base_url</i> in travelynx.conf setzen (siehe examples/travelynx.conf). </p> </div> </div> <div class="row"> <div class="col s12 m1 l1"> 1.21 </div> <div class="col s12 m11 l11"> <p> <i class="material-icons left" aria-label="Neues Feature">add</i> Annotation von Fahrten mit fehlenden Echtzeitdaten in der Abfahrtstafel. Derzeit wird das Vorhandensein von Echtzeitdaten noch nicht im Fahrtenbuch gespeichert. </p> <p> <i class="material-icons left" aria-label="Neues Feature">add</i> Unterstützung von Maßnahmen zum Schutz vor E-Mail-Spam über das Registrierungsformular. </p> </div> </div> <div class="row"> <div class="col s12 m1 l1"> 1.20 </div> <div class="col s12 m11 l11"> <p> <i class="material-icons left" aria-label="Neues Feature">add</i> Accountnamen können jetzt in den Einstellungen geändert werden. </p> </div> </div> <div class="row"> <div class="col s12 m1 l1"> 1.19 </div> <div class="col s12 m11 l11"> <p> <i class="material-icons left" aria-label="Neues Feature">add</i> Hinweis bei knapper Umstiegszeit zu Anschlussverbindungen. </p> <p> <i class="material-icons left" aria-label="Verbesserung">star</i> Übersichtlichere Navigation in der Fahrtenliste / Statistikansicht. </p> </div> </div> <div class="row"> <div class="col s12 m1 l1"> 1.18 </div> <div class="col s12 m11 l11"> <p> <i class="material-icons left" aria-label="Neues Feature">add</i> Autmatische Checkin-Synchronisierung mit <a href="https://traewelling.de">Träwelling</a>. Checkins können entweder von Träwelling zu travelynx oder von travelynx zu Träwelling übernommen werden. Das Feature läuft vorerst als Public Beta. </p> </div> </div> <div class="row"> <div class="col s12 m1 l1"> 1.17 </div> <div class="col s12 m11 l11"> <p> <i class="material-icons left" aria-label="Neues Feature">add</i> Öffentliches Profil. Hier können auf Wunsch der aktuelle Status sowie die letzten zehn Zugfahrten angezeigt werden. Diese sind wahlweise gar nicht, nur mit Anmeldung oder öffentlich sichtbar. Zugfahrten, die älter als vier Wochen sind, können komplett verborgen werden. </p> </div> </div> <div class="row"> <div class="col s12 m1 l1"> 1.16 </div> <div class="col s12 m11 l11"> <p> <i class="material-icons left" aria-label="Neues Feature">add</i> Auswertung von Zugfahrten von/nach bestimmten Stationen aufgeschlüsselt nach Jahr und Monat. Diese Daten können für die Angaben zur Pendlerpauschale bei der Steuererklärung nützlich sein. </p> <p> <i class="material-icons left" aria-label="Neues Feature">add</i> CSV-Export aller Fahrten. </p> </div> </div> <div class="row"> <div class="col s12 m1 l1"> 1.15 </div> <div class="col s12 m11 l11"> <p> <i class="material-icons left" aria-label="Neues Feature">add</i> Die über „Teilen“ verfügbare Reisestatus-Seite kann nun auch Details beendeter Zugfahrten anzeigen, wenn die entsprechende Option in den <a href="/account/privacy">Privatsphäre-Einstellungen</a> aktiv ist. </p> <p> <i class="material-icons left" aria-label="Bugfix">build</i> Behandlung von Haltausfällen während der Reise bzw. nach dem Checkin. </p> </div> </div> <div class="row"> <div class="col s12 m1 l1"> 1.14 </div> <div class="col s12 m11 l11"> <p> <i class="material-icons left">add</i> API-Endpunkt zum Import nicht in travelynx getrackter Zugfahrten. </p> <p> <i class="material-icons left">add</i> Status-API: Angabe der Unterwegshalte zwischen Start und Ziel. </p> </div> </div> <div class="row"> <div class="col s12 m1 l1"> 1.13 </div> <div class="col s12 m11 l11"> <p> <i class="material-icons left">add</i> API-Endpunkt zum Einchecken in Züge, aktualisieren der Zielwahl und Zurücknehmen des letzten Checkins. </p> </div> </div> <div class="row"> <div class="col s12 m1 l1"> 1.12 </div> <div class="col s12 m11 l11"> <p> <i class="material-icons left">add</i> Unterstützung der im Fahrplanjahr 2020 hinzugekommenen und geänderten Stationen. Start und Ziel von mit travelynx geloggten Fahrten sind nun vom Stationsnamen unabhängig (d.h. Namensänderungen werden automatisch übernommen). </p> </div> </div> <div class="row"> <div class="col s12 m1 l1"> 1.11 </div> <div class="col s12 m11 l11"> <p> <i class="material-icons left">add</i> Optionale Kommentare für Zugfahrten. Der Eintrag zur aktuellen Zugfahrt kann im öffentlichen Nutzerstatus angezeigt werden, wenn die entsprechende Option in den <a href="/account/privacy">Privatsphäre-Einstellungen</a> aktiv ist. </p> </div> </div> <div class="row"> <div class="col s12 m1 l1"> 1.10 </div> <div class="col s12 m11 l11"> <p> <i class="material-icons left">add</i> Kartographische Darstellung vergangener Zugfahrten auf der History-Seite. </p> </div> </div> <div class="row"> <div class="col s12 m1 l1"> 1.9 </div> <div class="col s12 m11 l11"> <p> <i class="material-icons left">add</i> Generierung vorausgefüllter Fahrgastrechteformulare bei Zugausfällen und Verspätungen ab 60 Minuten. </p> </div> </div> <div class="row"> <div class="col s12 m1 l1"> 1.8 </div> <div class="col s12 m11 l11"> <p> <i class="material-icons left">add</i> Angabe der Ausstiegsseite für einzelne Züge und Zielbahnhöfe. </p> <p> <i class="material-icons left">add</i> Angabe der Wagenreihung vor der Abfahrt. Derzeit sind Wagenreihungen nur für Fernverkehrszüge verfügbar. </p> </div> </div> <div class="row"> <div class="col s12 m1 l1"> 1.7 </div> <div class="col s12 m11 l11"> <p> <i class="material-icons left">add</i> Ankunft am nächtsten Unterwegshalt im Reisestatus. </p> <p> <i class="material-icons left">star</i> Die Ankunftszeit am Ziel ist jetzt auch bei langen Fahrten sofort bekannt. </p> </div> </div> <div class="row"> <div class="col s12 m1 l1"> 1.6 </div> <div class="col s12 m11 l11"> <p> <i class="material-icons left">add</i> Anzeige von häufig genutzten Verbindungen in der Abfahrtstafel. Wie bei den Anschlusszügen kann darüber direkt (inkl. Vorauswahl des Ziels) eingecheckt werden. </p> <p> <i class="material-icons left">add</i> Konfigurationsseite, um die Heuristik für Anschlusszüge und häufige Verbindungen zu deaktivieren. </p> </div> </div> <div class="row"> <div class="col s12 m1 l1"> 1.5 </div> <div class="col s12 m11 l11"> <p> <i class="material-icons left">add</i> Anzeige von Anschlusszügen kurz vor Erreichen der aktuellen Zielstation. Nach Ankunft kann darüber direkt (inkl. Vorauswahl des neuen Ziels) eingecheckt werden. Die Heuristik berücksichtigt derzeit alle Stationen, die in den letzten sechs Wochen mehr als zweimal vom jeweiligen Bahnhof aus angefahren wurden. </p> </div> </div> <div class="row"> <div class="col s12 m1 l1"> 1.4 </div> <div class="col s12 m11 l11"> <p> <i class="material-icons left">add</i> Dark Mode (Patch von <a href="https://twitter.com/marudor">@marudor</a>). </p> </div> </div> <div class="row"> <div class="col s12 m1 l1"> 1.3 </div> <div class="col s12 m11 l11"> <p> <i class="material-icons left">add</i> Teilen der aktuellen Zugfahrt. Wird derzeit nur auf Chrome (Android), Opera (Android) und Safari (iOS / macOS) unterstützt. </p> </div> </div> <div class="row"> <div class="col s12 m1 l1"> 1.2 </div> <div class="col s12 m11 l11"> <p> <i class="material-icons left">add</i> <a href="/account/hooks">Web Hooks</a> an eine konfigurierbare URL bei Checkin und Checkout. </p> </div> </div> <div class="row"> <div class="col s12 m1 l1"> 1.1 </div> <div class="col s12 m11 l11"> <p> <i class="material-icons left">add</i> Öffentlicher Status unter „/status/<i>name</i>“ (opt-in, muss unter <a href="/account/privacy">account/privacy</a> aktiviert werden) </p> </div> </div> <div class="row"> <div class="col s12 m1 l1"> 1.0 </div> <div class="col s12 m11 l11"> <ul> <li>Stationswahl per Geokoordinaten</li> <li>Manueller Checkin und automatischer Checkout</li> <li>History und Statistiken</li> <li>API zur Statusabfrage</li> </ul> </div> </div>