summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDaniel Friesel <derf@finalrewind.org>2011-09-11 13:17:12 +0200
committerDaniel Friesel <derf@finalrewind.org>2011-09-11 13:17:12 +0200
commit43f83fc7df3a563521af01dd1251ddd8e8d21d3a (patch)
tree7838ef7fdf5f682d2fc8e75f0134d0da649a6dc9
parentcddc688b8152407f53916268a41304c01d137e87 (diff)
Add initial support for additional departure information
-rwxr-xr-xbin/efa-m13
-rw-r--r--lib/Travel/Status/DE/VRR.pm5
-rw-r--r--lib/Travel/Status/DE/VRR/Result.pm8
3 files changed, 23 insertions, 3 deletions
diff --git a/bin/efa-m b/bin/efa-m
index a722588..0c10ba6 100755
--- a/bin/efa-m
+++ b/bin/efa-m
@@ -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.