my @fleets;
while ($file =~ m{<th class="center">([^<]+)</th>}g) {
- push @fleets, {name => $1, ships => []};
+ push @fleets, {name => $1, mission => 'Military', ships => []};
}
+ push @fleets, {name => 'Military', mission => 'Full fleet', ships => []};
+ my $total = 0;
while ($file =~ m{<tr><td class="left">([^<]+)</td>(.+?)</tr>}g) {
my $ship = $1;
next if $ship eq 'Total Ships';
my $amounts = $2;
+ my $tot_amount = 0;
my $i = 0;
while ($amounts =~ m{<td class="center">([\d,]+)</td>}g) {
my $fleet = $fleets[$i];
if ($ship eq 'Total Visible Ships') {
$fleet->{amount} = $amount;
} elsif ($amount > 0) {
+ $tot_amount += $amount;
+ $total += $amount;
push @{$fleet->{ships}}, {ship => $ship, amount => $amount};
}
++$i;
}
+
+ if ($tot_amount > 0) {
+ push @{$fleets[4]->{ships}}, {ship => $ship, amount => $tot_amount};
+ }
}
+ $fleets[4]->{amount} = $total;
return @fleets;
}
my @fleets = parseMilScan($file);
for my $fleet (@fleets) {
- next if $fleet->{amount} == 0;
- $addfleet->execute($fleet->{name},$scan->{type},$scan->{pid}
+ next if $fleet->{amount} == 0 && $fleet->{mission} eq 'Military';
+ $addfleet->execute($fleet->{name},$fleet->{mission},$scan->{pid}
,$scan->{tick}, $fleet->{amount});
my ($id) = $addfleet->fetchrow_array;
$fleetscan->execute($id,$scan->{id}) or die $dbh->errstr;
is ($fleets[0]->{ships}->[0]->{ship}, 'Centaur');
is ($fleets[0]->{ships}->[0]->{amount}, 199900);
is ($fleets[0]->{amount}, 253901);
+ is ($fleets[0]->{mission}, 'Military');
is ($fleets[1]->{name}, 'Fleet 1');
is (scalar @{$fleets[1]->{ships}}, 1);
is ($fleets[1]->{ships}->[0]->{ship}, 'Chimera');
is ($fleets[1]->{ships}->[0]->{amount}, 54500);
is ($fleets[1]->{amount}, 54500);
+ is ($fleets[1]->{mission}, 'Military');
is ($fleets[2]->{name}, 'Fleet 2');
is ($fleets[2]->{amount}, 0);
+ is ($fleets[2]->{mission}, 'Military');
is ($fleets[3]->{name}, 'Fleet 3');
is ($fleets[3]->{amount}, 0);
+ is ($fleets[3]->{mission}, 'Military');
+ is ($fleets[4]->{name}, 'Military');
+ is ($fleets[4]->{mission}, 'Full fleet');
+ is ($fleets[4]->{amount}, 253901+54500);
}
{
};
doMilScan($dbh, $scan, $milscan);
my $history = $dbh->{mock_all_history};
- is(scalar(@{$history}), 3, 'Correct number of statements executed');
+ is(scalar(@{$history}), 3, 'Add military scan');
#print Dumper($history), "\n";
{
my $sth = $history->[0];
my $exec_history = $sth->{execution_history};
like($sth->statement,
- qr{INSERT INTO fleets \(name, mission, pid, tick, amount\).*}sm,
+ qr{^INSERT INTO fleets \(name, mission, pid, tick, amount\)}ism,
);
- is(scalar(@{$exec_history}), 2);
+ is(scalar(@{$exec_history}), 3);
+ is(scalar(@{$exec_history->[0]->{params}}), 5);
is($exec_history->[0]->{params}->[0], "Base");
is($exec_history->[0]->{params}->[1], "Military");
is($exec_history->[0]->{params}->[2], $scan->{pid});
is($exec_history->[1]->{params}->[3], $scan->{tick});
is($exec_history->[1]->{params}->[4], 54500);
+ is($exec_history->[2]->{params}->[0], "Military");
+ is($exec_history->[2]->{params}->[1], "Full fleet");
+ is($exec_history->[2]->{params}->[2], $scan->{pid});
+ is($exec_history->[2]->{params}->[3], $scan->{tick});
+ is($exec_history->[2]->{params}->[4], 253901+54500);
+
}
{
my $sth = $history->[1];
my $exec_history = $sth->{execution_history};
like($sth->statement,
- qr{INSERT INTO fleet_scans \(fid, id\).*}sm,
+ qr{^INSERT INTO fleet_scans \(fid, id\)}ism,
);
- is(scalar(@{$exec_history}), 2);
+ is(scalar(@{$exec_history}), 3);
+ is(scalar(@{$exec_history->[0]->{params}}), 2);
is($exec_history->[0]->{params}->[0], $fid);
is($exec_history->[0]->{params}->[1], $scan->{id});
is($exec_history->[1]->{params}->[0], $fid);
is($exec_history->[1]->{params}->[1], $scan->{id});
+ is($exec_history->[2]->{params}->[0], $fid);
+ is($exec_history->[2]->{params}->[1], $scan->{id});
}
{
my $sth = $history->[2];
my $exec_history = $sth->{execution_history};
like($sth->statement,
- qr{INSERT INTO fleet_ships \(fid, ship, amount\).*}sm,
+ qr{^INSERT INTO fleet_ships \(fid, ship, amount\)}ism,
);
- is(scalar(@{$exec_history}), 5);
+ is(scalar(@{$exec_history}), 10);
+ is(scalar(@{$exec_history->[0]->{params}}), 3);
is($exec_history->[0]->{params}->[0], $fid);
is($exec_history->[0]->{params}->[1], 'Centaur');
is($exec_history->[0]->{params}->[2], 199900);
is($exec_history->[4]->{params}->[0], $fid);
is($exec_history->[4]->{params}->[1], 'Chimera');
is($exec_history->[4]->{params}->[2], 54500);
+ is($exec_history->[5]->{params}->[0], $fid);
+ is($exec_history->[5]->{params}->[1], 'Centaur');
+ is($exec_history->[5]->{params}->[2], 199900);
+ is($exec_history->[6]->{params}->[0], $fid);
+ is($exec_history->[6]->{params}->[1], 'Chimera');
+ is($exec_history->[6]->{params}->[2], 54500);
+ is($exec_history->[7]->{params}->[0], $fid);
+ is($exec_history->[7]->{params}->[1], 'Titan');
+ is($exec_history->[7]->{params}->[2], 50000);
+ is($exec_history->[8]->{params}->[0], $fid);
+ is($exec_history->[8]->{params}->[1], 'Wyvern');
+ is($exec_history->[8]->{params}->[2], 3000);
+ is($exec_history->[9]->{params}->[0], $fid);
+ is($exec_history->[9]->{params}->[1], 'Medusa');
+ is($exec_history->[9]->{params}->[2], 1001);
}
}