diff options
author | Birte Kristina Friesel <derf@finalrewind.org> | 2023-11-22 21:22:20 +0100 |
---|---|---|
committer | Birte Kristina Friesel <derf@finalrewind.org> | 2023-11-22 21:22:20 +0100 |
commit | 30eff16801a7533ad176cb76cace0ba3aa861336 (patch) | |
tree | 0ff7fbcd424d1913635cb0197b5e39fe6be37057 | |
parent | 10acec329cce1356b3965a1ae3819711f21e5939 (diff) |
Route/Part, efa: Expose via delays
-rwxr-xr-x | bin/efa | 21 | ||||
-rw-r--r-- | lib/Travel/Routing/DE/EFA.pm | 8 | ||||
-rw-r--r-- | t/21-vrr.t | 2 |
3 files changed, 22 insertions, 9 deletions
@@ -173,7 +173,7 @@ sub format_footpath { return $str; } -sub format_delay { +sub format_delay_incl { my ( $delay, $len ) = @_; if ( $delay and $len ) { return sprintf( "(%+${len}d)", $delay ); @@ -181,6 +181,14 @@ sub format_delay { return q{}; } +sub format_delay_excl { + my ( $delay, $len ) = @_; + if ( $delay and $len ) { + return sprintf( " %+${len}d ", $delay ); + } + return q{}; +} + sub display_routes { my (@routes) = @_; @@ -269,21 +277,24 @@ sub display_connection { printf( "%-5s %-${delay_fmt}s ab %-30s\n", $c->departure_time, - format_delay( $c->departure_delay, $delay_len ), + format_delay_incl( $c->departure_delay, $delay_len ), $c->departure_stop_and_platform, ); if ( $opt->{'full-route'} ) { for my $via_stop ( $c->via ) { - printf( "%-5s %-${delay_fmt}s %-30s %s\n", - $via_stop->[1], q{}, $via_stop->[2], $via_stop->[3] ); + printf( + "%-5s %-${delay_fmt}s %-30s %s\n", + $via_stop->[1], format_delay_excl( $via_stop->[4], $delay_len ), + $via_stop->[2], $via_stop->[3] + ); } } printf( "%-5s %-${delay_fmt}s an %-30s %s\n", $c->arrival_time, - format_delay( $c->arrival_delay, $delay_len ), + format_delay_incl( $c->arrival_delay, $delay_len ), $c->arrival_stop_and_platform, $occupancy ); diff --git a/lib/Travel/Routing/DE/EFA.pm b/lib/Travel/Routing/DE/EFA.pm index 79e6636..edfc918 100644 --- a/lib/Travel/Routing/DE/EFA.pm +++ b/lib/Travel/Routing/DE/EFA.pm @@ -726,8 +726,9 @@ sub parse_xml_part { next; } - my $name = $ve->getAttribute('name'); - my $platform = $ve->getAttribute('platformName'); + my $name = $ve->getAttribute('name'); + my $platform = $ve->getAttribute('platformName'); + my $arr_delay = $ve->getAttribute('arrDelay'); if ( $name eq $hash->{departure_stop} or $name eq $hash->{arrival_stop} ) @@ -741,7 +742,8 @@ sub parse_xml_part { $self->itddate_str($e_vdate), $self->itdtime_str($e_vtime), $name, - $platform + $platform, + $arr_delay, ] ); } @@ -78,7 +78,7 @@ is( $c0->arrival_time, '14:02', 'r0,0: artime' ); is( $c0->arrival_stime, '14:02', 'r0,0: astime' ); is_deeply( ($c0->via)[0], - ['27.11.2011', '13:56', 'Essen Florastr.', 'Bstg. 1'], + ['27.11.2011', '13:56', 'Essen Florastr.', 'Bstg. 1', undef], 'r0,0: via[0]'); is( $c1->delay, 3, 'r0,1: delay' ); |