diff options
-rwxr-xr-x | bin/db-fakedisplay | 38 | ||||
-rw-r--r-- | share/template.html | 37 |
2 files changed, 55 insertions, 20 deletions
diff --git a/bin/db-fakedisplay b/bin/db-fakedisplay index 7d7aec5..f9a4831 100755 --- a/bin/db-fakedisplay +++ b/bin/db-fakedisplay @@ -14,16 +14,16 @@ our $VERSION = '0.00'; sub show_help { my ($exit_status) = @_; - say 'Usage: db-fakedisplay <station> <platform>'; + say 'Usage: db-fakedisplay <station> <platforms ...>'; exit $exit_status; } -if (@ARGV != 2) { +if (@ARGV < 2) { show_help(1); } -my ($station, $platform) = @ARGV; +my ($station, @platforms) = @ARGV; my $template_file = dist_file('db-fakedisplay', 'template.html'); my $template = HTML::Template->new( filename => $template_file); @@ -31,20 +31,30 @@ my $status = Travel::Status::DE::DeutscheBahn->new( station => $station ); -my $info = first { $_->platform eq $platform } $status->results; - -if (not defined $info) { - say STDERR 'Got no departures for that platform'; - exit 1; +my @params; + +for my $platform (@platforms) { + my $info = first { $_->platform eq $platform } $status->results; + + if (not defined $info) { + push(@params, { + platform => $platform + }); + next; + } + + push(@params, { + time => $info->time, + train => $info->train, + via => [ map { { stop => $_ } } $info->route_interesting(3) ], + destination => $info->destination, + platform => $info->platform, + info => $info->info, + }); } $template->param( - time => $info->time, - train => $info->train, - via => [ map { { stop => $_ } } $info->route_interesting(3) ], - destination => $info->destination, - platform => $info->platform, - info => $info->info, + platform => \@params, ); say $template->output; diff --git a/share/template.html b/share/template.html index f66ec6e..764d949 100644 --- a/share/template.html +++ b/share/template.html @@ -11,9 +11,10 @@ color: white; font-family: Sans-Serif; font-weight: bold; - position: absolute; - left: 1em; - top: 1em; + position: relative; + margin-left: 1em; + margin-top: 1em; + float: left; width: 28em; height: 4.5em; border: 0.7em solid #000066; @@ -24,6 +25,12 @@ position: absolute; } + div.no-data { + top: 0.5em; + left: 1em; + font-size: 2em; + } + div.time { top: 0em; left: 0em; @@ -42,6 +49,10 @@ height: 1em; } + div.via span { + margin-right: 0.4em; + } + div.destination { top: 1.2em; left: 2.9em; @@ -66,7 +77,15 @@ </style> </head> <body> + +<TMPL_LOOP platform> + <div class="display"> +<div class="platform"> +<TMPL_VAR platform> +</div> + +<TMPL_IF train> <div class="time"> <TMPL_VAR time> </div> @@ -81,14 +100,20 @@ <div class="destination"> <TMPL_VAR destination> </div> -<div class="platform"> -<TMPL_VAR platform> -</div> <TMPL_IF info> <div class="info"> <TMPL_VAR info> </div> </TMPL_IF> +<TMPL_ELSE> +<div class="no-data"> +Bitte Ansage beachten </div> +</TMPL_IF> + +</div> <!-- display --> + +</TMPL_LOOP> + </body> </html> |