diff options
Diffstat (limited to 'index.pl')
-rw-r--r-- | index.pl | 14 |
1 files changed, 11 insertions, 3 deletions
@@ -319,6 +319,7 @@ sub handle_request { my $with_related = $self->param('recursive') // 0; my $callback = $self->param('callback'); my $apiver = $self->param('version') // 0; + my @train_types = split( /,/, $self->param('train_types') // q{} ); my %opt; my $api_version @@ -399,9 +400,10 @@ sub handle_request { } for my $result (@results) { - my $platform = ( split( / /, $result->platform ) )[0]; - my $line = $result->line; - my $delay = $result->delay; + my $platform = ( split( / /, $result->platform ) )[0]; + my $line = $result->line; + my $train_type = $result->type; + my $delay = $result->delay; if ( $via and $result->can('route_post') ) { $via =~ s{ , \s* }{|}gx; my @route = $result->route_post; @@ -418,6 +420,12 @@ sub handle_request { { next; } + if ( @train_types + and + not( List::MoreUtils::any { $train_type =~ m{^$_} } @train_types ) ) + { + next; + } if ( $backend eq 'iris' and $admode eq 'arr' and not $result->arrival ) { next; |