From: Michael Andreen Date: Wed, 20 May 2009 19:27:28 +0000 (+0200) Subject: Converted the .setcalc and .getcalc commands X-Git-Url: https://ruin.nu/git/?a=commitdiff_plain;h=9d10a2de3709392a4e4be2d0b18ea962bd934c8d;p=NDIRC.git Converted the .setcalc and .getcalc commands --- diff --git a/Commands/Def.pm b/Commands/Def.pm index 89ceeee..9b2addb 100644 --- a/Commands/Def.pm +++ b/Commands/Def.pm @@ -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 $id"); + $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 $id: $calc"); +} + + 1; diff --git a/Def.pm b/Def.pm index 512d637..b8dc386 100644 --- 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); diff --git a/database/roles.sql b/database/roles.sql index 4e1fa63..d41cf27 100644 --- a/database/roles.sql +++ b/database/roles.sql @@ -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');