diff options
author | Daniel Friesel <derf@finalrewind.org> | 2011-06-23 16:36:55 +0200 |
---|---|---|
committer | Daniel Friesel <derf@finalrewind.org> | 2011-06-23 16:36:55 +0200 |
commit | 1a5037db51400c8fdd0cd9210df1310ca757371e (patch) | |
tree | 6ad2c005f022184940e1187dc0026f1de1f18749 /bin/db-ris | |
parent | ad347a84877a8c9a11ac7763159eb371178be2f3 (diff) |
Rename mris to db-ris
Diffstat (limited to 'bin/db-ris')
-rwxr-xr-x | bin/db-ris | 83 |
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. |