our @EXPORT = qw/addScan addScanGroup sendScan/;
sub addScan {
- my ($id,$verbose) = @_;
- DB();
+ my ($id,$verbose, $quiet) = @_;
if (1){
- unless ($ND::DBH->selectrow_array("SELECT scan_id FROM scans WHERE scan_id = ? AND tick >= tick() - 168",undef,$id)){
+ 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()
FROM users WHERE hostmask ILIKE ? },undef,$ND::address);
- if ($ND::DBH->do(q{INSERT INTO scans (scan_id,tick,"type") VALUES (?,tick(),COALESCE(?,'-1'))},
+ if ($ND::DBH->do(q{INSERT INTO scans (scan_id,tick,uid) VALUES (?,tick(),COALESCE(?,-1))},
undef,$id,$user[0]) == 1){
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");
}
}
sub addScanGroup {
my ($id,$verbose) = @_;
- DB();
if (1){
- unless ($ND::DBH->selectrow_array("SELECT scan_id FROM scans WHERE type = 'group' AND scan_id = ? AND tick >= tick() - 168",undef,$id)){
+ unless ($ND::DBH->selectrow_array("SELECT scan_id FROM scans WHERE groupscan AND scan_id = ? AND tick >= tick() - 168",undef,$id)){
my @user = $ND::DBH->selectrow_array(q{SELECT uid,username, scan_points, tick()
FROM users WHERE hostmask ILIKE ? },undef,$ND::address);
- if ($ND::DBH->do(q{INSERT INTO scans (scan_id,tick,"type",scan) VALUES (?,tick(),'group',COALESCE(?,'-1'))},
+ if ($ND::DBH->do(q{INSERT INTO scans (scan_id,tick,groupscan,uid) VALUES (?,tick(),true,COALESCE(?,-1))},
undef,$id,$user[0]) == 1){
if (@user){
$ND::server->command("msg $ND::target Added scan group, at tick $user[3]. Points will be added after parsing");
}
sub sendScan {
- my ($target,$msg) = @_;
- DB();
+ my ($msg, $command) = @_;
+ my ($target,$mess);
+ if (defined $msg && $msg =~ /^(\S+) (.*)$/){
+ $target = $1;
+ $mess = $2;
+ }else{
+ $ND::server->command("notice $ND::nick syntax: $command nick message");
+ return;
+ }
if (scanner()){
- $ND::server->command("msg $target ".chr(2).$msg.chr(3)."4 (reply with /msg $ND::scanchan)");
- $ND::server->command("msg $ND::target ${ND::C}3$1 << $2");
+ $ND::server->command("msg $target ".chr(2).$mess.chr(3)."4 (reply with /msg $ND::scanchan)");
+ $ND::server->command("msg $ND::target ${ND::C}3$target << $mess");
}
}