- next unless
- m/^ \@ *\d+ ([ap])\# *\d+ \|.*\| *\d+ +(\d+) +(\d+) *\| ([0-9 ]+)$/;
- my ($ap,$isles) = (uc $1,$4);
- next if $results{$ap} && %{$results{$ap}} >= $maxcountea;
- my $item= { A => $2, P => $3 };
-# my @isles= map { @islenames[$_] }, split / /, @isles;
+ next unless m/^\s*\@/;
+ if (m/^\@\@\@ concurrency limit exceeded/) {
+ $concur_fail= 1;
+ last;
+ }
+ die unless m/^ \@ *\d+ ([ap])\# *\d+ \|.*\| *(\d+)lg *\| *\d+ +(\d+) +(\d+) *\| ([0-9 ]+)$/;
+ my ($ap,$isles) = (uc $1,$5);
+ next if $results{$ap} && keys %{$results{$ap}} >= $maxcountea;
+ my $item= { A => $3, P => $4, Leagues => $2 };
+ my (@i, @fi, @a);
+ foreach (split / /, $isles) {
+ my ($name,$fullname,$arch)= $isleinfo->($_);
+ push @i, $name;
+ push @fi, $fullname;
+ push @a, $arch unless @a && $a[-1] eq $arch;
+ }
+ $item->{Isles}= [ @i ];
+ $item->{Archs}= [ @a ];
+ $item->{Start}= $i[0];
+ $item->{Finish}= $i[-1];
+ $item->{Vias}= [ ];
+ my $i;
+ for ($i=1; $i < @i-1; $i++) {
+ push @{ $item->{Vias} }, $i[$i];
+ }
+ my %linkqf= (%$baseqf, %$queryqf);
+ delete $linkqf{'query'};
+ $linkqf{'routestring'}= join ', ', @fi;
+ $item->{Url}= $quri->(%linkqf);
+ $item->{ArchesString}= join ', ', @a;
+ $item->{ViasString}= join ' ', map { $_.',' } @{ $item->{Vias} };
+ $item->{RouteSortString}= join ', ', @i;