HAFAS: Use locationSearch rather than similar_stops_p
locationSearch uses mgate.exe, just like the regular departure board. similar_stops_p relies on ajax-getstop.exe which may become unavailable sooner rather than later.
This commit is contained in:
parent
0b1de41366
commit
6364751eb1
2 changed files with 18 additions and 10 deletions
|
@ -1105,23 +1105,20 @@ sub station {
|
|||
}
|
||||
elsif ( $use_hafas and $status and $status->errcode eq 'LOCATION' )
|
||||
{
|
||||
$status->similar_stops_p->then(
|
||||
$self->hafas->search_location_p( query => $station )->then(
|
||||
sub {
|
||||
my @suggestions = @_;
|
||||
my ($hafas2) = @_;
|
||||
my @suggestions = $hafas2->results;
|
||||
if ( @suggestions == 1 ) {
|
||||
$self->redirect_to(
|
||||
'/s/' . $suggestions[0]->{id} . '?hafas=1' );
|
||||
'/s/' . $suggestions[0]->eva . '?hafas=1' );
|
||||
}
|
||||
else {
|
||||
$self->render(
|
||||
'disambiguation',
|
||||
suggestions => [
|
||||
map {
|
||||
{
|
||||
name => $_->{name},
|
||||
eva => $_->{id}
|
||||
}
|
||||
} @suggestions
|
||||
map { { name => $_->name, eva => $_->eva } }
|
||||
@suggestions
|
||||
],
|
||||
status => 300,
|
||||
);
|
||||
|
@ -1133,7 +1130,7 @@ sub station {
|
|||
$self->render(
|
||||
'exception',
|
||||
exception =>
|
||||
"StopFinder threw '$err2' when handling '$err'",
|
||||
"locationSearch threw '$err2' when handling '$err'",
|
||||
status => 502
|
||||
);
|
||||
}
|
||||
|
|
|
@ -98,6 +98,17 @@ sub get_departures_p {
|
|||
);
|
||||
}
|
||||
|
||||
sub search_location_p {
|
||||
my ( $self, %opt ) = @_;
|
||||
|
||||
return Travel::Status::DE::HAFAS->new_p(
|
||||
locationSearch => $opt{query},
|
||||
cache => $self->{realtime_cache},
|
||||
promise => 'Mojo::Promise',
|
||||
user_agent => $self->{user_agent}->request_timeout(5),
|
||||
);
|
||||
}
|
||||
|
||||
sub get_journey_p {
|
||||
my ( $self, %opt ) = @_;
|
||||
|
||||
|
|
Loading…
Reference in a new issue