]> git.donarmstrong.com Git - infobot.git/blobdiff - src/core.pl
uptime -> Uptime
[infobot.git] / src / core.pl
index c82c47e666f4e03d896247ab5038c16531d3cb03..e86f2273cc8c89b78fd90020875828fbb64d3312 100644 (file)
@@ -27,15 +27,15 @@ use vars qw(
 );
 
 # array.
-use vars qw(@joinchan @ircServers @wingateBad @wingateNow @wingateCache
+use vars qw(@ircServers @wingateBad @wingateNow @wingateCache
 );
 
 ### hash. MUST BE REDUCED IN SIZE!!!
-# 
+#
 use vars qw(%count %netsplit %netsplitservers %flood %dcc %orig
            %nuh %talkWho %seen %floodwarn %param %dbh %ircPort
            %topic %moduleAge %last %time %mask %file
-           %forked %chanconf %channels
+           %forked %chanconf %channels %cache
 );
 
 # Signals.
@@ -60,6 +60,14 @@ $wtime_chanfile      = 0;
 $ucount_chanfile = 0;
 $running       = 0;
 ### more variables...
+# static scalar variables.
+$mask{ip}      = '(\d+)\.(\d+)\.(\d+)\.(\d+)';
+$mask{host}    = '[\d\w\_\-\/]+\.[\.\d\w\_\-\/]+';
+$mask{chan}    = '[\#\&]\S*|_default';
+my $isnick1    = 'a-zA-Z\[\]\{\}\_\`\^\|\\\\';
+my $isnick2    = '0-9\-';
+$mask{nick}    = "[$isnick1]{1}[$isnick1$isnick2]*";
+$mask{nuh}     = '\S*!\S*\@\S*';
 $msgtime       = time();
 $msgsize       = 0;
 $msgcount      = 0;
@@ -70,11 +78,10 @@ $nottime    = 0;
 $notsize       = 0;
 $notcount      = 0;
 ###
+$bot_release   = "1.3.1";
 if ( -d "CVS" ) {
     use POSIX qw(strftime);
-    $bot_release       = strftime("cvs (%Y%m%d)", gmtime( (stat("CVS"))[9] ) );
-} else {
-    $bot_release       = "1.0.10 (2001xxxx)";
+    $bot_release       .= strftime(" cvs (%Y%m%d)", gmtime( (stat("CVS"))[9] ) );
 }
 $bot_version   = "blootbot $bot_release -- $^O";
 $noreply       = "NOREPLY";
@@ -83,6 +90,14 @@ $noreply     = "NOREPLY";
 ### misc commands.
 ###
 
+sub whatInterface {
+    if (!&IsParam("Interface") or $param{'Interface'} =~ /IRC/) {
+       return "IRC";
+    } else {
+       return "CLI";
+    }
+}
+
 sub doExit {
     my ($sig)  = @_;
 
@@ -100,7 +115,7 @@ sub doExit {
        &status("--- Start of quit.");
        $ident ||= "blootbot";  # lame hack.
 
-       &status("Memory Usage: $memusage kB");
+       &status("Memory Usage: $memusage KiB");
 
        &closePID();
        &closeStats();
@@ -112,10 +127,14 @@ sub doExit {
        }
        &writeUserFile();
        &writeChanFile();
-       &uptimeWriteFile()      if (&IsChanConf("uptime"));
+       &uptimeWriteFile()      if (&IsChanConf('Uptime'));
        &sqlCloseDB();
        &closeSHM($shm);
-       &dumpallvars()          if (&IsParam("dumpvarsAtExit"));
+
+       if (&IsParam("dumpvarsAtExit")) {
+           &loadMyModule('DumpVars');
+           &dumpallvars();
+       }
        &symdumpAll()           if (&IsParam("symdumpAtExit"));
        &closeLog();
        &closeSQLDebug()        if (&IsParam("SQLDebug"));
@@ -210,7 +229,7 @@ sub IsChanConf {
        return 0;
     }
 
-    # should we use IsParam() externally where needed or hack it in 
+    # should we use IsParam() externally where needed or hack it in
     # here just in case? fix it later.
     if (&IsParam($param)) {
        &DEBUG("ICC: found '$param' option in main config file.");
@@ -293,15 +312,15 @@ sub getChanConf {
        return 0;
     }
 
-    # this looks evil... 
+    # this looks evil...
     if (0 and !defined $chan) {
        &DEBUG("gCC: ok !chan... doing _default instead.");
     }
 
     $c         ||= $chan;
     $c         ||= "_default";
-    $c         = "_default" if ($c eq "*");    # fix!
-    my @c      = grep /^$c$/i, keys %chanconf;
+    $c         = "_default" if ($c eq "*");    # FIXME
+    my @c      = grep /^\Q$c\E$/i, keys %chanconf;
 
     if (@c) {
        if (0 and $c[0] ne $c) {
@@ -321,7 +340,7 @@ sub getChanConfDefault {
 
     if (exists $param{$what}) {
        if (!exists $cache{config}{$what}) {
-           &status("Config ($chan): backward-compatible option: found param{$what} ($param{$what}) instead");
+           &status("config ($chan): backward-compatible option: found param{$what} ($param{$what}) instead of chan option");
            $cache{config}{$what} = 1;
        }
 
@@ -331,7 +350,7 @@ sub getChanConfDefault {
     return $val if (defined $val);
 
     $param{$what}      = $default;
-    &status("Config ($chan): auto-setting param{$what} = $default");
+    &status("config ($chan): auto-setting param{$what} = $default");
     $cache{config}{$what} = 1;
     return $default;
 }
@@ -394,13 +413,13 @@ sub showProc {
        if ($delta == 0) {
            return;
        } elsif ($delta > 500) {
-           $str = "MEM:$prefix increased by $delta kB. (total: $memusage kB)";
+           $str = "MEM:$prefix increased by $delta KiB. (total: $memusage KiB)";
        } elsif ($delta > 0) {
-           $str = "MEM:$prefix increased by $delta kB";
+           $str = "MEM:$prefix increased by $delta KiB";
        } else {        # delta < 0.
            $delta = -$delta;
            # never knew RSS could decrease, probably Size can't?
-           $str = "MEM:$prefix decreased by $delta kB.";
+           $str = "MEM:$prefix decreased by $delta KiB.";
        }
 
        &status($str);
@@ -440,7 +459,7 @@ sub setup {
 
     $param{tempDir} =~ s#\~/#$ENV{HOME}/#;
 
-    &status("Initial memory usage: $memusage kB");
+    &status("Initial memory usage: $memusage KiB");
     &status("-------------------------------------------------------");
 }
 
@@ -476,7 +495,7 @@ sub setupConfig {
 sub startup {
     if (&IsParam("DEBUG")) {
        &status("enabling debug diagnostics.");
-       ### I thought disabling this reduced memory usage by 1000 kB.
+       # I thought disabling this reduced memory usage by 1000 KiB.
        use diagnostics;
     }
 
@@ -491,7 +510,8 @@ sub shutdown {
     # reverse order of &setup().
     &status("--- shutdown called.");
 
-    $ident ||= "blootbot";     # hack.
+    # hack.
+    $ident ||= "blootbot";
 
     if (!&isFileUpdated("$bot_state_dir/blootbot.users", $wtime_userfile)) {
        &writeUserFile()
@@ -502,7 +522,8 @@ sub shutdown {
     }
 
     &sqlCloseDB();
-    &closeSHM($shm);   # aswell. TODO: use this in &doExit?
+    # aswell. TODO: use this in &doExit?
+    &closeSHM($shm);
     &closeLog();
 }