]> git.donarmstrong.com Git - infobot.git/blobdiff - src/Modules/UserDCC.pl
broken for +A
[infobot.git] / src / Modules / UserDCC.pl
index 8c457651d38c04d59923557385492ab1160b201d..bd06b8aa25fc84e834615fbe755250e916504b7f 100644 (file)
@@ -5,7 +5,14 @@
 #     Created: 20000707 (from UserExtra.pl)
 #
 
-if (&IsParam("useStrict")) { use strict; }
+use strict;
+
+use vars qw(%users %ignore %sched %bans %mask %cache %channels %param
+       %chanconf %dcc);
+use vars qw($who $chan $message $msgType $user $chnick $conn $ident
+       $verifyUser $ucount_userfile $utime_userfile $lobotomized
+       $utime_chanfile $ucount_chanfile);
+use vars qw(@backlog);
 
 sub userDCC {
     # hrm...
@@ -116,6 +123,17 @@ sub userDCC {
        return;
     }
 
+    # dump variables ][.
+    if ($message =~ /^symdump$/i) {
+       return unless (&hasFlag("o"));
+       return unless (&IsParam("symdump"));
+
+       &status("Dumping all variables...");
+       &symdumpAllFile();
+
+       return;
+    }
+
     # kick.
     if ($message =~ /^kick(\s+(\S+)(\s+(\S+))?)?/) {
        return unless (&hasFlag("o"));
@@ -347,7 +365,7 @@ sub userDCC {
            return;
        }
 
-       ### TODO: fix up $op to support mysql/pgsql/dbm(perl)
+       ### TODO: fix up $op to support mysql/sqlite/pgsql
        ### TODO: => add db/sql specific function to fix this.
        my @list = &searchTable("factoids", "factoid_key",
                        "factoid_value", $op);
@@ -418,7 +436,7 @@ sub userDCC {
        }
 
        &status("jumping servers... $server...");
-       &rawout("QUIT :jumping to $server");
+       $conn->quit("jumping to $server");
 
        if (&irc($server,$port) == 0) {
            &ircloop();
@@ -558,14 +576,14 @@ sub userDCC {
                my $str = "";
                foreach (sort keys %{ $chanconf{$chan} }) {
                    my $newstr = join(', ', @items);
-                   if (length $newstr > 60) {
-                       &pSReply("    $str");
+                   if (length $newstr > 63) {
+                       &pSReply(" $str");
                        @items = ();
                    }
                    $str = $newstr;
                    push(@items, "$_ => $chanconf{$chan}{$_}");
                }
-               &pSReply("    $str") if (@items);
+               &pSReply(" $str") if (@items);
            }
            return;
        }
@@ -744,6 +762,7 @@ sub userDCC {
            return;
        }
 
+       my $chflag;
        my $user;
        if ($args[0] =~ /^$mask{nick}$/i) {     # <nick>
            $user       = &getUser($args[0]);
@@ -988,7 +1007,7 @@ sub userDCC {
                &unban($mask, $_);
            }
 
-           if ($c) {
+           if (@c) {
                &pSReply("Removed $mask from chans: @c");
            } else {
                &pSReply("$mask was not found in ban list.");
@@ -1110,7 +1129,7 @@ sub userDCC {
     if ($message =~ /^banlist(\s+(.*))?$/) {
        my $arg = $2;
 
-       if (defined $arg and $arg !~ /^$mask_chan$/) {
+       if (defined $arg and $arg !~ /^$mask{chan}$/) {
            &pSReply("error: chan $chan is invalid.");
            return;
        }
@@ -1350,7 +1369,8 @@ sub userDCC {
     }
 
     # quite a cool hack: reply in DCC CHAT.
-    $msgType = "chat";
+    # FIXME broken for +A
+    #$msgType = "chat";
 
     my $done = 0;
     $done++ if &parseCmdHook("main", $message);