From fc95f2a3ceef03f076ee268d71ce11d5765a6c37 Mon Sep 17 00:00:00 2001 From: Birte Kristina Friesel Date: Mon, 25 Mar 2024 11:52:14 +0100 Subject: add --change-time / min_change_time options --- Changelog | 5 +++++ bin/hafas | 33 +++++++++++++++++++++------------ lib/Travel/Routing/DE/HAFAS.pm | 8 +++++++- 3 files changed, 33 insertions(+), 13 deletions(-) diff --git a/Changelog b/Changelog index 82a3dc0..e6055b0 100644 --- a/Changelog +++ b/Changelog @@ -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 diff --git a/bin/hafas b/bin/hafas index 98b4a51..dca2f56 100755 --- a/bin/hafas +++ b/bin/hafas @@ -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 changeovers. +=item B<-C>, B<--change-time> I + +Request connections with scheduled changeover durations of at least I. +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
.I.[I] 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 changeovers. +=item B => I + +Request connections with scheduled changeover durations of at least I. +Note that this does not account for real-time data: the backend may return +delayed connections that violate the specified changeover duration. + =item B => I Request results from I, defaults to "DB". -- cgit v1.2.3