}
}
+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;