]> git.donarmstrong.com Git - infobot.git/blobdiff - src/CLI/Support.pl
* Add vim formatting comments ( # vim:ts=4:sw=4:expandtab:tw=80 )
[infobot.git] / src / CLI / Support.pl
index 42df6df6749a5c6cc504bd3ff788d4a1eac77b1e..33034a3f2481d5d92725396ffa227c9d7b82aec4 100644 (file)
@@ -4,6 +4,40 @@
 #        Version: v0.1 (20021028)
 #        Created: 20021028
 #
+use strict;
+
+my $postprocess;
+
+use vars qw($uh $message);
+
+sub cliloop {
+    &status("Using CLI...");
+    &status("Now type what you want.");
+
+    $nuh = "local!local\@local";
+    $uh  = "local\@local";
+    $who = 'local';
+    $orig{who} = 'local';
+    $ident = $param{'ircUser'};
+    $chan = $talkchannel = "_local";
+    $addressed = 1;
+    $msgType = 'private';
+    $host = 'local';
+
+    # install libterm-readline-gnu-perl to get history support
+    use Term::ReadLine;
+    my $term = new Term::ReadLine 'infobot';
+    my $prompt = "$who> ";
+    #$OUT = $term->OUT || STDOUT;
+    while ( defined ($_ = $term->readline($prompt)) ) {
+       $orig{message} = $_;
+       $message = $_;
+       chomp $message;
+       last if ($message =~ m/^quit$/);
+       $_ = &process() if $message;
+    }
+    &doExit();
+}
 
 sub msg {
     my ($nick, $msg) = @_;
@@ -13,16 +47,41 @@ sub msg {
     }
 
     if (!defined $msg) {
-       $msg ||= "NULL";
+       $msg ||= 'NULL';
        &WARN("msg: msg == $msg.");
        return;
     }
 
+    if ( $postprocess ) {
+       undef $postprocess;
+    } elsif ($postprocess = &getChanConf('postprocess', $talkchannel)) {
+       &DEBUG("say: $postprocess $msg");
+       &parseCmdHook($postprocess . ' ' . $msg);
+       undef $postprocess;
+       return;
+    }
+
     &status(">$nick< $msg");
 
     print("$nick: $msg\n");
 }
 
+# Usage: &action(nick || chan, txt);
+sub action {
+    my ($target, $txt) = @_;
+    if (!defined $txt) {
+       &WARN("action: txt == NULL.");
+       return;
+    }
+
+    if (length $txt > 480) {
+       &status("action: txt too long; truncating.");
+       chop($txt) while (length $txt > 480);
+    }
+
+    &status("* $ident/$target $txt");
+}
+
 sub IsNickInChan {
     my ($nick,$chan) = @_;
     return 1;
@@ -41,8 +100,6 @@ sub performAddressedReply {
     &msg($who, @_);
 }
 
-sub pSReply {
-    &msg($who, @_);
-}
-
 1;
+
+# vim:ts=4:sw=4:expandtab:tw=80