]> ruin.nu Git - NDIRC.git/commitdiff
Converted the .setcalc and .getcalc commands
authorMichael Andreen <harv@ruin.nu>
Wed, 20 May 2009 19:27:28 +0000 (21:27 +0200)
committerMichael Andreen <harv@ruin.nu>
Wed, 20 May 2009 19:27:28 +0000 (21:27 +0200)
Commands/Def.pm
Def.pm
database/roles.sql

index 89ceeee3f7ce30b34ec41e6d2e8df654e2a09466..9b2addbd255489a8fc73b8485cb455fa6851c4a0 100644 (file)
@@ -187,5 +187,45 @@ WHERE id = $2
        }
 }
 
+sub setcalc
+       : Help(Usage: .setcalc callId calc | sets the calc for the given call.)
+       : Type(def)
+       : ACL(irc_setcalc)
+{
+       my ($self,$c,$msg) = @_;
+       my ($id,$calc) = $msg =~ /^(\d+) (.+)$/ or die 'ARGS';
+       my $dbh = $c->model;
+
+       $dbh->begin_work;
+       my $rows = $dbh->do(q{UPDATE calls SET calc = $2 WHERE id = $1}
+               ,undef,$id, $calc);
+       if ($rows == 1){
+               $c->reply("Updated calc call <b>$id</b>");
+               $calc = CGI::escapeHTML($calc);
+               $c->def_log($id , 'Updated calc to: [URL]'.$calc.'[/URL]');
+               $dbh->commit;
+       }else{
+               $c->reply("$id is not a valid call");
+               $dbh->rollback;
+       }
+}
+
+sub getcalc
+       : Help(Usage: .getcalc callId | receives the calc for the given call)
+       : Type(def)
+       : ACL(irc_getcalc)
+{
+       my ($self,$c,$msg) = @_;
+       my ($id) = $msg =~ /^(\d+)$/ or die 'ARGS';
+       my $dbh = $c->model;
+
+       my $calc = $dbh->selectrow_array(q{
+SELECT calc FROM calls WHERE id = $1}
+               ,undef,$id);
+       $calc //= "Bad call id, there is no such call.";
+       $c->reply("Calc for call <b>$id</b>: $calc");
+}
+
+
 1;
 
diff --git a/Def.pm b/Def.pm
index 512d637a52ee7fbd10d9cafa4a10f5a29386a920..b8dc386ba21f8d09fa48cd3c9e742a7f74026c30 100644 (file)
--- a/Def.pm
+++ b/Def.pm
@@ -28,8 +28,8 @@ require Exporter;
 
 our @ISA = qw/Exporter/;
 
-our @EXPORT = qw/showCall takeCall covCall ignoreCall
-       setDefPrio setCalc getCalc/;
+our @EXPORT = qw/showCall
+       setDefPrio/;
 
 sub showCall {
        my ($msg,$command) = @_;
@@ -58,43 +58,6 @@ SQL
        }
 }
 
-sub setCalc {
-       my ($msg,$command) = @_;
-       my ($id, $calc);
-       if (defined $msg && $msg =~ /^(\d+) (.+)$/){
-               $id = $1;
-               $calc = escapeHTML($2);
-       }else{
-               $ND::server->command("notice $ND::nick Usage: $command callid calc");
-               return;
-       }
-       if (my $user = dc()){
-               if ($ND::DBH->do(q{UPDATE calls SET calc = $2 WHERE id = $1}
-                               ,undef,$id, $calc) == 1){
-                       $ND::server->command("notice $ND::nick Updated calc call $ND::B$id$ND::O");
-                       def_log $user->{uid}, $id , 'Updated calc to: [URL]'
-                               .$calc.'[/URL]';
-               }
-       }
-}
-
-sub getCalc {
-       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()){
-               my $calc = $ND::DBH->selectrow_array(q{SELECT calc
-                       FROM calls WHERE id = $1}
-                       ,undef,$id);
-               $ND::server->command("notice $ND::nick calc for call $ND::B$id$ND::O: $calc");
-       }
-}
-
 sub setDefPrio {
        my ($msg,$command) = @_;
        my ($min,$max);
index 4e1fa63764408571fa32c897a0e5956397d8629c..d41cf272abc7576013f06684302dfa98d34d6e98 100644 (file)
@@ -32,6 +32,8 @@ 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 roles VALUES('irc_setcalc');
+INSERT INTO roles VALUES('irc_getcalc');
 
 INSERT INTO group_roles (gid,role) VALUES(1,'irc_p_nick');
 INSERT INTO group_roles (gid,role) VALUES(1,'irc_p_intel');
@@ -65,6 +67,8 @@ 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(1,'irc_setcalc');
+INSERT INTO group_roles (gid,role) VALUES(1,'irc_getcalc');
 
 INSERT INTO group_roles (gid,role) VALUES(2,'irc_gs');
 INSERT INTO group_roles (gid,role) VALUES(2,'irc_scan');
@@ -100,6 +104,8 @@ 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(3,'irc_setcalc');
+INSERT INTO group_roles (gid,role) VALUES(3,'irc_getcalc');
 
 INSERT INTO group_roles (gid,role) VALUES(4,'irc_points_others');
 INSERT INTO group_roles (gid,role) VALUES(4,'irc_a');
@@ -122,6 +128,8 @@ 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(6,'irc_setcalc');
+INSERT INTO group_roles (gid,role) VALUES(6,'irc_getcalc');
 
 INSERT INTO group_roles (gid,role) VALUES(8,'irc_scanreqs');
 INSERT INTO group_roles (gid,role) VALUES(8,'irc_anonscan');