X-Git-Url: https://ruin.nu/git/?a=blobdiff_plain;f=NDWeb%2FPages%2FCovOp.pm;h=16a429bc06304b845518dd26647cf1d827dd5607;hb=28e6b03ac62d7f50b8b520dada33665d9ac90cbb;hp=e777499e03c552dc96a033a9818ee7866c8adf0f;hpb=19c3f07640411d28236abc9d4d8045f17cc8a12d;p=ndwebbie.git diff --git a/NDWeb/Pages/CovOp.pm b/NDWeb/Pages/CovOp.pm index e777499..16a429b 100644 --- a/NDWeb/Pages/CovOp.pm +++ b/NDWeb/Pages/CovOp.pm @@ -40,51 +40,51 @@ sub render_body { $self->{TITLE} = 'CovOp Targets'; my $DBH = $self->{DBH}; - return $self->noAccess unless $self->isHC; + return $self->noAccess unless $self->isMember; - my $show = q{AND ((planet_status IS NULL OR NOT planet_status IN ('Friendly','NAP')) AND (relationship IS NULL OR NOT relationship IN ('Friendly','NAP')))}; + my $show = q{AND (NOT planet_status IN ('Friendly','NAP')) AND (relationship IS NULL OR NOT relationship IN ('Friendly','NAP'))}; $show = '' if defined param('show') && param('show') eq 'all'; if (defined param('covop') && param('covop') =~ /^(\d+)$/){ - my $update = $DBH->prepare('UPDATE covop_targets SET covop_by = ?, last_covop = tick() WHERE planet = ? '); - $update->execute($ND::UID,$1); + my $update = $DBH->prepare(q{INSERT INTO covop_attacks (uid,id,tick) VALUES(?,?,tick())}); + $update->execute($ND::UID,$1) or warn $DBH->errstr; } my $list = ''; my $where = ''; if (defined param('list') && param('list') eq 'distwhores'){ - $list = '&list=distwhores'; + $list = 'list=distwhores'; $where = qq{AND distorters > 0 $show ORDER BY distorters DESC,COALESCE(seccents::float/structures*100,0)ASC} }else{ $where = qq{AND MaxResHack > 130000 $show - ORDER BY COALESCE(seccents::float/structures*100,0) ASC,MaxResHack DESC,metal+crystal+eonium DESC}; + ORDER BY minalert ASC,MaxResHack DESC}; } + $BODY->param(List => $list); my $query = $DBH->prepare(qq{SELECT id, coords, metal, crystal, eonium - , seccents::float/structures*100 AS secs, distorters - , MaxResHack + , covop_alert(seccents,structures,gov,0) AS minalert + , covop_alert(seccents,structures,gov,50) AS maxalert + , distorters,gov + , MaxResHack,co.tick AS lastcovop FROM (SELECT p.id,coords(x,y,z), metal,crystal,eonium, - seccents,NULLIF(ss.total,0) AS structures,distorters + seccents,NULLIF(ss.total::integer,0) AS structures,distorters ,max_bank_hack(metal,crystal,eonium,p.value ,(SELECT value FROM current_planet_stats WHERE id = ?)) AS MaxResHack - , planet_status, relationship + , planet_status, relationship,gov FROM current_planet_stats p LEFT OUTER JOIN planet_scans ps ON p.id = ps.planet LEFT OUTER JOIN structure_scans ss ON p.id = ss.planet ) AS foo + LEFT OUTER JOIN (SELECT id,max(tick) AS tick FROM covop_attacks GROUP BY id) co USING (id) WHERE (metal IS NOT NULL OR seccents IS NOT NULL) $where - }); - $query->execute($self->{PLANET}); + }) or warn $DBH->errstr; + $query->execute($self->{PLANET}) or warn $DBH->errstr; my @targets; - my $i = 0; - while (my ($id,$coords,$metal,$crystal,$eonium,$seccents,$dists,$max) = $query->fetchrow){ - $i++; - push @targets,{Target => $id, Coords => $coords - , Metal => $metal, Crystal => $crystal, Eonium => $eonium, SecCents => $seccents - , Dists => $dists, MaxResHack => $max, List => $list, ODD => $i % 2}; + while (my $target = $query->fetchrow_hashref){ + push @targets,$target; } $BODY->param(Targets => \@targets); return $BODY;