summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDaniel Friesel <derf@finalrewind.org>2011-12-03 14:04:52 +0100
committerDaniel Friesel <derf@finalrewind.org>2011-12-03 14:04:52 +0100
commitab020b55629130202638ee2019117718a854a5ff (patch)
treefc60de691bf42afcfc4461e444b44c4b63ba52f6
parent3f4c8ae06655aebd8fbdcb292523a21960691d27 (diff)
Add language switch for extra information (delay reasons etc.)
-rw-r--r--Changelog4
-rwxr-xr-xbin/db-ris18
-rw-r--r--lib/Travel/Status/DE/DeutscheBahn.pm18
-rw-r--r--lib/Travel/Status/DE/DeutscheBahn/Result.pm3
4 files changed, 33 insertions, 10 deletions
diff --git a/Changelog b/Changelog
index 60619cf..cfd1e70 100644
--- a/Changelog
+++ b/Changelog
@@ -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]
diff --git a/bin/db-ris b/bin/db-ris
index 082505f..3c58b22 100755
--- a/bin/db-ris
+++ b/bin/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;