1 package NDWeb::Controller::CovOp;
5 use parent 'Catalyst::Controller';
9 NDWeb::Controller::CovOp - Catalyst Controller
24 sub index :Path :Args(0) {
25 my ( $self, $c ) = @_;
26 $c->stash( where => q{AND MaxResHack > 130000
27 ORDER BY minalert ASC,MaxResHack DESC});
30 sub distwhores : Local {
31 my ( $self, $c ) = @_;
32 $c->stash( where => qq{AND distorters > 0
33 ORDER BY distorters DESC, minalert ASC});
36 sub marktarget : Local {
37 my ( $self, $c, $target ) = @_;
40 my $update = $dbh->prepare(q{INSERT INTO covop_attacks (uid,id,tick) VALUES(?,?,tick())});
41 $update->execute($c->user->id,$target);
43 $c->res->redirect($c->req->referer);
47 my ( $self, $c ) = @_;
50 my $query = $dbh->prepare(q{SELECT id, coords, metal, crystal, eonium
51 , covop_alert(seccents,structures,gov,0) AS minalert
52 , covop_alert(seccents,structures,gov,50) AS maxalert
54 , MaxResHack,co.tick AS lastcovop
55 FROM (SELECT p.id,coords(x,y,z), metal,crystal,eonium,
56 seccents,NULLIF(ss.total::integer,0) AS structures,distorters
57 ,max_bank_hack(metal,crystal,eonium,p.value
58 ,(SELECT value FROM current_planet_stats WHERE id = ?)) AS MaxResHack
59 , planet_status, relationship,gov
60 FROM current_planet_stats p
61 LEFT OUTER JOIN planet_scans ps ON p.id = ps.planet
62 LEFT OUTER JOIN structure_scans ss ON p.id = ss.planet
64 LEFT OUTER JOIN (SELECT id,max(tick) AS tick FROM covop_attacks GROUP BY id) co USING (id)
65 WHERE (metal IS NOT NULL OR seccents IS NOT NULL)
66 AND (NOT planet_status IN ('Friendly','NAP'))
67 AND (relationship IS NULL OR NOT relationship IN ('Friendly','NAP'))
68 } . $c->stash->{where});
69 $query->execute($c->user->planet);
72 while (my $target = $query->fetchrow_hashref){
73 push @targets,$target;
75 $c->stash(targets => \@targets);
77 $c->stash(template => 'covop/index.tt2');
82 Michael Andreen (harv@ruin.nu)