From 9e453dec999ac7fd5fc7b526bb7fe04d9c20112e Mon Sep 17 00:00:00 2001 From: Daniel Friesel Date: Sun, 3 Aug 2014 23:08:27 +0200 Subject: add --discover option and get_efa_urls method --- bin/efa | 41 +++++++++++++++++++++++++++++++++++++++++ 1 file changed, 41 insertions(+) (limited to 'bin') diff --git a/bin/efa b/bin/efa index fa3a309..3d8a377 100755 --- a/bin/efa +++ b/bin/efa @@ -160,6 +160,7 @@ GetOptions( bike|b date|d=s depart=s + discover|D efa-url|u=s exclude|e=s@ extended-info|E @@ -220,6 +221,40 @@ if ( $opt->{exclude} ) { $opt->{exclude} = [ split( /,/, join( ',', @{ $opt->{exclude} } ) ) ]; } +if ( $opt->{discover} ) { + for my $pair ( Travel::Routing::DE::EFA::get_efa_urls() ) { + my ( $url, $name ) = @{$pair}; + $efa = eval { + Travel::Routing::DE::EFA->new( + efa_url => $url, + + origin => [ @from, $from_type ], + destination => [ @to, $to_type ], + via => ( @via ? [ @via, $via_type ] : undef ), + + arrival_time => $opt->{arrive}, + departure_time => $opt->{depart} // $opt->{time}, + date => $opt->{date}, + exclude => $opt->{exclude}, + train_type => $opt->{include}, + with_bike => $opt->{bike}, + + select_interchange_by => $opt->{prefer}, + use_near_stops => $opt->{proximity}, + walk_speed => $opt->{'walk-speed'}, + max_interchanges => $opt->{'max-change'}, + num_results => $opt->{'num-connections'}, + + lwp_options => { timeout => $opt->{timeout} }, + ); + }; + if ($efa) { + printf( "%-55s (%s)\n", $url, $name ); + } + } + exit 0; +} + $efa = eval { Travel::Routing::DE::EFA->new( efa_url => $efa_url, @@ -344,6 +379,12 @@ Journey date Choose connections allowing to carry a bike +=item B<-D>|B<--discover> + +Probe all known EFA entry points for the specified connection. No routes are +returned in this case. Instead, B will print the URLs and names of all +entry points which did not return an error. + =item B<-e>|B<--exclude> I Exclude I (comma separated list). -- cgit v1.2.3