my $dbh = $c->model;
local $_ = $find || $c->req->param('coords');
+ $c->stash(searchterm => $_);
if (/(\d+)(?: |:)(\d+)(?: |:)(\d+)(?:(?: |:)(\d+))?/){
my $planet = $dbh->selectrow_array(q{SELECT planetid($1,$2,$3,$4)}
,undef,$1,$2,$3,$4);
$c->res->redirect($c->uri_for('planet',$planet));
+ }else{
+ my $query = $dbh->prepare(q{SELECT id,coords(x,y,z),nick
+ FROM current_planet_stats p
+ WHERE nick ilike $1
+ });
+ $query->execute($_);
+ my $planets = $query->fetchall_arrayref({});
+ if (@{$planets} == 1){
+ $c->res->redirect($c->uri_for('planet',$planets->[0]->{id}));
+ }else{
+ $c->stash(planets => $planets);
+ }
}
}
$c->stash(defenses => \@defenses);
}
+sub naps : Local {
+ my ( $self, $c ) = @_;
+ my $dbh = $c->model;
+
+ my $query = $dbh->prepare(q{SELECT p.id,coords(x,y,z)
+ ,ruler, p.planet,race, size, score, value
+ , xp, sizerank, scorerank, valuerank, xprank, p.value - p.size*200
+ - COALESCE(ps.metal+ps.crystal+ps.eonium,0)/150
+ - COALESCE(ds.total ,(SELECT COALESCE(avg(total),0)
+ FROM current_development_scans)::int)*1500 AS fleetvalue
+ ,(metal+crystal+eonium)/100 AS resvalue, planet_status,hit_us
+ , alliance,relationship,nick
+ FROM current_planet_stats p
+ LEFT OUTER JOIN current_planet_scans ps ON p.id = ps.planet
+ LEFT OUTER JOIN current_development_scans ds ON p.id = ds.planet
+ WHERE planet_status IN ('Friendly','NAP') order by x,y,z asc
+ });
+ $query->execute;
+ $c->stash(planets => $query->fetchall_arrayref({}) );
+}
=head1 AUTHOR