]> ruin.nu Git - NDIRC.git/blobdiff - Commands/Def.pm
Converted .calltake, .callcov and .callignore
[NDIRC.git] / Commands / Def.pm
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;