diff options
author | Daniel Friesel <derf@finalrewind.org> | 2011-12-03 14:04:52 +0100 |
---|---|---|
committer | Daniel Friesel <derf@finalrewind.org> | 2011-12-03 14:04:52 +0100 |
commit | ab020b55629130202638ee2019117718a854a5ff (patch) | |
tree | fc60de691bf42afcfc4461e444b44c4b63ba52f6 | |
parent | 3f4c8ae06655aebd8fbdcb292523a21960691d27 (diff) |
Add language switch for extra information (delay reasons etc.)
-rw-r--r-- | Changelog | 4 | ||||
-rwxr-xr-x | bin/db-ris | 18 | ||||
-rw-r--r-- | lib/Travel/Status/DE/DeutscheBahn.pm | 18 | ||||
-rw-r--r-- | lib/Travel/Status/DE/DeutscheBahn/Result.pm | 3 |
4 files changed, 33 insertions, 10 deletions
@@ -1,8 +1,12 @@ git HEAD * Detect ambiguous input errors (available via errstr) + * Add language switch for additional information (german/english) * Result: Add line (== train) and date accessors + [db-ris] + * Add -l / --lang option + Travel::Status::DE::DeutscheBahn 1.00 - Sun Sep 04 2011 [db-ris] @@ -16,6 +16,7 @@ my $filter_via; my $ignore_late = 0; my $show_full_route = 0; my $types = q{}; +my $language; my @output; @@ -25,6 +26,7 @@ GetOptions( 'd|date=s' => \$date, 'f|full-route' => \$show_full_route, 'h|help' => sub { show_help(0) }, + 'l|lang=s' => \$language, 'L|ignore-late' => \$ignore_late, 'm|mot=s' => \$types, 't|time=s' => \$time, @@ -43,10 +45,11 @@ for my $type ( split( qr{,}, $types ) ) { } my $status = Travel::Status::DE::DeutscheBahn->new( - date => $date, - mot => \%train_type, - station => shift || show_help(1), - time => $time, + date => $date, + language => $language, + mot => \%train_type, + station => shift || show_help(1), + time => $time, ); sub show_help { @@ -164,6 +167,11 @@ Date to list departures for. Default: today. Display complete routes (including arrival times) of all trains. +=item B<-l>, B<--lang> B<d>|B<e>|B<i>|B<n> + +Set language used for additional information. Supports B<d>eutsch (default), +B<e>nglish, B<i>talian and dutch (B<n>). + =item B<-L>, B<--ignore-late> Do not display delayed trains. @@ -185,7 +193,7 @@ argements: You can prefix an argument with "!" to hide it. The default is C<< ice,ic_ec,d,nv,s >>. Note that B<-m> does not replace the default, so if you -only want to see S-Bahn und U-Bahn departures, you'd have to use C<< -m +only want to see S-Bahn and U-Bahn departures, you'd have to use C<< -m !ice,!ic_ec,!d,!nv,u >>. =item B<-t>, B<--time> I<hh>:I<mm> diff --git a/lib/Travel/Status/DE/DeutscheBahn.pm b/lib/Travel/Status/DE/DeutscheBahn.pm index 018eaa9..780d05d 100644 --- a/lib/Travel/Status/DE/DeutscheBahn.pm +++ b/lib/Travel/Status/DE/DeutscheBahn.pm @@ -21,6 +21,8 @@ sub new { my $reply; + my $lang = $conf{language} // 'd'; + if ( not $conf{station} ) { confess('You need to specify a station'); } @@ -45,7 +47,8 @@ sub new { REQTrain_name => q{}, start => 'yes', boardType => $conf{mode} // 'dep', -# L => 'vs_java3', + + # L => 'vs_java3', }, }; @@ -57,7 +60,9 @@ sub new { bless( $ref, $obj ); - $reply = $ua->post( 'http://reiseauskunft.bahn.de/bin/bhftafel.exe/dn?rt=1', + $reply + = $ua->post( + "http://reiseauskunft.bahn.de/bin/bhftafel.exe/${lang}n?rt=1", $ref->{post} ); if ( $reply->is_error ) { @@ -191,7 +196,7 @@ sub results { my $first = 1; my ( $time, $train, $route, $dest, $platform, $info ) = map { get_node( $tr, @{$_} ) } @parts; - my $e_train_more = ($tr->findnodes($xp_train_more))[0]; + my $e_train_more = ( $tr->findnodes($xp_train_more) )[0]; if ( not( $time and $dest ) ) { next; @@ -201,7 +206,7 @@ sub results { my $date = $+{date}; - substr($date, 6, 0) = '20'; + substr( $date, 6, 0 ) = '20'; $platform //= q{}; $info //= q{}; @@ -311,6 +316,11 @@ The train station to report for, e.g. "Essen HBf". Mandatory. Date to report for. Defaults to the current day. +=item B<language> => I<language> + +Set language for additional information. Accepted arguments: B<d>eutsch, +B<e>nglish, B<i>talian, B<n> (dutch). + =item B<time> => I<hh>:I<mm> Time to report for. Defaults to now. diff --git a/lib/Travel/Status/DE/DeutscheBahn/Result.pm b/lib/Travel/Status/DE/DeutscheBahn/Result.pm index 53585cf..4860810 100644 --- a/lib/Travel/Status/DE/DeutscheBahn/Result.pm +++ b/lib/Travel/Status/DE/DeutscheBahn/Result.pm @@ -38,7 +38,8 @@ sub info { $info =~ s{ ,Grund }{}ox; $info =~ s{ ^ \s+ }{}ox; - $info =~ s{ (?: ^ | , ) (?: p.nktlich | k [.] A [.] ) }{}ox; + $info + =~ s{ (?: ^ | , ) (?: p.nktlich | [nk] [.] [Aa] [.] | on \s time ) }{}ox; $info =~ s{ ^ , }{}ox; return $info; |