]> ruin.nu Git - NDIRC.git/commitdiff
Converted .calltake, .callcov and .callignore
authorMichael Andreen <harv@ruin.nu>
Wed, 20 May 2009 19:26:43 +0000 (21:26 +0200)
committerMichael Andreen <harv@ruin.nu>
Wed, 20 May 2009 19:26:43 +0000 (21:26 +0200)
Commands/Def.pm
Def.pm
database/roles.sql

index e8067dd7a50b27ad147526a8bdf66acf51688914..89ceeee3f7ce30b34ec41e6d2e8df654e2a09466 100644 (file)
@@ -150,5 +150,42 @@ WHERE i.id = ?
        }
 }
 
+sub calltake
+       : Help(Usage: .calltake callid | sets the dc. also markes as covered/ignored with .callcov and .callignore)
+       : Type(def)
+       : ACL(irc_calltake)
+       : Alias(qw/callcov callignore/)
+{
+       my ($self,$c,$msg) = @_;
+       my ($id) = $msg =~ /^(\d+)$/ or die 'ARGS';
+       my $dbh = $c->model;
+
+       my $extra = '';
+
+       given ($self->{name}){
+               when('callignore'){
+                       $extra = ',covered = FALSE, open = FALSE'
+               }
+               when('callcov'){
+                       $extra = ',covered = TRUE, open = FALSE'
+               }
+       }
+
+       $dbh->begin_work;
+       my $rows = $dbh->do(q{
+UPDATE calls SET dc = (SELECT uid FROM users WHERE hostmask ILIKE $1)
+       }. $extra .q{
+WHERE id = $2
+               },undef,$c->host,$id);
+       if ($rows == 1){
+               $c->reply("Marked call $id with ".$self->name);
+               $c->def_log($id , "Used: [B]".$self->name."[/B]");
+               $dbh->commit;
+       }else{
+               $c->reply("$id is not a valid call");
+               $dbh->rollback;
+       }
+}
+
 1;
 
diff --git a/Def.pm b/Def.pm
index f2285d1572930b887585f9ec31bfbfe726ae8514..512d637a52ee7fbd10d9cafa4a10f5a29386a920 100644 (file)
--- a/Def.pm
+++ b/Def.pm
@@ -58,60 +58,6 @@ SQL
        }
 }
 
-sub takeCall {
-       my ($msg,$command) = @_;
-       my ($id);
-       if (defined $msg && $msg =~ /^(\d+)$/){
-               $id = $1;
-       }else{
-               $ND::server->command("notice $ND::nick Usage: $command callid");
-               return;
-       }
-       if (my $user = dc()){
-               if ($ND::DBH->do(q{UPDATE calls SET dc = (SELECT uid FROM users WHERE hostmask ILIKE ?) WHERE id = ?}
-                               ,undef,$ND::address,$id) == 1){
-                       $ND::server->command("msg $ND::target Updated the DC for call $id");
-                       def_log $user->{uid}, $id , "Used: [B] $command [/B]";
-               }
-       }
-}
-
-sub covCall {
-       my ($msg,$command) = @_;
-       my ($id);
-       if (defined $msg && $msg =~ /^(\d+)$/){
-               $id = $1;
-       }else{
-               $ND::server->command("notice $ND::nick Usage: $command callid");
-               return;
-       }
-       if (my $user = dc()){
-               if($ND::DBH->do(q{UPDATE calls SET dc = (SELECT uid FROM users WHERE hostmask ILIKE ?), covered = TRUE, open = FALSE WHERE id = ?}
-                               ,undef,$ND::address,$id) == 1){
-                       $ND::server->command("msg $ND::target Marked call $id as covered");
-                       def_log $user->{uid}, $id , "Used: [B] $command [/B]";
-               }
-       }
-}
-
-sub ignoreCall {
-       my ($msg,$command) = @_;
-       my ($id);
-       if (defined $msg && $msg =~ /^(\d+)$/){
-               $id = $1;
-       }else{
-               $ND::server->command("notice $ND::nick Usage: $command callid");
-               return;
-       }
-       if (my $user = dc()){
-               if($ND::DBH->do(q{UPDATE calls SET dc = (SELECT uid FROM users WHERE hostmask ILIKE ?), covered = FALSE, open = FALSE WHERE id = ?}
-                               ,undef,$ND::address,$id) == 1){
-                       $ND::server->command("msg $ND::target Marked call $id as ignored");
-                       def_log $user->{uid}, $id , "Used: [B] $command [/B]";
-               }
-       }
-}
-
 sub setCalc {
        my ($msg,$command) = @_;
        my ($id, $calc);
index e2381603ebc348a7a33b10a4cfb1a2c7ee5132c2..4e1fa63764408571fa32c897a0e5956397d8629c 100644 (file)
@@ -31,6 +31,7 @@ INSERT INTO roles VALUES('irc_setchannel');
 INSERT INTO roles VALUES('irc_anondef');
 INSERT INTO roles VALUES('irc_defcall');
 INSERT INTO roles VALUES('irc_settype');
+INSERT INTO roles VALUES('irc_calltake');
 
 INSERT INTO group_roles (gid,role) VALUES(1,'irc_p_nick');
 INSERT INTO group_roles (gid,role) VALUES(1,'irc_p_intel');
@@ -63,6 +64,7 @@ INSERT INTO group_roles (gid,role) VALUES(1,'irc_setchannel');
 INSERT INTO group_roles (gid,role) VALUES(1,'irc_anondef');
 INSERT INTO group_roles (gid,role) VALUES(1,'irc_defcall');
 INSERT INTO group_roles (gid,role) VALUES(1,'irc_settype');
+INSERT INTO group_roles (gid,role) VALUES(1,'irc_calltake');
 
 INSERT INTO group_roles (gid,role) VALUES(2,'irc_gs');
 INSERT INTO group_roles (gid,role) VALUES(2,'irc_scan');
@@ -97,6 +99,7 @@ INSERT INTO group_roles (gid,role) VALUES(3,'irc_setchannel');
 INSERT INTO group_roles (gid,role) VALUES(3,'irc_anondef');
 INSERT INTO group_roles (gid,role) VALUES(3,'irc_defcall');
 INSERT INTO group_roles (gid,role) VALUES(3,'irc_settype');
+INSERT INTO group_roles (gid,role) VALUES(3,'irc_calltake');
 
 INSERT INTO group_roles (gid,role) VALUES(4,'irc_points_others');
 INSERT INTO group_roles (gid,role) VALUES(4,'irc_a');
@@ -118,6 +121,7 @@ INSERT INTO group_roles (gid,role) VALUES(6,'irc_sethostile');
 INSERT INTO group_roles (gid,role) VALUES(6,'irc_anondef');
 INSERT INTO group_roles (gid,role) VALUES(6,'irc_defcall');
 INSERT INTO group_roles (gid,role) VALUES(6,'irc_settype');
+INSERT INTO group_roles (gid,role) VALUES(6,'irc_calltake');
 
 INSERT INTO group_roles (gid,role) VALUES(8,'irc_scanreqs');
 INSERT INTO group_roles (gid,role) VALUES(8,'irc_anonscan');