diff options
author | Daniel Friesel <derf@finalrewind.org> | 2011-09-11 13:17:12 +0200 |
---|---|---|
committer | Daniel Friesel <derf@finalrewind.org> | 2011-09-11 13:17:12 +0200 |
commit | 43f83fc7df3a563521af01dd1251ddd8e8d21d3a (patch) | |
tree | 7838ef7fdf5f682d2fc8e75f0134d0da649a6dc9 | |
parent | cddc688b8152407f53916268a41304c01d137e87 (diff) |
Add initial support for additional departure information
-rwxr-xr-x | bin/efa-m | 13 | ||||
-rw-r--r-- | lib/Travel/Status/DE/VRR.pm | 5 | ||||
-rw-r--r-- | lib/Travel/Status/DE/VRR/Result.pm | 8 |
3 files changed, 23 insertions, 3 deletions
@@ -64,6 +64,16 @@ sub display_result { } for my $line (@lines) { + + if ( length( $line->[4] ) ) { + $line->[4] =~ tr{\n\x0d}{ }s; + chomp $line->[4]; + print "\n"; + for my $info_line ( split( qr{\n}, $line->[4] ) ) { + say "# ${info_line}"; + } + } + printf( join( q{ }, ( map { "%-${_}s" } @line_length ) ) . "\n", @{$line}[ 0 .. 3 ] @@ -75,7 +85,8 @@ sub display_result { for my $d ( $status->results ) { - push( @output, [ $d->time, $d->platform, $d->line, $d->destination, ] ); + push( @output, + [ $d->time, $d->platform, $d->line, $d->destination, $d->info ] ); } display_result(@output); diff --git a/lib/Travel/Status/DE/VRR.pm b/lib/Travel/Status/DE/VRR.pm index ae1ef44..3a7375d 100644 --- a/lib/Travel/Status/DE/VRR.pm +++ b/lib/Travel/Status/DE/VRR.pm @@ -94,14 +94,16 @@ sub results { [ 'platform', './td[3]' ], [ 'line', './td[5]' ], [ 'dest', './td[7]' ], + [ 'info', './td[9]' ], ); @parts = map { [ $_->[0], XML::LibXML::XPathExpression->new( $_->[1] ) ] } @parts; for my $tr ( $self->{tree}->findnodes($xp_element) ) { - my ( $time, $platform, $line, $dest ) + my ( $time, $platform, $line, $dest, $info ) = map { ( $tr->findnodes( $_->[1] ) )[0]->textContent } @parts; + push( @results, Travel::Status::DE::VRR::Result->new( @@ -109,6 +111,7 @@ sub results { platform => $platform, line => $line, destination => $dest, + info => $info, ) ); } diff --git a/lib/Travel/Status/DE/VRR/Result.pm b/lib/Travel/Status/DE/VRR/Result.pm index 083e225..c5b74ff 100644 --- a/lib/Travel/Status/DE/VRR/Result.pm +++ b/lib/Travel/Status/DE/VRR/Result.pm @@ -9,7 +9,7 @@ use parent 'Class::Accessor'; our $VERSION = '0.00'; Travel::Status::DE::VRR::Result->mk_ro_accessors( - qw(destination time platform line)); + qw(destination time platform line info)); sub new { my ( $obj, %conf ) = @_; @@ -57,6 +57,12 @@ line number and destination. The tram/bus/train destination. +=item $departure->info + +Additional information related to the departure (string). If departures for +an address were requested, this is the stop name, otherwise it may be recent +news related to the line's schedule. + =item $departure->line The name/number of the line. |