Travel::Status::DE::DeutscheBahn 5.06 - Thu Mar 28 2024 * Add Travel::Status::DE::HAFAS::Product module to handle line numbers, operators, and similar. This enables proper support for journeys with multiple operators and possibly multiple train/line numbers along the route. It also exposes the line ID. * Journey: Add product accessor * Stop: Add prod_arr, prod_dep accessors * hafas-m: Improve stop list display in journey mode * Fix polyline and platform number support in ÖBB backend (and possibly other non-DB backends) * ÖBB backend: correctly handle polylines and platform numbers * ÖBB backend: Remove redundant train numbers from $journey->name / $journey->line / $product->name * ÖBB backend: update productbits (thanks to Cassidy Dingenskirchen) Travel::Status::DE::DeutscheBahn 5.05 - Wed Feb 21 2024 * ÖBB backend: handle midnight crossing and fix associated warnings (patch by Cassidy Dingenskirchen) * ÖBB backend: adjust request version to fix backend errors with certain trains (patch by Cassidy Dingenskirchen) Travel::Status::DE::DeutscheBahn 5.04 - Sat Dec 30 2023 * Journey: Add is_additional accessor * Stop: Add is_additional accessor Travel::Status::DE::DeutscheBahn 5.03 - Wed Dec 19 2023 * Journey: Fix route_interesting accessor (broken by 5.00) Travel::Status::DE::DeutscheBahn 5.02 - Wed Dec 14 2023 * Fix calls to $journey->route crashing in handle_day_change or add_message in some circumstances if the $hafas object that created $journey has gone out of scope (and become eligible for garbage collection) in the meantime. The culprit was a mis-application of weaken() introduced in v5.01. * hafas-m: Add -v/--via option Travel::Status::DE::DeutscheBahn 5.01 - Sat Nov 25 2023 * Fix incorrect handling of HIM messages (introduced in 4.19) * hafas-m: Declutter station board output: sort by real-time data and show all messages at the end * Journey: Support construction from JSON that does not provide a date attribute (i.e., add date parameter to constructor) * Stop: Add messages accessor Travel::Status::DE::DeutscheBahn 5.00 - Tue Nov 21 2023 * hafas-m: Add --raw-json option (useful for HAFAS client development) * hafas-m: Add train search support, e.g. "hafas-m '!EC 6'" * HAFAS->new, HAFAS->new_p: Add journeyMatch flag * Add Travel::Status::DE::HAFAS::Location module * HAFAS::Stop: Fix some documented accessors not being provided by the module * HAFAS::Stop: Add "loc" accessor that returns the corresponding Location instance * HAFAS::Stop: Breaking change: The "eva", "name", "lat", "lon", "distance_m", and "weight" accessors are no longer supported. Use the (identically named) Location accessors instead, i.e., "$stop->loc->name" instead of "$stop->name", etc. Travel::Status::DE::DeutscheBahn 4.19 - Sat Nov 11 2023 * hafas-m: Fall back to locationSearch if StopFinder is unavailable * Message: Expose message type; document ->code and ->type Travel::Status::DE::DeutscheBahn 4.18 - Sun Oct 29 2023 * Allow HAFAS and hafas-m users to specify the backend language * Update services list to include known language specifiers * hafas-m: Add -l / --language option * HAFAS->new, ->new_p: Add language option Travel::Status::DE::DeutscheBahn 4.17 - Sun Sep 03 2023 * Journey: handle empty / undefined nameS fields Travel::Status::DE::DeutscheBahn 4.16 - Sun Sep 03 2023 * Journey: Fix date parser for cross-midnight journeys that start on the 1st through 9th day of a month. Travel::Status::DE::DeutscheBahn 4.15 - Wed Aug 22 2023 * HAFAS: Add similar_stops_p function Travel::Status::DE::DeutscheBahn 4.14 - Tue Aug 22 2023 * Journey: Correctly calculate datetimes when requesting a cross-midnight journey after midnight. Previously, those were off by 24 hours. Travel::Status::DE::DeutscheBahn 4.13 - Mon Aug 21 2023 * new_p: Return a Travel::Status::DE::HAFAS instance in addition to the error message when rejecting a promise after receiving a HAFAS reply Travel::Status::DE::DeutscheBahn 4.12 - Mon May 29 2023 * Fix Journey->route and HAFAS geoSearch / locationSearch returning incorrect geocoordinates (latitude and longitude were mixed up) Travel::Status::DE::DeutscheBahn 4.11 - Thu May 25 2023 * hafas-m: Add --json option Travel::Status::DE::DeutscheBahn 4.10 - Tue Apr 18 2023 * HAFAS->new, ->new_p: Add locationSearch option (search stops by name) * Journey->route, ->route_interesting: Return Travel::Status::DE::HAFAS::Stop instances Travel::Status::DE::DeutscheBahn 4.09 - Mon Apr 10 2023 * HAFAS->new: Add geoSearch option (search stops by coordinates) Travel::Status::DE::DeutscheBahn 4.08 - Sun Feb 12 2023 * Journey: Correctly report route_end / origin in arrivals mode * Journey->route: Add platform, sched_platform, rt_platform, and is_changed_platform accessors Travel::Status::DE::DeutscheBahn 4.07 - Sun Feb 05 2023 * hafas-m: Fix uninitialized value warnings in "--list" output * Improve support for non-DB HAFAS instances * Fix day change handling in departure board mode. Previously, journeys arriving / departing after midnight had wrong timestamps in some cases. Travel::Status::DE::DeutscheBahn 4.06 - Sat Feb 04 2023 * HAFAS->station: rename "uic" to "eva"; add "names" and "evas" keys * Rename Journey->uic to Journey->eva Travel::Status::DE::DeutscheBahn 4.05 - Fri Feb 03 2023 * StopFinder: add new_p constructor for async requests via promises Travel::Status::DE::DeutscheBahn 4.04 - Mon Jan 30 2023 * Journey->is_cancelled: correctly report cancellations in station board mode Travel::Status::DE::DeutscheBahn 4.03 - Sat Jan 28 2023 * HAFAS: Add "station" accessor * Journey: Add "station", "station_uic" and "line_no" accessors * Journey->line now returns journey type as well as line number * Journey->line_no provides the old Journey->line behaviour * Journey: Add "route_interesting" accessor Travel::Status::DE::DeutscheBahn 4.02 - Sun Nov 06 2022 * HAFAS->new: Add "results" and "lookahead" options * Build.PL: Specify File::Slurp test dependency Travel::Status::DE::DeutscheBahn 4.01 - Sat Oct 29 2022 * Journey: Add "class" accessor * Message: Correctly document "short" and "text" accessors ("header" and "lead" were not supported), add "is_him" accessor * Specify List::MoreUtils and List::Util dependencies for bin/hafas-m Travel::Status::DE::DeutscheBahn 4.00 - Fri Oct 28 2022 * Use mgate.exe HAFAS interface instead of stboard.exe/bhftafel.exe. This introduces several breaking changes in hafas-m, Travel::Status::DE::HAFAS, and Travel::StatuS::DE::HAFAS::Result. * hafas-m: Options -l/--lang, -L/--ignore-late, and -u/--url are no longer supported * hafas-m now supports journey details by specifying a journey ID instead of a station name. * Travel::Status::DE::HAFAS->new: "date" and "time" keys are no longer supported. Use "datetime" instead. * Travel::Status::DE::HAFAS->new: "lang" key is no longer supported. * Travel::Status::DE::HAFAS->new: "url" key is no longer supported. * Travel::Status::DE::HAFAS->new: "mode" key is no longer supported. Set "arrivals" to a true value to request arrivals instead of departures. * Travel::Status::DE::HAFAS->new: add optional "cache" key and support for "journey" requests with optional "with_polyline" key. * Travel::Status::DE::HAFAS: add new_p constructor for async requests via Promises. * Travel::Status::DE::HAFAS: Add "result" and "messages" accessors. * Rename Travel::Status::DE::HAFAS::Result to ...::Journey. The accessors "sched_date", "date", "info", "countdown", "countdown_sec", "raw_e_delay", "raw_delay", "sched_time", "time", "train", "train_no" and "line_no" are no longer supported. Introduces several new ones instead. * The module no longer depends on XML::LibXML * New dependency: Digest::MD5 Travel::Status::DE::DeutscheBahn 3.01 - Sat Jun 06 2020 * Fix support for ÖBB and other backends which recently switched from two- to four-digit years Travel::Status::DE::DeutscheBahn 3.00 - Sat May 09 2020 * Result: The date, datetime, and time accessors now report realtime data if available * Result: Add sched_date, sched_datetime, and sched_time accessors for schedule data Travel::Status::DE::DeutscheBahn 2.05 - Sun May 03 2020 * Document LWP::Protocol::https dependency * Remove BVG (Berliner Verkehrsgesellschaft) and SBB (Schweizerische Bundesbahnen) services Travel::Status::DE::DeutscheBahn 2.04 - Sun Dec 30 2018 * Handle invalid XML when using the VBB backend Travel::Status::DE::DeutscheBahn 2.03 - Sat Dec 16 2017 * Update DB backend API URL Travel::Status::DE::DeutscheBahn 2.02 - Sun Jan 08 2017 * New dependencies: DateTime and DateTime::Format::Strptime * Result: New accessors ->datetime, ->countdown and ->countdown_sec Travel::Status::DE::DeutscheBahn 2.01 - Sat Oct 10 2015 * Result: Fix ->type accessor (was not working for all backends) * Result: Add ->train_no / ->line_no accessor Travel::Status::DE::DeutscheBahn 2.00 - Fri Sep 25 2015 * This release is NOT backwards compatible with 1.xx versions * It now uses the HAFAS API instead of parsing bahn.de/ris and also supports various other HAFAS installations * New module dependencies: JSON, List::MoreUtils * Renamed db-ris to hafas-m * New modules: Travel::Status::DE::HAFAS and Travel::Status::DE::HAFAS::StopFinder * Renamed Travel::Status::DE::DeutscheBahn::Result to Travel::Status::DE::HAFAS::Result * db-ris/hafas-m: The options -f /--full-route and -v/--via are no longer supported * db-ris/hafas-m: New options -s / --service, -u / --url and --list * Travel::Status::DE::DeutscheBahn/HAFAS->new: The mot parameter is no longer supported. Use the new excluded_mots and exclusive_mots parameters instead * Travel::Status::DE::DeutscheBahn/HAFAS->new: Add service and url parameters * Travel::Status::DE::DeutscheBahn/HAFAS: Add errcode, similar_stops and get_active_service accessors * Travel::Status::DE::DeutscheBahn/HAFAS: Add static methods get_services and get_service * Result: Remove route, route_raw, route_info, route_interesting and route_timetable accessors * Result: Add is_changed_platform and messages accessors * Result->info is now undef instead of an empty string when no information is available Travel::Status::DE::DeutscheBahn 1.05 - Thu May 14 2015 * Result->route_interesting: Also consider airports * Result: Add route_info accessor * Result: Add is_cancelled accessor Travel::Status::DE::DeutscheBahn 1.04 - Sun May 03 2015 * Result: Add type accessor * DeutscheBahn->new: Add lwp_options parameter to pass options to LWP::UserAgent->new Travel::Status::DE::DeutscheBahn 1.03 - Tue Oct 21 2014 * Add primitive JSON serializer to Travel::Status::DE::DeutscheBahn::Result * Fix $result->delay (was broken by changes in the RIS output format) Travel::Status::DE::DeutscheBahn 1.02 - Tue Sep 17 2013 * Respect proxy environment variables * Add -a / --arrivals option to show arrivals instead of departures * Disable smartmatch warnings on perl >= 5.018 Travel::Status::DE::DeutscheBahn 1.01 - Sat Dec 03 2011 * Detect ambiguous input errors (available via errstr) * Add language switch for additional information (german/english) [Travel::Status::DE::DeutscheBahn::Result] * Result: Add line (== train) and date accessors [db-ris] * Add -l / --lang option Travel::Status::DE::DeutscheBahn 1.00 - Sun Sep 04 2011 [db-ris] * Add --full-route option [Travel::Status::DE::DeutscheBahn] * Fix bug when receiving no platform numbers from the DB RIS [Travel::Status::DE::DeutscheBahn::Result] * Add route_timetable accessor containing station names and their corresponding arrival times Travel::Status::DE::DeutscheBahn 0.05 - Tue Aug 09 2011 [Travel::Status::DE::DeutscheBahn] * Fix ->results returning duplicate connections when accessed more than one time * new: Only die when encountering wrong options, set ->errstr otherwise * Adds new ->errstr accessor to check for request errors Travel::Status::DE::DeutscheBahn 0.04 - Wed Jul 13 2011 [Travel::Status::DE::DeutscheBahn::Result] * The info accessor now strips the mostly useless "k.A." / "pünktlich" (train on time) text parts * Add (slightly experimental) route_interesting accessor * Add delay accessor Travel::Status::DE::DeutscheBahn 0.03 - Wed Jul 13 2011 * Clarify derl dependency (we actually need >= 5.10.1) [Travel::Status::DE::DeutscheBahn] * Strip leading / trailing whitespace in result fields Travel::Status::DE::DeutscheBahn 0.02 - Wed Jul 06 2011 [db-ris] * Only display info when a train is late, not when on time / unknown * Add --ignore-late option [Travel::Status::DE::DeutscheBahn] * Add route_raw accessor * Proper HTTP request error handling * Strip leading whitespace from ::Result info * Do not include canceled stops in the route Travel::Status::DE::DeutscheBahn 0.01 - Mon Jun 27 2011 * Initial release * Crawls almost all data available in the web interface