summaryrefslogtreecommitdiff
path: root/bin/db-ris
diff options
context:
space:
mode:
authorDaniel Friesel <derf@finalrewind.org>2011-06-23 16:36:55 +0200
committerDaniel Friesel <derf@finalrewind.org>2011-06-23 16:36:55 +0200
commit1a5037db51400c8fdd0cd9210df1310ca757371e (patch)
tree6ad2c005f022184940e1187dc0026f1de1f18749 /bin/db-ris
parentad347a84877a8c9a11ac7763159eb371178be2f3 (diff)
Rename mris to db-ris
Diffstat (limited to 'bin/db-ris')
-rwxr-xr-xbin/db-ris83
1 files changed, 83 insertions, 0 deletions
diff --git a/bin/db-ris b/bin/db-ris
new file mode 100755
index 0000000..95e1c6e
--- /dev/null
+++ b/bin/db-ris
@@ -0,0 +1,83 @@
+#!/usr/bin/env perl
+use strict;
+use warnings;
+use 5.010;
+
+our $VERSION = '0.0';
+
+use Travel::Status::DE::DeutscheBahn;
+
+my $status = Travel::Status::DE::DeutscheBahn->new( station => shift, );
+
+for my $d ( $status->departures() ) {
+
+ my ( @via, @via_main, @via_show );
+
+ @via = $d->route;
+
+ for my $stop (@via) {
+ if ( $stop =~ m{ ?Hbf} ) {
+ push( @via_main, $stop );
+ }
+ }
+ pop(@via);
+
+ if ( @via_main and @via and $via[0] eq $via_main[0] ) {
+ shift(@via_main);
+ }
+
+ if ( @via < 3 ) {
+ @via_show = @via;
+ }
+ else {
+ @via_show = splice( @via, 0, ( @via_main > 2 ? 1 : 3 - @via_main ) );
+
+ while ( @via_show < 3 and @via_main ) {
+ my $stop = shift(@via_main);
+ if ( $stop ~~ \@via_show or $stop eq $d->destination ) {
+ next;
+ }
+ push( @via_show, $stop );
+ }
+ }
+
+ for my $stop (@via_show) {
+ $stop =~ s{ ?Hbf}{};
+ }
+
+ printf(
+ "%5s %-10s %-80s %-20s %-2d %s\n",
+ $d->time, $d->train, join( q{ }, @via_show ),
+ $d->destination, $d->platform, $d->info
+ );
+}
+
+__END__
+
+=head1 NAME
+
+=head1 SYNOPSIS
+
+=head1 VERSION
+
+version 0.0
+
+=head1 DESCRIPTION
+
+=head1 OPTIONS
+
+=head1 EXIT STATUS
+
+=head1 CONFIGURATION
+
+=head1 DEPENDENCIES
+
+=head1 BUGS AND LIMITATIONS
+
+=head1 AUTHOR
+
+Copyright (C) 2010 by Daniel Friesel E<lt>derf@finalrewind.orgE<gt>
+
+=head1 LICENSE
+
+This program is licensed under the same terms as Perl itself.