]> ruin.nu Git - NDIRC.git/blobdiff - Context.pm
Basic conversion to POE::Component::IRC
[NDIRC.git] / Context.pm
index 5d0fb1c34f44d0747eb462f91747514a112b3a05..02aac95a7ba84819a49e6713acc7c241bec48d85 100644 (file)
@@ -97,7 +97,44 @@ sub check_user_roles {
 sub reply {
        my ($self,$msg) = @_;
 
-       $self->server->command($self->reply_string . $msg);
+       my @command = split / /, $self->reply_string;
+       $self->message(@command, $msg);
+}
+
+sub message {
+       my ($self,$command, $target, $msg) = @_;
+
+       $msg =~ s`<b>(.*?)</b>`${\(chr(2))}$1${\(chr(15))}`gi;
+       $msg =~ s`<c(\d+)>(.*?)</c>`${\(chr(3))}$1$2${\(chr(15))}`gi;
+
+       $self->command($command, $target, $msg);
+}
+
+sub command {
+       my ($self,@command) = @_;
+
+       $self->server->yield(@command);
+}
+
+sub intel_log {
+       my ($c,$planet, $message) = @_;
+       my $log = $c->model->prepare_cached(q{
+INSERT INTO forum_posts (ftid,uid,message) VALUES(
+       (SELECT ftid FROM planets WHERE pid = $3)
+       ,(SELECT uid FROM users WHERE hostmask ILIKE $1)
+       ,$2)
+               });
+       $log->execute($c->host,$message,$planet);
+}
+
+sub def_log {
+       my ($c,$call, $message) = @_;
+       my $log = $c->model->prepare(q{
+INSERT INTO forum_posts (ftid,uid,message) VALUES(
+       (SELECT ftid FROM calls WHERE call = $3)
+       ,(SELECT uid FROM users WHERE hostmask ILIKE $1),$2)
+               });
+       $log->execute($c->host,$message,$call);
 }
 
 sub _build_roles {