summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDaniel Friesel <derf@finalrewind.org>2015-04-18 23:20:10 +0200
committerDaniel Friesel <derf@finalrewind.org>2015-04-18 23:20:10 +0200
commit683a1fb700d5ba86a12acf1427c05de1b5008b4a (patch)
treeb972db346861f98dba8f201870802d3d1232a361
parentd629ad663f6195287dd31f0204f9d3a163b0869c (diff)
db-iris: add some wing support. there's at least one major bug still present
(sometimes, departure_wings contains duplicate entries)
-rwxr-xr-xbin/db-iris20
-rw-r--r--lib/Travel/Status/DE/IRIS/Result.pm5
2 files changed, 23 insertions, 2 deletions
diff --git a/bin/db-iris b/bin/db-iris
index 73592ba..310de21 100755
--- a/bin/db-iris
+++ b/bin/db-iris
@@ -309,7 +309,8 @@ for my $d ( $status->results() ) {
if ( ( $filter_via and not( first { $_ =~ m{$filter_via}io } @via ) )
or ( @grep_class and none { $_ ~~ \@grep_class } $d->classes )
or ( @grep_platform and not( $d->platform ~~ \@grep_platform ) )
- or ( @grep_type and not( $d->type ~~ \@grep_type ) ) )
+ or ( @grep_type and not( $d->type ~~ \@grep_type ) )
+ or $d->is_wing )
{
next;
}
@@ -369,6 +370,23 @@ for my $d ( $status->results() ) {
$d->route_end, $platformstr // q{}, $d
]
);
+
+ for my $wing ( $d->departure_wings ) {
+ push(
+ @output,
+ [
+ '├' . '─' x ( length($timestr) - 1 ),
+ $wing->train,
+ $edata{route} ? join( q{ }, $wing->route_interesting ) : q{},
+ $wing->route_end,
+ $platformstr // q{},
+ $wing
+ ]
+ );
+ }
+ if ( $d->departure_wings ) {
+ $output[-1][0] = '└' . '─' x ( length($timestr) - 1 );
+ }
}
display_result(@output);
diff --git a/lib/Travel/Status/DE/IRIS/Result.pm b/lib/Travel/Status/DE/IRIS/Result.pm
index 9b09c00..ce793ff 100644
--- a/lib/Travel/Status/DE/IRIS/Result.pm
+++ b/lib/Travel/Status/DE/IRIS/Result.pm
@@ -95,7 +95,7 @@ my %translation = (
);
Travel::Status::DE::IRIS::Result->mk_ro_accessors(
- qw(arrival classes date datetime delay departure is_cancelled is_transfer
+ qw(arrival classes date datetime delay departure is_cancelled is_transfer is_wing
line_no train_no_transfer old_train_id old_train_no platform raw_id
realtime_xml route_start route_end sched_arrival sched_departure
sched_platform sched_route_start sched_route_end start stop_no time
@@ -115,6 +115,7 @@ sub new {
my ( $train_id, $start_ts, $stop_no ) = split( /.\K-/, $opt{raw_id} );
$ref->{wing_id} = "${train_id}-${start_ts}";
+ $ref->{is_wing} = 0;
$train_id =~ s{^-}{};
$ref->{start} = $strp->parse_datetime($start_ts);
@@ -328,6 +329,7 @@ sub set_tl {
sub add_arrival_wingref {
my ( $self, $ref ) = @_;
+ $ref->{is_wing} = 1;
weaken($ref);
push( @{ $self->{arrival_wings} }, $ref );
}
@@ -335,6 +337,7 @@ sub add_arrival_wingref {
sub add_departure_wingref {
my ( $self, $ref ) = @_;
+ $ref->{is_wing} = 1;
weaken($ref);
push( @{ $self->{departure_wings} }, $ref );
}