]> ruin.nu Git - NDIRC.git/blobdiff - Scans.pm
updated laston
[NDIRC.git] / Scans.pm
index 1315e22408b2875ef6357fe05f46660fe2501990..76c1e0534f41eaf71d4e87b9c69441ed5ac1cd2d 100644 (file)
--- a/Scans.pm
+++ b/Scans.pm
@@ -28,18 +28,22 @@ our @ISA = qw/Exporter/;
 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");
                                }
@@ -51,12 +55,11 @@ sub addScan {
 }
 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");
@@ -71,11 +74,18 @@ sub addScanGroup {
 }
 
 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");
        }
 }