summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rwxr-xr-xbin/dbris-m24
-rw-r--r--lib/Travel/Status/DE/DBRIS.pm17
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};