diff options
-rw-r--r-- | Changelog | 5 | ||||
-rwxr-xr-x | bin/hafas | 33 | ||||
-rw-r--r-- | lib/Travel/Routing/DE/HAFAS.pm | 8 |
3 files changed, 33 insertions, 13 deletions
@@ -1,3 +1,8 @@ +git HEAD + + * hafas: Add -C / --change-time option + * HAFAS: Add min_change_time option + Travel::Routing::DE::HAFAS 0.05 - Sun Mar 24 2024 * hafas: Add -c / --max-change option @@ -22,8 +22,9 @@ my ( $json_output, $raw_json_output ); my $show_full_route; my ( $list_services, $service ); my ( @excluded_mots, @exclusive_mots ); -my $max_change = undef; -my $verbosity = 0; +my $max_change = undef; +my $min_change_time = undef; +my $verbosity = 0; my @output; my %min_verbosity = ( @@ -47,6 +48,7 @@ my $output_reset = -t STDOUT ? "\033[0m" : q{}; GetOptions( 'a|arrive=s' => sub { $arrival = 1; $time = $_[1] }, 'c|max-change=s' => \$max_change, + 'C|change-time=s' => \$min_change_time, 'd|date=s' => \$date, 'h|help' => sub { show_help(0) }, 'f|full-route' => \$show_full_route, @@ -85,16 +87,17 @@ if ( not( $from_stop and $to_stop ) ) { } my %opt = ( - service => $service, - from_stop => $from_stop, - via_stops => \@via_stops, - to_stop => $to_stop, - excluded_mots => \@excluded_mots, - exclusive_mots => \@exclusive_mots, - max_change => $max_change, - developer_mode => $developer_mode, - arrival => $arrival, - language => $language, + service => $service, + from_stop => $from_stop, + via_stops => \@via_stops, + to_stop => $to_stop, + excluded_mots => \@excluded_mots, + exclusive_mots => \@exclusive_mots, + max_change => $max_change, + min_change_time => $min_change_time, + developer_mode => $developer_mode, + arrival => $arrival, + language => $language, ); if ( $date or $time ) { @@ -477,6 +480,12 @@ Overrides B<--time> / B<--depart>. Request connections with no more than I<count> changeovers. +=item B<-C>, B<--change-time> I<minutes> + +Request connections with scheduled changeover durations of at least I<minutes>. +Note that this does not account for real-time data: the backend may return +delayed connections that violate the specified changeover duration. + =item B<-d>, B<--date> I<dd>.I<mm>.[I<yyyy>] Planned departure (or arrival) date. Default: today. diff --git a/lib/Travel/Routing/DE/HAFAS.pm b/lib/Travel/Routing/DE/HAFAS.pm index 8ef5959..1ced8e8 100644 --- a/lib/Travel/Routing/DE/HAFAS.pm +++ b/lib/Travel/Routing/DE/HAFAS.pm @@ -243,7 +243,7 @@ sub new { arrLocL => [ $self->stop_to_hafas( $self->{to_stop} ) ], numF => 6, maxChg => $conf{max_change}, - minChgTime => undef, + minChgTime => $conf{min_change_time}, outFrwd => $outFrwd, viaLocL => @via_locs ? [ map { { loc => $_ } } @via_locs ] @@ -760,6 +760,12 @@ pass an empty hashref to call the LWP::UserAgent constructor without arguments. Request connections with no more than I<count> changeovers. +=item B<min_change_time> => I<minutes> + +Request connections with scheduled changeover durations of at least I<minutes>. +Note that this does not account for real-time data: the backend may return +delayed connections that violate the specified changeover duration. + =item B<service> => I<service> Request results from I<service>, defaults to "DB". |