diff --git a/lib/Travelynx/Controller/Traveling.pm b/lib/Travelynx/Controller/Traveling.pm index 1eef0c8f4cbecaa0e8a8c5df47af0759d77fad90..ae5be697fd5310e3256b7015c7c6fc2fcba3661d 100755 --- a/lib/Travelynx/Controller/Traveling.pm +++ b/lib/Travelynx/Controller/Traveling.pm @@ -534,6 +534,14 @@ sub commute { elsif ( $dep->dow <= 5 and $dep->hour > 12 ) { $candidate_count{ $journey->{from_name} }++; } + else { + # Avoid selecting an intermediate station for multi-leg commutes. + # Assumption: The intermediate station is also used for private + # travels -> penalize stations which are used on weekends or at + # unexpected times. + $candidate_count{ $journey->{from_name} }--; + $candidate_count{ $journey->{to_name} }--; + } } $station = max_by { $candidate_count{$_} } keys %candidate_count; }