From c3daa7061eaad138b6662d159744859f64bce686 Mon Sep 17 00:00:00 2001 From: Daniel Friesel Date: Tue, 23 Jun 2015 10:25:02 +0200 Subject: efa-m: add -v/--via --- Changelog | 1 + bin/efa-m | 16 +++++++++++++++- 2 files changed, 16 insertions(+), 1 deletion(-) 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 + +Only show trains serving I after the requseted I. I +is matched against the "I I" fields in each line's route. +Regular expressions are also supported. + =item B<-V>, B<--version> Show version information. -- cgit v1.2.3