X-Git-Url: https://ruin.nu/git/?a=blobdiff_plain;f=ND%2FWeb%2FPages%2FCalls.pm;h=cbeaa05707301ed1fd71b921a06521ab3f682906;hb=1dd5131f6b4484797de54bd9bd2d67220c921608;hp=191a50e1895ff0826814670ad8b52a138279ef71;hpb=16e1ecfecf8e28f603ee560b648375d158f8f142;p=ndwebbie.git diff --git a/ND/Web/Pages/Calls.pm b/ND/Web/Pages/Calls.pm index 191a50e..cbeaa05 100644 --- a/ND/Web/Pages/Calls.pm +++ b/ND/Web/Pages/Calls.pm @@ -23,7 +23,7 @@ use ND::Include; use CGI qw/:standard/; use ND::Web::Include; -our @ISA = qw/ND::Web::XMLPage/; +use base qw/ND::Web::XMLPage/; $ND::Web::Page::PAGES{calls} = __PACKAGE__; @@ -40,7 +40,7 @@ sub render_body { my $call; if (defined param('call') && param('call') =~ /^(\d+)$/){ my $query = $DBH->prepare(q{ - SELECT c.id, coords(p.x,p.y,p.z), c.landing_tick, c.info, covered, open, dc.username AS dc, u.defense_points,c.member + SELECT c.id, coords(p.x,p.y,p.z), c.landing_tick, c.info, covered, open, dc.username AS dc, u.defense_points,c.member,u.planet FROM calls c JOIN users u ON c.member = u.uid LEFT OUTER JOIN users dc ON c.dc = dc.uid @@ -126,7 +126,7 @@ sub render_body { $BODY->param(DefensePoints => $call->{defense_points}); $BODY->param(LandingTick => $call->{landing_tick}); $BODY->param(ETA => $call->{landing_tick}-$self->{TICK}); - $BODY->param(Info => $call->{info}); + $BODY->param(Info => escapeHTML $call->{info}); $BODY->param(DC => $call->{dc}); if ($call->{covered}){ $BODY->param(Cover => 'Uncover'); @@ -144,13 +144,13 @@ sub render_body { my $ships = $DBH->prepare('SELECT ship,amount FROM fleet_ships WHERE fleet = ?'); $fleets->execute($call->{member},$call->{landing_tick},$call->{landing_tick}); my @fleets; - my $i = 0; while (my $fleet = $fleets->fetchrow_hashref){ if ($fleet->{back} == $call->{landing_tick}){ $fleet->{Fleetcatch} = 1; } $ships->execute($fleet->{id}); my @ships; + my $i = 0; while (my $ship = $ships->fetchrow_hashref){ $i++; $ship->{ODD} = $i % 2; @@ -161,6 +161,27 @@ sub render_body { } $BODY->param(Fleets => \@fleets); + + $fleets = $DBH->prepare(q{ + SELECT username, id,back - (landing_tick + eta - 1) AS recalled FROM fleets f JOIN users u USING (uid) WHERE target = $1 and landing_tick = $2 + }); + $fleets->execute($call->{planet},$call->{landing_tick}) or $ND::ERROR .= p $DBH->errstr; + my @defenders; + while (my $fleet = $fleets->fetchrow_hashref){ + $ships->execute($fleet->{id}); + my @ships; + my $i = 0; + while (my $ship = $ships->fetchrow_hashref){ + $i++; + $ship->{ODD} = $i % 2; + push @ships,$ship; + } + $fleet->{Ships} = \@ships; + delete $fleet->{id}; + push @defenders, $fleet; + } + $BODY->param(Defenders => \@defenders); + my $attackers = $DBH->prepare(q{ SELECT coords(p.x,p.y,p.z), p.planet_status, p.race,i.eta,i.amount,i.fleet,i.shiptype,p.relationship,p.alliance,i.id FROM incomings i @@ -169,7 +190,7 @@ sub render_body { ORDER BY p.x,p.y,p.z}); $attackers->execute($call->{id}); my @attackers; - $i = 0; + my $i = 0; while(my $attacker = $attackers->fetchrow_hashref){ $i++; $attacker->{ODD} = $i % 2; @@ -195,7 +216,7 @@ sub render_body { SELECT c.id, coords(p.x,p.y,p.z), u.defense_points, c.landing_tick, c.dc, TRIM('/' FROM concat(p2.race||' /')) AS race, TRIM('/' FROM concat(i.amount||' /')) AS amount, TRIM('/' FROM concat(i.eta||' /')) AS eta, TRIM('/' FROM concat(i.shiptype||' /')) AS shiptype, - TRIM('/' FROM concat(c.landing_tick - tick() ||' /')) AS curreta, + (c.landing_tick - tick()) AS curreta, TRIM('/' FROM concat(p2.alliance ||' /')) AS alliance, TRIM('/' FROM concat(coords(p2.x,p2.y,p2.z) ||' /')) AS attackers FROM calls c @@ -224,6 +245,7 @@ sub render_body { push @calls,{}; $i = 0; } + $call->{attackers} =~ s{(\d+:\d+:\d+)}{$1}g; $call->{dc} = 'Hostile' unless defined $call->{dc}; $i++; $call->{ODD} = $i % 2;