summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDaniel Friesel <derf@finalrewind.org>2018-12-26 12:25:35 +0100
committerDaniel Friesel <derf@finalrewind.org>2018-12-26 12:25:35 +0100
commitc06d8c9b70e1950b8e7bd6ab7e14bac96d55ffc7 (patch)
tree9e4186b8782a56112c08973adbe459d8d8197e60
parent0e4de4ce426b478914ac562462dd9d8aff803b5b (diff)
show train direction
-rwxr-xr-xbin/db-wagenreihung10
-rw-r--r--lib/Travel/Status/DE/DBWagenreihung.pm17
2 files changed, 24 insertions, 3 deletions
diff --git a/bin/db-wagenreihung b/bin/db-wagenreihung
index 100f4b1..bae97b9 100755
--- a/bin/db-wagenreihung
+++ b/bin/db-wagenreihung
@@ -13,6 +13,8 @@ use Travel::Status::DE::DBWagenreihung;
my $developer_mode = 0;
+binmode( STDOUT, ':encoding(utf-8)' );
+
sub show_help {
my ($code) = @_;
@@ -77,7 +79,7 @@ for my $section ( $wr->sections ) {
$spacing_left++;
}
- printf( "|%s%s%s|",
+ printf( "ā–%s%s%sā–•",
' ' x $spacing_left,
$section->name,
' ' x $spacing_right );
@@ -85,7 +87,8 @@ for my $section ( $wr->sections ) {
print "\n";
my @start_percentages = map { $_->{position}{start_percent} } $wr->wagons;
-print ' ' x ( min @start_percentages );
+print ' ' x ( ( min @start_percentages ) - 1 );
+print $wr->direction == 100 ? '>' : '<';
for my $wagon ( $wr->wagons ) {
my $wagon_length
@@ -100,7 +103,7 @@ for my $wagon ( $wr->wagons ) {
my $wagon_desc = $wagon->number || '?';
if ( $wagon->is_locomotive or $wagon->is_powercar ) {
- $wagon_desc = '<->';
+ $wagon_desc = ' ā–  ';
}
my $class_color = '';
@@ -118,4 +121,5 @@ for my $wagon ( $wr->wagons ) {
' ' x $spacing_left, $class_color, $wagon_desc,
$col_reset, ' ' x $spacing_right );
}
+print $wr->direction == 100 ? '>' : '<';
print "\n";
diff --git a/lib/Travel/Status/DE/DBWagenreihung.pm b/lib/Travel/Status/DE/DBWagenreihung.pm
index c879d14..5308961 100644
--- a/lib/Travel/Status/DE/DBWagenreihung.pm
+++ b/lib/Travel/Status/DE/DBWagenreihung.pm
@@ -86,6 +86,23 @@ sub error {
return $self->{errstr};
}
+sub direction {
+ my ($self) = @_;
+
+ my @wagons = $self->wagons;
+
+ if ( not @wagons ) {
+ return undef;
+ }
+
+ if ( $wagons[0]->{position}{start_percent}
+ > $wagons[-1]{position}{start_percent} )
+ {
+ return 0;
+ }
+ return 100;
+}
+
sub sections {
my ($self) = @_;