git HEAD * Result: Add arrival_has_realtime, departure_has_realtime, has_realtime accessors * Result->delay_messages: Leave out superseded messages (right now, the only case is "Defekt am Zug" -> "Behobener Defekt am Zug") * Stations: Add swiss and austrian stations reachable from Waldshut and Lindau Travel::Status::DE::IRIS 1.56 - Sun Jun 20 2021 * Update IRIS station list. Adds support for lots of Albtal-Verkehrs-Gesellschaft stations around Karlsruhe * Update some delay/qos messages ahead of a DB-wide change planned for October 2021 Travel::Status::DE::IRIS 1.55 - Tue May 04 2021 * Fix transfer trains getting lost when requested from a related station. Notable offender: "Berlin Südkreuz" lacked S 41 / S42 (ring line from Südkreuz (S) to Südkreuz (S) with transfer to/from the next/previous incarnation), as it referenced "Berlin Südkreuz (S)". "Berlin Südkreuz (S)" itself worked fine. Travel::Status::DE::IRIS 1.54 - Sat Jan 09 2021 * Add stations DKP, DRBS, DSBG, KWHD, NCBD, TENS, XLHW Travel::Status::DE::IRIS 1.53 - Sun Dec 13 2020 * import station name changes and station removals from Winterfahrplan 2021 Travel::Status::DE::IRIS 1.52 - Sun Nov 22 2020 * get_station_by_name: Fix crash (unhandled exception) when the station name is an invalid regular expression Travel::Status::DE::IRIS 1.51 - Thu Oct 22 2020 * Add BER airport stations * Rename Schönefeld airport to BER Terminal 5 Travel::Status::DE::IRIS 1.50 - Thu Oct 15 2020 * Add station Brunnen(Oberbay) * Incorporate station name and eva number changes from DB IRIS (affects nine stations) * Add geocoordinates to 17 stations previously lacking those Travel::Status::DE::IRIS 1.49 - Sat Oct 03 2020 * Add station Jaderberg Travel::Status::DE::IRIS 1.48 - Sat Aug 22 2020 * Add stations Neuruppin Seedamm (temporary, teardown expected Dec 2020), Amriswil, and Baar(CH) Travel::Status::DE::IRIS 1.47 - Sat Jun 06 2020 * Work around (probably incorrect) IRIS coupling of Norddeich and Norddeich Mole stations Travel::Status::DE::IRIS 1.46 - Mon May 04 2020 * Document LWP::Protocol::https dependency * Discourage building with Geo::Distance 0.21. Geo::Distance 0.21, released on 7 Mar 2019, is the only release using GIS::Distance's distance_km method -- which was removed on 9 Mar 2019 in GIS::Distance 0.14 Travel::Status::DE::IRIS 1.45 - Wed Mar 18 2020 * Provide properly versioned Stations.pm file Travel::Status::DE::IRIS 1.44 - Wed Mar 18 2020 * Add delay code 67 (Behördliche Anordnung). Patch by @marudor Travel::Status::DE::IRIS 1.43 - Tue Jan 21 2020 * db-iris: Correctly set cache expiry. In 1.42, backend replies were cached indefinitely due to a typo Travel::Status::DE::IRIS 1.42 - Wed Jan 15 2020 * Result: Fix TO_JSON method * db-iris: Cache backend results by default * db-iris: New options: --json and --no-cache Travel::Status::DE::IRIS 1.41 - Sun Dec 29 2019 * Result: Add "wing_of" accessor * Follow name and DS100 change of Freiburg West (RFW) to Freiburg-Landwasser (RFLW) * Add more stations Travel::Status::DE::IRIS 1.40 - Tue Dec 25 2019 * Incorporate the last few years' worth of station name changes Travel::Status::DE::IRIS 1.39 - Tue Dec 17 2019 * Add missing geocoordinates to nearly all remaining stations (thanks to @marudor) * Add stations opened this year (thanks to @marudor) Travel::Status::DE::IRIS 1.38 - Sun Dec 15 2019 * Add geocoordinates for belgian stations (patch by https://github.com/Knuspel) * New IRIS option: "keep_transfers" Travel::Status::DE::IRIS 1.37 - Sat Dec 07 2019 * Add geocoordinates for french stations served by Thalys/TGV (patch by Florian Wurzel) Travel::Status::DE::IRIS 1.36 - Fri Nov 22 2019 * Update stations list, prune duplicates and outdated entries (251 additions, 155 deletions). Incorporates patches by Moritz Schlarb and https://github.com/Knuspel -- Thanks! * Update documentation to reflect that EVA IDs used by DB IRIS are not the same as UIC station IDs (they just happen to be identical in 99% of cases) * Stations are now stored in share/stations.json. See README.md for station management hints. Travel::Status::DE::IRIS 1.35 - Sun Nov 17 2019 * Add additional dutch and austrian stations (thanks to https://github.com/Knuspel) * Add geocoordinates for several of those (thanks to https://github.com/Knuspel) Travel::Status::DE::IRIS 1.34 - Sat Oct 19 2019 * Improve request speed when using with_related by ignoring subway stations which do not have results anyways (e.g. in Hannover Hbf) * Do not forward unexpected IRIS message codes (ID ≥ 100) to the user * IRIS: Add ->related_stations accessor Travel::Status::DE::IRIS 1.33 - Sat Oct 05 2019 * Fix $result->route_pre / route_post accessors providing bogus data when all previous/following stops are cancelled. They used to return sched_route_pre / sched_route_post instead of an empty list in this case. Travel::Status::DE::IRIS 1.32 - Thu Aug 22 2019 * Travel::Status::DE::IRIS::Stations: Add geocoordinates fo some swiss and austrian stations Travel::Status::DE::IRIS 1.31 - Thu Aug 08 2019 * Travel::Status::DE::IRIS::Stations: Add EVA/UIC station numbers and use full names for non-german stations. Travel::Status::DE::IRIS 1.30 - Wed Jul 17 2019 * Result: Add ->station and ->station_uic accessors. These are useful to determine which station an individual train belongs to when requesting departures of multiple stations at once using the "with_related" option. Travel::Status::DE::IRIS 1.29 - Tue Jul 09 2019 * Add QoS code 72 (no info/entertainment system available) * Fix erroneous QoS codes 83, 91, 92 Travel::Status::DE::IRIS 1.28 - Sun Jun 23 2019 * Add 234 stations missing from regular DB Open Data station list * Add delay code 14 (Technische Störung am Bahnhof) Travel::Status::DE::IRIS 1.27 - Wed Jun 05 2019 * Add station Berlin Zoologischer Garten (S) Travel::Status::DE::IRIS 1.26 - Fri May 31 2019 * Fix DS100 code for Berlin Westkreuz * Add station Bonn UN Campus Travel::Status::DE::IRIS 1.25 - Mon Apr 29 2019 * Do not ignore trains with arrival < lookahead, even if departure >= lookahead. * Add delay code 66 (flooded area) Travel::Status::DE::IRIS 1.24 - Sat Mar 02 2019 * Remove erroneous double entry for Düsseldorf-Bilk * Fix a warning when encountering unusual train types Travel::Status::DE::IRIS 1.23 - Sat Dec 29 2018 * Ignore apparently useless "ZOB" (central omnibus station) links at most main stations. This decreases the average runtime and also fixes some S-Bahn trains being reported twice in München Hbf. * Result->qos_messages: Skip superseded messages. They're still present in ->messages. * Result->route_interesting: Filter Hbf suffixes (not just "Hbf"); include .hl.n (czech main station). Travel::Status::DE::IRIS 1.22 - Sun Dec 16 2018 * Add delay code 4 (unforeseen staff shortage, thanks to Fabian Schwarz) * Add delay code 37 (technical failure in carriage, thanks to @marudor) Travel::Status::DE::IRIS 1.21 - Sun Sep 09 2018 * Fix crash when receiving invalid XML due to network issues Travel::Status::DE::IRIS 1.20 - Mon Aug 06 2018 * Use schedule instead of realtime data when determining whether a train falls within the lookahead time frame. This fixes severely delayed trains being ignored even if their scheduled arrival/departure is very soon or has already passed. Travel::Status::DE::IRIS 1.19 - Wed Aug 01 2018 * db-iris: Fix "-ot" ignoring arrival delay if departure is on time * Add delay code 12 (waiting for passengers in a ship) * Result->route_interesting: Include dutch and swiss central station names * Result: New accessors arrival_delay and departure_delay Travel::Status::DE::IRIS 1.18 - Mon Apr 23 2018 * Update station dataset to Open Data Haltestellenliste 2017-09 Travel::Status::DE::IRIS 1.17 - Sat Apr 14 2018 * Fix DS100 codes for Dülmen, Stuttgart Hbf (tief), and Wolfenbüttel * db-iris: Support -d/--date "tomorrow" Travel::Status::DE::IRIS 1.16 - Sat Jul 08 2017 * Fix miscalculated delays of prematurely terminating trains * Lookahead and lookbehind are now interpreted with 1-minute granularity. Note that this also affects the default lookahead. * Fix floating point-related test failures on some architectures * New "./Build test" dependency: Test::Number::Delta Travel::Status::DE::IRIS 1.15 - Tue Jun 06 2017 * Performance improvements * Distinguish between cancelled/additional arrivals and departures * Travel::Status::DE::IRIS::Result: New accessors arrival_is_additional, arrival_is_cancelled, departure_is_additional, departure_is_cancelled and is_additional. * Travel::Status::DE::IRIS::Result: is_cancelled now only returns true if both arrival and departure have been cancelled. Travel::Status::DE::IRIS 1.14 - Mon Feb 06 2017 * IRIS->new: Add optional argument lookbehind * db-iris: Remove a useless HTTP request, resulting in slightly faster responses * db-iris -V / --track-via: Improve support for faraway stations Travel::Status::DE::IRIS 1.13 - Thu Jan 26 2017 * Fix support for line numbers, remove manual line map workaround Travel::Status::DE::IRIS 1.12 - Fri Dec 30 2016 * Unfortunately, line numbers are not available at the moment due to IRIS backend changes. Some lines in NRW have been provided with a manual line number mapping to remedy this. * Fix DS100 code for "Bielefeld Hbf" * Travel::Status::DE::IRIS::Stations::get_station_by_location: Fix bug in num_matches (parameter was silently ignored) Travel::Status::DE::IRIS 1.11 - Tue Oct 11 2016 * IRIS->new: Fix partially broken cache handling when using "with_related => 1" * Improve parser performance Travel::Status::DE::IRIS 1.10 - Sat Oct 01 2016 * Add qos code 71 ("WLAN in einzelnen Wagen nicht verfügbar") * Fix DS100 codes for "Geilenkirchen" and "Montabaur" * Travel::Status::DE::IRIS::Stations::get_station: Add support for UIC / EVA numbers Travel::Status::DE::IRIS 1.09 - Mon Jun 27 2016 * Travel::Status::DE::IRIS::Result: Fix ->classes accessor (returned a string instead of a list) * Fix DS100 codes for "Stuttgart Hbf (tief)" and "Stuttgart-Feuerbach" Travel::Status::DE::IRIS 1.08 - Thu Jun 09 2016 * New dependency: Geo::Distance * Update DS100 code list. Station names are now unabbreviated, e.g. "Dortmund Univeristät" instead of "Do Universität". Also, stations without train service are no longer included. Note that this list might contain errors. If you get "Request error: Station ... has no associated timetable" for a station which worked with previous versions, please submit a bug report. * Travel::Status::DE::IRIS::Stations now also returns international station number, longitude and latitutde for most stations * New method Travel::Status::DE::IRIS::Stations::get_station_by_location allows station lookup by geolocation Travel::Status::DE::IRIS 1.07 - Sun May 01 2016 * Fix inefficient requests for stations with with heavily cross-referenced related-station tags (most notable example: München Hbf) Travel::Status::DE::IRIS 1.06 - Mon Feb 29 2016 * Partially fix slow response time and excessive network requests for stations with heavily cross-referenced related-station tags (most notable example: München Hbf). The implementation is still slightly inefficient in these cases, but far better than before -- A complete fix will follow in the next release. Note that db-iris calls using -x/--exact/--no-related are not affected by this issue. Travel::Status::DE::IRIS 1.05 - Sun Dec 20 2015 * Update station list. It now uses data supplied by the Deutsche Bahn Open Data portal. * db-iris: New option -x / --exact / --no-related * IRIS->new: New options main_cache, realtime_cache and with_related * IRIS: Add ->station and ->related_stations accessors * db-iris: Include related stations in query output (for instance, "Köln Messe Deutz" will include "Köln Messe Deutz (tief)" and "Köln Messe Deutz Gl. 9-10"). Use --exact / --no-related to disable this. * IRIS: Same. Also, IRIS->new can now be passed Cache objects to cache HTTP requests for a user-defined time. This is most useful when building infoscreens and similar, since the scheduled and station data never changes and can therefore be cached to decrease network load and increase response time. Travel::Status::DE::IRIS 1.04 - Thu Nov 12 2015 * Result: Add qos code 79 ("Ohne Mehrzweckabteil") * db-iris: Accept UIC station codes * Fix warnings with recent DateTime::Format::Strptime releases * Improve parser speed Travel::Status::DE::IRIS 1.03 - Tue Sep 15 2015 * Result: Add info key 900 * Station: Improve get_station matching quality by using the Levenshtein edit distance in addition to simple substring matching * new dependency: Text::LevenshteinXS (see README for notes about drop-in replacements) * new dependency: List::UtilsBy Travel::Status::DE::IRIS 1.02 - Tue May 26 2015 * Added github repo to dist metadata and the doc * Result: distinguish between overcrowded trains (q97) and very overcrowded trains (q96) * Result: Verify delay key 60 ("delays because of storm") * Result: Add qos key 70 ("no wifi" -- not entirely sure yet) Travel::Status::DE::IRIS 1.01 - Fri May 15 2015 * IRIS->new: Fix default lwp_options value (was documented, but not used) * Result->route_interesting: Also consider airports * Stations: Update DS100 code list. Fixes 9 stations in Köln, Düsseldorf and Wuppertal which had a wrong code/name combination assigned due to a parser error Travel::Status::DE::IRIS 1.00 - Fri May 01 2015 * IRIS->new: Use lwp_options to explicitly pass arguments to the LWP::UserAgent constructor. Unknown arguments are now longer implicitly passed on * db-iris: Improve output format for wing trains Travel::Status::DE::IRIS 0.10 - Tue Apr 30 2015 * Result: Fix deep recursion error in TO_JSON Travel::Status::DE::IRIS 0.09 - Tue Apr 28 2015 * Result: Add arrival_wings, departure_wings and is_wing accessors (a wing train is coupled to the respective departure, but has its own ID) * db-iris: Indicate wings in output * Result: Remove train_no_transfer accessor (was based on erroneous assumptions) * Result: Add is_unscheduled, replaced_by and replacement_for accessors * db-iris: Add -oR to show replacement information Travel::Status::DE::IRIS 0.08 - Thu Mar 12 2015 * Clarify Result->train_id documentation * Add IRIS delay/qos keys 13, 60, 75, 76 Travel::Status::DE::IRIS 0.07 - Fri Jan 09 2015 * Fix a crash related to unscheduled additional stops in a train's route * Improve Travel::Status::DE::IRIS::Stations matching * Add IRIS delay/qos keys 56, 59, 61, 65, 73, 74, 77 Travel::Status::DE::IRIS 0.06 - Mon Nov 03 2014 * New non-core module dependency: List::Compare * Add support for canceled and additional stops * db-iris: Add options -oa and -oc * Result: Add accessors additional_stops and canceled_stops * Improve support for delayed trains * Support additional IRIS delay messages Travel::Status::DE::IRIS 0.05 - Thu Oct 16 2014 * Support additional IRIS delay messages Travel::Status::DE::IRIS 0.04 - Sat Jun 28 2014 * Fix --track-via not matching trains changing their ID at * Add new (not entirely verified) IRIS delay and qos messages * IRIS: add serializable option. Use this if you intend to serialize the list returned by ->results * Do not errour out if only partial data is available, show partial data and a warning instead (closes #4) * Add several qos and delay messages Travel::Status::DE::IRIS 0.03 - Fri Feb 14 2014 * IRIS / db-iris: Add lookahead option * db-iris: Fix --via not matching destination of trains with incomplete route data * Detect and merge duplicate results caused by train ID changes * Result: Provide realtime data in ->platform, add ->sched_platform accessor * db-iris: indicate platform changes with an exclamation mark Travel::Status::DE::IRIS 0.02 - Mon Feb 03 2014 * Fix warnings when encountering unplanned (fchg-only) trains without arrival or departure platform * db-iris: add -V / --track-via option to display departure at start and expected arrival at a destination station * db-iris: Add -r / --realtime option to compute times using delay data * Result: Remove duplicates in qos_messages and delay_messages, return all messages in reverse order (newest first) Travel::Status::DE::IRIS 0.01 - Fri Jan 24 2014 * Initial release. Experimental, API may change without notice