Commit 444dad0d authored by Birte Kristina Friesel's avatar Birte Kristina Friesel
Browse files

Add option to specify maximum number of connections

parent 52641203
Loading
Loading
Loading
Loading
+1 −0
Original line number Diff line number Diff line
git HEAD

    * Improve error message for unparsable (or missing) route data
    * Add option to specify maximum number of connections

Travel::Routing::DE::VRR 2.04 - Tue Jan 07 2014

+7 −0
Original line number Diff line number Diff line
@@ -155,6 +155,7 @@ GetOptions(
		help|h
		ignore-info|I:s
		max-change|m=i
		num-connections|n=i
		prefer|P=s
		proximity|p
		include|i=s
@@ -220,6 +221,7 @@ $efa = eval {
		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} },
	);
@@ -330,6 +332,11 @@ Display duration, ticket class and price for each route (if available)

Print connections with at most I<number> interchanges

=item B<-n>|B<--num-connections> I<number>

Return up to I<number> connections.  If unset, the default of the respective
EFA server is used (usually 4 or 5).

=item B<-P>|B<--prefer> I<type>

Prefer connections of I<type>:
+19 −0
Original line number Diff line number Diff line
@@ -156,6 +156,14 @@ sub max_interchanges {
	return;
}

sub number_of_trips {
	my ( $self, $num ) = @_;

	$self->{post}->{calcNumberOfTrips} = $num;

	return;
}

sub select_interchange_by {
	my ( $self, $prefer ) = @_;

@@ -312,6 +320,7 @@ sub create_post {
		name_destination                                   => q{},
		name_origin                                        => q{},
		name_via                                           => q{},
		nextDepsPerLeg                                     => 1,
		outputFormat                                       => 'XML',
		placeInfo_destination                              => 'invalid',
		placeInfo_origin                                   => 'invalid',
@@ -364,6 +373,9 @@ sub create_post {
	if ( $conf->{max_interchanges} ) {
		$self->max_interchanges( $conf->{max_interchanges} );
	}
	if ( $conf->{num_results} ) {
		$self->number_of_trips( $conf->{num_results} );
	}
	if ( $conf->{select_interchange_by} ) {
		$self->select_interchange_by( $conf->{select_interchange_by} );
	}
@@ -586,6 +598,8 @@ sub parse_xml {
	my $tree = $self->{tree}
	  = XML::LibXML->load_xml( string => $self->{xml_reply}, );

	#	say $tree->toString(2);

	my $xp_element = XML::LibXML::XPathExpression->new(
		'//itdItinerary/itdRouteList/itdRoute');
	my $xp_err = XML::LibXML::XPathExpression->new(
@@ -785,6 +799,11 @@ seilbahn, schiff, ast, sonstige

Set maximum number of interchanges

=item B<num_results> => I<num>

Return up to I<num> connections.  If unset, the default of the respective
EFA server is used (usually 4 or 5).

=item B<select_interchange_by> => B<speed>|B<waittime>|B<distance>

Prefer either fast connections (default), connections with low wait time or