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;