From 86c3e3526179429c5fa12ecb9aa2eb7d2c0a7a9b Mon Sep 17 00:00:00 2001 From: Daniel Friesel Date: Fri, 24 Jun 2011 10:10:35 +0200 Subject: Add support for means of transport filtering --- lib/Travel/Status/DE/DeutscheBahn.pm | 47 +++++++++++++++++++++++++++--------- 1 file changed, 36 insertions(+), 11 deletions(-) (limited to 'lib') diff --git a/lib/Travel/Status/DE/DeutscheBahn.pm b/lib/Travel/Status/DE/DeutscheBahn.pm index 32c017d..8407394 100644 --- a/lib/Travel/Status/DE/DeutscheBahn.pm +++ b/lib/Travel/Status/DE/DeutscheBahn.pm @@ -24,21 +24,34 @@ sub new { } my $ref = { + mot_filter => [ + $conf{mot}->{ice} // 1, + $conf{mot}->{ic_ec} // 1, + $conf{mot}->{d} // 1, + $conf{mot}->{nv} // 1, + $conf{mot}->{s} // 1, + $conf{mot}->{bus} // 0, + $conf{mot}->{ferry} // 0, + $conf{mot}->{u} // 0, + $conf{mot}->{tram} // 0, + ], post => { - input => $conf{station}, - inputRef => q{#}, - date => $conf{date} || $date, - time => $conf{time} || $time, - productsFilter => '1111101000000000', - REQTrain_name => q{}, - maxJourneys => 20, - delayedJourney => undef, - start => 'Suchen', - boardType => 'Abfahrt', - ao => 'yes', + advancedProductMode => q{}, + input => $conf{station}, + date => $conf{date} || $date, + time => $conf{time} || $time, + REQTrain_name => q{}, + start => 'Suchen', + boardType => 'dep', }, }; + for my $i ( 0 .. @{ $ref->{mot_filter} } ) { + if ( $ref->{mot_filter}->[$i] ) { + $ref->{post}->{"GUIREQProduct_$i"} = 'on'; + } + } + $ref->{html} = $ua->post( 'http://reiseauskunft.bahn.de/bin/bhftafel.exe/dn?rt=1', $ref->{post} )->content(); @@ -204,6 +217,18 @@ Date to report for. Defaults to the current day. Time to report for. Defaults to now. +=item B => I<\%hashref> + +Modes of transport to show. Accepted keys are: B (ICE trains), B +(IC and EC trains), B (InterRegio and similarly fast trains), B +("Nahverkehr", mostly RegionalExpress trains), B ("S-Bahn"), B, +B, B ("U-Bahn") and B. + +Setting a mode (as hash key) to 1 includes it, 0 excludes it. undef leaves it +at the default. + +By default, the following are shown: ice, ic_ec, d, nv, s. + =back =item $status->departures() -- cgit v1.2.3