X-Git-Url: https://ruin.nu/git/?a=blobdiff_plain;f=Commands%2FDef.pm;h=9b2addbd255489a8fc73b8485cb455fa6851c4a0;hb=a94fe8052ba36e7ffbf608aa6b69b4a895126e38;hp=e8067dd7a50b27ad147526a8bdf66acf51688914;hpb=9e077e0aeb51cfd1eeeb12f2362fc11ac6d6b38a;p=NDIRC.git diff --git a/Commands/Def.pm b/Commands/Def.pm index e8067dd..9b2addb 100644 --- a/Commands/Def.pm +++ b/Commands/Def.pm @@ -150,5 +150,82 @@ 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; + } +} + +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;