diff options
-rwxr-xr-x | bin/dbris-m | 24 | ||||
-rw-r--r-- | lib/Travel/Status/DE/DBRIS.pm | 17 |
2 files changed, 26 insertions, 15 deletions
diff --git a/bin/dbris-m b/bin/dbris-m index 9dbaf97..8733915 100755 --- a/bin/dbris-m +++ b/bin/dbris-m @@ -14,6 +14,7 @@ use List::Util qw(max); use Travel::Status::DE::DBRIS; my ( $date, $time ); +my $mots; my $developer_mode; my $show_jid; my $use_cache = 1; @@ -31,15 +32,16 @@ my $output_bold = -t STDOUT ? "\033[1m" : q{}; my $output_reset = -t STDOUT ? "\033[0m" : q{}; GetOptions( - 'd|date=s' => \$date, - 'h|help' => sub { show_help(0) }, - 'j|with-jid' => \$show_jid, - 't|time=s' => \$time, - 'V|version' => \&show_version, - 'cache!' => \$use_cache, - 'devmode' => \$developer_mode, - 'json' => \$json_output, - 'raw-json' => \$raw_json_output, + 'd|date=s' => \$date, + 'h|help' => sub { show_help(0) }, + 'j|with-jid' => \$show_jid, + 'm|modes-of-transit=s' => \$mots, + 't|time=s' => \$time, + 'V|version' => \&show_version, + 'cache!' => \$use_cache, + 'devmode' => \$developer_mode, + 'json' => \$json_output, + 'raw-json' => \$raw_json_output, ) or show_help(1); @@ -140,6 +142,10 @@ if ( $date or $time ) { $opt{datetime} = $dt; } +if ($mots) { + $opt{modes_of_transit} = [ split( qr{, *}, $mots ) ]; +} + my $status = Travel::Status::DE::DBRIS->new(%opt); sub show_help { diff --git a/lib/Travel/Status/DE/DBRIS.pm b/lib/Travel/Status/DE/DBRIS.pm index 3b25862..49b54be 100644 --- a/lib/Travel/Status/DE/DBRIS.pm +++ b/lib/Travel/Status/DE/DBRIS.pm @@ -49,6 +49,13 @@ sub new { if ( my $station = $conf{station} ) { my $dt = $conf{datetime} // DateTime->now( time_zone => 'Europe/Berlin' ); + my @mots + = ( + qw(ICE EC_IC IR REGIONAL SBAHN BUS SCHIFF UBAHN TRAM ANRUFPFLICHTIG) + ); + if ( $conf{modes_of_transit} ) { + @mots = @{ $conf{modes_of_transit} // [] }; + } $req = 'https://www.bahn.de/web/api/reiseloesung/abfahrten' . '?datum=' @@ -59,12 +66,10 @@ sub new { . $station->{eva} . '&ortId=' . $station->{id} - . '&mitVias=true&maxVias=8' - . '&verkehrsmittel[]=ICE&verkehrsmittel[]=EC_IC' - . '&verkehrsmittel[]=IR&verkehrsmittel[]=REGIONAL' - . '&verkehrsmittel[]=SBAHN&verkehrsmittel[]=BUS' - . '&verkehrsmittel[]=SCHIFF&verkehrsmittel[]=UBAHN' - . '&verkehrsmittel[]=TRAM&verkehrsmittel[]=ANRUFPFLICHTIG'; + . '&mitVias=true&maxVias=8'; + for my $mot (@mots) { + $req .= '&verkehrsmittel[]=' . $mot; + } } elsif ( my $gs = $conf{geoSearch} ) { my $lat = $gs->{latitude}; |