# dynamic scalar. MUST BE REDUCED IN SIZE!!!
### TODO: reorder.
use vars qw(
- $answer $correction_plausible $talkchannel
+ $answer $correction_plausible $talkchannel $bot_release
$statcount $memusage $user $memusageOld $bot_version $dbh
$shm $host $msg $bot_misc_dir $bot_pid $bot_base_dir $noreply
$bot_src_dir $conn $irc $learnok $nick $ident $no_syscall
$flag_quit $msgType
$utime_userfile $wtime_userfile $ucount_userfile
$utime_chanfile $wtime_chanfile $ucount_chanfile
- $pubsize $pubcount $pubtime $pubsleep
- $msgsize $msgcount $msgtime $msgsleep
- $notsize $notcount $nottime $notsleep
+ $pubsize $pubcount $pubtime
+ $msgsize $msgcount $msgtime
+ $notsize $notcount $nottime
);
# dynamic hash.
### more variables...
$msgtime = time();
$msgsize = 0;
-$msgcount = $msgsleep = 0;
+$msgcount = 0;
$pubtime = 0;
$pubsize = 0;
-$pubcount = $pubsleep = 0;
+$pubcount = 0;
$nottime = 0;
$notsize = 0;
-$notcount = $notsleep = 0;
+$notcount = 0;
###
-$bot_version = "blootbot cvs (20010214) -- $^O";
+if ( -d "CVS" ) {
+ use POSIX qw(strftime);
+ $bot_release = strftime("cvs (%Y%m%d)", localtime( (stat("CVS"))[9] ) );
+} else {
+ $bot_release = "1.0.10 (2001xxxx)";
+}
+$bot_version = "blootbot $bot_release -- $^O";
$noreply = "NOREPLY";
##########
&status("parent caught SIG$sig (pid $$).") if (defined $sig);
&status("--- Start of quit.");
+ $ident ||= "blootbot"; # lame hack.
&closeDCC();
&closePID();
return 0;
}
+ $chan ||= "_default";
+
my $old = $chan;
if ($chan =~ tr/A-Z/a-z/) {
&WARN("IsChanConf: lowercased chan. ($old)");
# About: Retrieve value for 'param' value in current/default chan.
# Return: scalar for success, undef for failure.
sub getChanConf {
- my($param,$chan) = @_;
+ my($param,$c) = @_;
if (!defined $param) {
&WARN("param == NULL.");
return 0;
}
- $chan ||= "_default";
- my @c = grep /^$chan$/i, keys %chanconf;
+ # 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;
- if (@c and $c[0] ne $chan) {
- &WARN("c ne chan ($c[0] ne $chan)");
+ if (@c) {
+ if (0 and $c[0] ne $c) {
+ &WARN("c ne chan ($c[0] ne $chan)");
+ }
+ return $chanconf{$c[0]}{$param};
}
- return $chanconf{$c[0]}{$param} || $chanconf{"_default"}{$param};
+# &DEBUG("gCC: returning _default... ");
+ return $chanconf{"_default"}{$param};
}
sub showProc {
$shm = &openSHM();
&openSQLDebug() if (&IsParam("SQLDebug"));
&openDB($param{'DBName'}, $param{'SQLUser'}, $param{'SQLPass'});
+ &checkTables();
&status("Setup: ". &countKeys("factoids") ." factoids.");
&News::readNews() if (&ChanConfList("news"));
$param{tempDir} =~ s#\~/#$ENV{HOME}/#;
&status("Initial memory usage: $memusage kB");
+ &status("-------------------------------------------------------");
}
sub setupConfig {
sub shutdown {
# reverse order of &setup().
- &DEBUG("shutdown called.");
+ &status("--- shutdown called.");
+
+ $ident ||= "blootbot"; # hack.
# opened files must be written to on shutdown/hup/whatever
# unless they're write-only, like uptime.