our @EXPORT = qw/addScan addScanGroup sendScan/;
sub addScan {
- my ($id,$verbose) = @_;
+ my ($id,$verbose, $quiet) = @_;
if (1){
unless ($ND::DBH->selectrow_array(q{SELECT scan_id FROM scans WHERE NOT groupscan AND scan_id = ? AND tick >= tick() - 168},undef,$id)){
my @user = $ND::DBH->selectrow_array(q{SELECT uid,username, scan_points, tick()
if (@user){
$ND::DBH->do('UPDATE users SET scan_points = scan_points + 1 WHERE uid = ? ',undef,$user[0]);
$user[2] += 1;
- $ND::server->command("msg $ND::target Added scan, at tick $user[3]. $user[1] points now $user[2]");
+ if ($quiet){
+ $ND::server->command("msg $ND::target Added scan, points now $user[2]");
+ }
+ else{
+ $ND::server->command("msg $ND::target Added scan, at tick $user[3]. $user[1] points now $user[2]");
+ }
}elsif ($verbose){
$ND::server->command("msg $ND::target Added scan, but unknown user, no points");
}
$min = $2;
$min = 0 unless defined $min;
$f = $ND::DBH->prepare(qq{SELECT username,last,lastforum
- FROM (SELECT uid,username, date_part('day',now() - laston)::int AS last,date_part('day',now() - last_forum_visit)::int AS lastforum, laston FROM users) u NATURAL JOIN groupmembers NATURAL JOIN groups WHERE flag = ? AND (last >= ? OR last IS NULL) ORDER BY laston
+ FROM (SELECT uid,username, date_part('day',now() - laston)::int AS last
+ ,date_part('day',now() - (SELECT max(time) FROM forum_thread_visits WHERE uid = u.uid))::int AS lastforum
+ ,laston FROM users u) u
+ NATURAL JOIN groupmembers
+ NATURAL JOIN groups
+ WHERE flag = ? AND (last >= ? OR last IS NULL)
+ ORDER BY laston
});
$f->execute($flag,$min);
}elsif(defined $msg && $msg =~ /^(\S+)$/){
$f = $ND::DBH->prepare(qq{SELECT username,last,lastforum
- FROM (SELECT uid,username, date_part('day',now() - laston)::int AS last,date_part('day',now() - last_forum_visit)::int AS lastforum, laston FROM users) u WHERE username ILIKE ? ORDER BY lower(username)
+ FROM (SELECT uid,username, date_part('day',now() - laston)::int AS last
+ ,date_part('day',now() - (SELECT max(time) FROM forum_thread_visits WHERE uid = u.uid))::int AS lastforum
+ , laston FROM users u) u
+ WHERE username ILIKE ? ORDER BY lower(username)
});
$f->execute($1);
}else{