my ($timestamp) = $dbh->selectrow_array(q{SELECT MAX(modified)::timestamp AS modified
FROM raid_targets WHERE raid = $1},undef,$raid->{id});
$c->stash(timestamp => $timestamp);
- $targets = $dbh->prepare(q{SELECT r.id,r.planet FROM raid_targets r
+ $targets = $dbh->prepare(q{SELECT r.id,r.pid FROM raid_targets r
WHERE r.raid = ? AND modified > ?
});
$targets->execute($raid->{id},$from);
}elsif($target){
- $targets = $dbh->prepare(q{SELECT r.id,r.planet FROM raid_targets r
+ $targets = $dbh->prepare(q{SELECT r.id,r.pid FROM raid_targets r
WHERE r.raid = $1 AND r.id = $2
});
$targets->execute($raid->{id},$target);
WHERE target = ? AND wave = ?
});
$query->execute($joinable,$target,$wave);
- $c->forward('/listTargets');
}
$c->stash(template => 'jsrpc/update.tt2');
}
}
+sub addscans : Local {
+ my ( $self, $c ) = @_;
+ my $dbh = $c->model;
+
+ my $findscan = $dbh->prepare(q{SELECT scan_id FROM scans
+ WHERE scan_id = LOWER(?) AND tick >= tick() - 168 AND groupscan = ?
+ });
+ my $addscan = $dbh->prepare(q{INSERT INTO scans (scan_id,tick,uid,groupscan)
+ VALUES (LOWER(?),tick(),?,?)
+ });
+ my $addpoint = $dbh->prepare(q{UPDATE users SET scan_points = scan_points + 1
+ WHERE uid = ?
+ });
+ my $message = $c->req->param('message');
+ my @scans;
+ while ($message =~ m{scan(_id|_grp)?=(\w+)}g){
+ my $groupscan = (defined $1 && $1 eq '_grp') || 0;
+ my %scan;
+ $scan{id} = $2;
+ $scan{group} = $groupscan;
+ $findscan->execute($2,$groupscan);
+ if ($findscan->rows == 0){
+ if ($addscan->execute($2,$c->stash->{UID},$groupscan)){
+ $addpoint->execute($c->stash->{UID}) unless $groupscan;
+ $scan{added} = 1;
+ }
+ }else{
+ $scan{message} = 'already exists';
+ }
+ push @scans,\%scan;
+ }
+}
+
sub end : ActionClass('RenderView') {
my ($self,$c) = @_;
$c->res->content_type('application/xml');