summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDaniel Friesel <derf@finalrewind.org>2015-06-23 10:25:02 +0200
committerDaniel Friesel <derf@finalrewind.org>2015-06-23 10:25:33 +0200
commitc3daa7061eaad138b6662d159744859f64bce686 (patch)
tree3a30c6f85f6359b061ea4c530f55a7c40a95b718
parentb791a9da84da8149ad98b6ac529e06313a140b04 (diff)
efa-m: add -v/--via
-rw-r--r--Changelog1
-rwxr-xr-xbin/efa-m16
2 files changed, 16 insertions, 1 deletions
diff --git a/Changelog b/Changelog
index cfd948e..295ab90 100644
--- a/Changelog
+++ b/Changelog
@@ -7,6 +7,7 @@ git HEAD
* EFA: Add identified_data accessor
* Result: Add route_pre, route_post and route_interesting accessors
* efa-m: Add -f / --full-route option
+ * efa-m: Add -v / --via option
Travel::Status::DE::VRR 1.09 - Thu Apr 30 2015
diff --git a/bin/efa-m b/bin/efa-m
index b4225c1..2d079cb 100755
--- a/bin/efa-m
+++ b/bin/efa-m
@@ -12,12 +12,13 @@ binmode( STDOUT, ':encoding(utf-8)' );
use Encode qw(decode);
use Getopt::Long qw(:config no_ignore_case);
-use List::Util qw(max);
+use List::Util qw(first max);
use Travel::Status::DE::EFA;
my $efa_url = 'http://efa.vrr.de/vrr/XSLT_DM_REQUEST';
my ( $date, $time, $input_type, $list_lines, $offset, $relative_times );
my ($full_routes);
+my ($filter_via);
my ( $timeout, $developer_mode );
my ( @grep_lines, @grep_platforms );
my ( %edata, @edata_pre );
@@ -36,6 +37,7 @@ GetOptions(
't|time=s' => \$time,
'timeout=i' => \$timeout,
'u|efa-url=s' => \$efa_url,
+ 'v|via=s' => \$filter_via,
'V|version' => \&show_version,
'devmode' => \$developer_mode,
@@ -63,6 +65,9 @@ for my $efield (@edata_pre) {
default { $edata{$efield} = 1 }
}
}
+if ($filter_via) {
+ $full_routes = 1;
+}
my $status = Travel::Status::DE::EFA->new(
date => $date,
@@ -198,6 +203,9 @@ sub show_results {
or ( @grep_platforms
and not( $platform ~~ \@grep_platforms ) )
or ( $offset and $d->countdown < $offset )
+ or ( $filter_via
+ and
+ not( first { $_->{stop} =~ m{$filter_via}io } $d->route_post ) )
)
{
next;
@@ -325,6 +333,12 @@ than others. See Travel::Status::DE::EFA(3pm) for alternatives.
Set timeout for HTTP requests. Default: 10 seconds. Set to 0 or a negative
value to disable it.
+=item B<-v>, B<--via> I<station>
+
+Only show trains serving I<station> after the requseted I<stop>. I<station>
+is matched against the "I<city> I<stop>" fields in each line's route.
+Regular expressions are also supported.
+
=item B<-V>, B<--version>
Show version information.