Unverified Commit ecd8469b authored by Birte Kristina Friesel's avatar Birte Kristina Friesel
Browse files

db-iris: do not use smartmatch

parent 911db44a
Loading
Loading
Loading
Loading
+36 −22
Original line number Diff line number Diff line
@@ -4,8 +4,6 @@ use warnings;
use 5.014;
use utf8;

no if $] >= 5.018, warnings => 'experimental::smartmatch';

our $VERSION = '1.93';

use DateTime;
@@ -14,7 +12,7 @@ use Encode qw(decode);
use Getopt::Long qw(:config no_ignore_case bundling);
use JSON;
use List::Util      qw(first max);
use List::MoreUtils qw(none);
use List::MoreUtils qw(any none);
use Travel::Status::DE::IRIS;
use Travel::Status::DE::IRIS::Stations;

@@ -121,20 +119,18 @@ if ($time) {
}

for my $efield (@edata_pre) {
	given ($efield) {
		when ('a') { $edata{additional}   = 1 }
		when ('c') { $edata{canceled}     = 1 }
		when ('d') { $edata{delay}        = 1 }
		when ('D') { $edata{delays}       = 1 }
		when ('f') { $edata{fullroute}    = 1 }
		when ('m') { $edata{messages}     = 1 }
		when ('q') { $edata{qos}          = 1 }
		when ('r') { $edata{route}        = 1 }
		when ('R') { $edata{replacements} = 1 }
		when ('t') { $edata{times}        = 1 }
		when ('!') { $edata{debug}        = 1 }
		default    { $edata{$efield}      = 1 }
	}
	if    ( $efield eq 'a' ) { $edata{additional}   = 1 }
	elsif ( $efield eq 'c' ) { $edata{canceled}     = 1 }
	elsif ( $efield eq 'd' ) { $edata{delay}        = 1 }
	elsif ( $efield eq 'D' ) { $edata{delays}       = 1 }
	elsif ( $efield eq 'f' ) { $edata{fullroute}    = 1 }
	elsif ( $efield eq 'm' ) { $edata{messages}     = 1 }
	elsif ( $efield eq 'q' ) { $edata{qos}          = 1 }
	elsif ( $efield eq 'r' ) { $edata{route}        = 1 }
	elsif ( $efield eq 'R' ) { $edata{replacements} = 1 }
	elsif ( $efield eq 't' ) { $edata{times}        = 1 }
	elsif ( $efield eq '!' ) { $edata{debug}        = 1 }
	else                     { $edata{$efield}      = 1 }
}

if ($use_cache) {
@@ -462,14 +458,32 @@ for my $d ( $status->results() ) {
	@via = ( $d->route_post, $d->route_end );

	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 $d->is_wing )
	{
		next;
	}

	if ( @grep_platform and none { $d->platform eq $_ } @grep_platform ) {
		next;
	}

	if ( @grep_type and none { $d->type eq $_ } @grep_type ) {
		next;
	}

	if (@grep_class) {
		my $skip = 1;
		for my $class ( $d->classes ) {
			if ( any { $class eq $_ } @grep_class ) {
				$skip = 0;
				last;
			}
		}
		if ($skip) {
			next;
		}
	}

	my $delay = format_delay($d);

	my $platformstr = $d->platform // q{};
@@ -534,7 +548,7 @@ for my $d ( $status->results() ) {
		push( @processed_wings, $wing->wing_id );
	}
	for my $wing ( $d->arrival_wings ) {
		if ( not $wing->wing_id ~~ \@processed_wings ) {
		if ( none { $wing->wing_id eq $_ } @processed_wings ) {
			my $wingdelay = format_delay($wing);
			push(
				@output,