From b6c48e211c4ef0512a97fe07f675747cfc3ff363 Mon Sep 17 00:00:00 2001 From: Daniel Friesel Date: Sun, 14 Jun 2015 13:07:49 +0200 Subject: Add train_product accessor to Route/Part and use it in bin/efa --- Changelog | 5 ++++- bin/efa | 6 ++++-- lib/Travel/Routing/DE/EFA.pm | 1 + lib/Travel/Routing/DE/EFA/Route/Part.pm | 14 +++++++++++--- 4 files changed, 20 insertions(+), 6 deletions(-) diff --git a/Changelog b/Changelog index 540cba0..98f0993 100644 --- a/Changelog +++ b/Changelog @@ -1,6 +1,9 @@ git HEAD - * efa: Fix odd encoding issues when using -w, -t, -d, -a and similar + * efa: Fix encoding issues when using -w, -t, -d, -a and similar + * Travel::Routing::DE::EFA::Route::Part: Add train_product accessor + * Improve support for walking connections + * Handle "nicht umsteigen" messages and other unusual connection types Travel::Routing::DE::VRR 2.10 - Fri May 29 2015 diff --git a/bin/efa b/bin/efa index eaa0a22..d56304d 100755 --- a/bin/efa +++ b/bin/efa @@ -137,8 +137,10 @@ sub display_connection { printf( "%-5s ab %-30s %-20s %s\n", - $c->departure_time, $c->departure_stop_and_platform, - $c->train_line, $c->train_destination, + $c->departure_time, + $c->departure_stop_and_platform, + $c->train_line || $c->train_product, + $c->train_destination, ); if ( $opt->{'full-route'} ) { diff --git a/lib/Travel/Routing/DE/EFA.pm b/lib/Travel/Routing/DE/EFA.pm index 801270b..562c0e9 100644 --- a/lib/Travel/Routing/DE/EFA.pm +++ b/lib/Travel/Routing/DE/EFA.pm @@ -594,6 +594,7 @@ sub parse_xml_part { departure_stop => $e_dep->getAttribute('name'), departure_platform => $e_dep->getAttribute('platformName'), train_line => $e_mot->getAttribute('name'), + train_product => $e_mot->getAttribute('productName'), train_destination => $e_mot->getAttribute('destination'), arrival_date => $self->itddate_str($e_adate), arrival_time => $self->itdtime_str($e_atime), diff --git a/lib/Travel/Routing/DE/EFA/Route/Part.pm b/lib/Travel/Routing/DE/EFA/Route/Part.pm index 8c46fb9..e6c6e18 100644 --- a/lib/Travel/Routing/DE/EFA/Route/Part.pm +++ b/lib/Travel/Routing/DE/EFA/Route/Part.pm @@ -13,7 +13,7 @@ Travel::Routing::DE::EFA::Route::Part->mk_ro_accessors( arrival_date arrival_time arrival_sdate arrival_stime delay departure_platform departure_stop departure_date departure_time departure_sdate - departure_stime train_line train_destination + departure_stime train_destination train_line train_product ) ); @@ -219,11 +219,19 @@ newline-terminated strings =item $part->train_destination -destination of the line providing the connection +Destination of the line providing the connection. May be empty. =item $part->train_line -name / number of the line +Name / number of the line. May be empty. + +=item $part->train_product + +Usually the prefix of B, for instance C<< U-Bahn >> or +C<< Niederflurstrab >>. However, it may also contain special values such as +C<< FuEweg >> (for a direct connection without transit vehicles) or +C<< nicht umsteigen >> (in case a vehicle changes its line number at a stop). +In those cases, B and B are usually empty. =item $part->via -- cgit v1.2.3