diff options
| author | Daniel Friesel <derf@finalrewind.org> | 2016-11-15 19:10:52 +0100 | 
|---|---|---|
| committer | Daniel Friesel <derf@finalrewind.org> | 2016-11-15 19:10:52 +0100 | 
| commit | 1bbb00b3edf11f2219130370c37615caae40e8f5 (patch) | |
| tree | aa006d166c947753228b81d64a47692961e2279a | |
| parent | ce21810e88853a12823902cdf7e7291f1516c376 (diff) | |
routing: make /station?via=... the default, add special case for /station/via1.10
| -rw-r--r-- | index.pl | 19 | 
1 files changed, 9 insertions, 10 deletions
@@ -306,7 +306,7 @@ helper 'json_route_diff' => sub {  sub handle_request {  	my $self    = shift;  	my $station = $self->stash('station'); -	my $via     = $self->stash('via') // $self->param('via'); +	my $via     = $self->param('via');  	my @platforms = split( /,/, $self->param('platforms') // q{} );  	my @lines     = split( /,/, $self->param('lines')     // q{} ); @@ -365,12 +365,12 @@ sub handle_request {  		return;  	} -	# foo/bar used to mean "departures for foo via bar", and this is still the -	# default. However, there are also stations named "foo/bar". So, if -	# "foo" is not a valid station, try "foo/bar" instead -	if ( not @results and $self->stash('via')) { -		$station = "$station/$via"; -		$via = undef; +	# foo/bar used to mean "departures for foo via bar". This is now +	# deprecated, but most of these cases are handled here. +	if ( not @results and $station =~ m{/} ) { +		( $station, $via ) = split( qr{/}, $station ); +		$self->param( station => $station ); +		$self->param( via     => $via );  		$data        = get_results_for( $backend, $station, %opt );  		$results_ref = $data->{results};  		$errstr      = $data->{errstr}; @@ -921,9 +921,8 @@ post '/_geolocation' => sub {  app->defaults( layout => 'default' );  get '/'               => \&handle_request; -get '/#station'       => \&handle_request; -get '/#station/#via'  => \&handle_request; -get '/multi/#station' => \&handle_request; +get '/multi/*station' => \&handle_request; +get '/*station'       => \&handle_request;  app->config(  	hypnotoad => {  | 
