X-Git-Url: https://git.donarmstrong.com/?a=blobdiff_plain;f=src%2Fmodules.pl;h=bcbd3282a50665e8c1cfd1d80a21d5cc93b22557;hb=ebc49b9ae0376834282d98301747f22af0d4d449;hp=e39116b16263a4a4f61e837518aa5260be8a3140;hpb=da7fd06d82047c17f137afd1984d84dd480153ae;p=infobot.git diff --git a/src/modules.pl b/src/modules.pl index e39116b..bcbd328 100644 --- a/src/modules.pl +++ b/src/modules.pl @@ -5,9 +5,9 @@ # Created: 20000624 # -# use strict; # TODO +use strict; -use vars qw($AUTOLOAD); +use vars qw($AUTOLOAD $no_timehires); ### ### REQUIRED MODULES. @@ -20,51 +20,11 @@ if ($@) { } &showProc(" (IO::Socket)"); -### MODULES. -%myModules = ( - "babelfish" => "babelfish.pl", - "botmail" => "botmail.pl", - "BZFlag" => "BZFlag.pl", - "countdown" => "countdown.pl", - "Debian" => "Debian.pl", - "DebianExtra" => "DebianExtra.pl", - "Dict" => "Dict.pl", - "DumpVars" => "DumpVars.pl", - "Exchange" => "Exchange.pl", - "Factoids" => "Factoids.pl", - "HTTPDtype" => "HTTPDtype.pl", - "insult" => "insult.pl", - "UserDCC" => "UserDCC.pl", - "Kernel" => "Kernel.pl", - "News" => "News.pl", - "nickometer" => "nickometer.pl", - "pager" => "pager.pl", - "Math" => "Math.pl", - "Plug" => "Plug.pl", - "Quote" => "Quote.pl", - "RootWarn" => "RootWarn.pl", - "Rss" => "Rss.pl", - "Search" => "Search.pl", - "slashdot" => "slashdot.pl", - "DumpVars2" => "DumpVars2.pl", - "Topic" => "Topic.pl", - "Units" => "Units.pl", - "Uptime" => "Uptime.pl", - "userinfo" => "UserInfo.pl", - "weather" => "Weather.pl", - "whatis" => "WhatIs.pl", - "wikipedia" => "wikipedia.pl", - "wingate" => "Wingate.pl", - "wwwsearch" => "W3Search.pl", - "zfi" => "zfi.pl", - "zippy" => "Zippy.pl", - "zsi" => "zsi.pl", -); ### THIS IS NOT LOADED ON RELOAD :( my @myModulesLoadNow; my @myModulesReloadNot; BEGIN { - @myModulesLoadNow = ('Topic', 'Uptime', 'News', 'RootWarn', 'DumpVars2', 'botmail'); + @myModulesLoadNow = ('Topic', 'Uptime', 'News', 'RootWarn', 'DumpVars2', 'botmail', 'OnJoin'); @myModulesReloadNot = ('IRC/Irc.pl','IRC/Schedulers.pl'); } @@ -92,7 +52,7 @@ sub loadDBModules { my $f; # TODO: use function to load module. - if ($param{'DBType'} =~ /^(mysql|SQLite|pgsql)$/i) { + if ($param{'DBType'} =~ /^(mysql|SQLite(2)?|pgsql)$/i) { eval "use DBI"; if ($@) { &ERROR("No support for DBI::" . $param{'DBType'} . ", exiting!"); @@ -180,17 +140,12 @@ sub loadMyModulesNow { next; } - if (!&IsParam($_) and !&IsChanConf($_) and !&getChanConfList($_)) { - if (exists $myModules{$_}) { - &status("myModule: $myModules{$_} or $_ (1) not loaded."); - } else { - &DEBUG("myModule: $_ (2) not loaded."); - } - + if (!&IsParam($_) and &IsChanConf($_) <= 0 and !&getChanConfList($_)) { + &DEBUG("loadMyModuleNow: $_ (2) not loaded."); next; } - &loadMyModule($myModules{$_}); + &loadMyModule($_); $loaded++; } @@ -248,8 +203,7 @@ sub reloadModule { if ($age < $moduleAge{$file}) { &WARN("rM: we're not gonna downgrade '$file'; use touch."); - &DEBUG("age => $age"); - &DEBUG("mA{$file} => $moduleAge{$file}"); + &DEBUG("age => $age, mA{$file} => $moduleAge{$file}"); return $retval; } @@ -302,32 +256,22 @@ sub loadPerlModule { } sub loadMyModule { - my ($tmp) = @_; - if (!defined $tmp) { + my ($modulename) = @_; + if (!defined $modulename) { &WARN("loadMyModule: module is NULL."); return 0; } - my ($modulename, $modulebase); - if (exists $myModules{$tmp}) { - ($modulename, $modulebase) = ($tmp, $myModules{$tmp}); - } else { - $modulebase = $tmp; - if ($tmp = grep /^$modulebase$/, keys %myModules) { - &DEBUG("lMM: lame hack, file => name => $tmp."); - $modulename = $tmp; - } - } - my $modulefile = "$bot_src_dir/Modules/$modulebase"; + my $modulefile = "$bot_src_dir/Modules/$modulename.pl"; # call reloadModule() which checks age of file and reload. - if (grep /\/$modulebase$/, keys %INC) { - &reloadModule($modulebase); + if (grep /\/$modulename$/, keys %INC) { + &reloadModule($modulename); return 1; # depend on reloadModule? } if (! -f $modulefile) { - &ERROR("lMM: module ($modulebase) does not exist."); + &ERROR("lMM: module ($modulename) does not exist."); if ($$ == $bot_pid) { # parent. &shutdown() if (defined $shm and defined $dbh); } else { # child. @@ -340,7 +284,7 @@ sub loadMyModule { eval "require \"$modulefile\""; if ($@) { - &ERROR("cannot load my module: $modulebase"); + &ERROR("cannot load my module: $modulename"); if ($bot_pid != $$) { # child. &DEBUG("b4 delfork 2"); &delForked($modulename); @@ -351,8 +295,8 @@ sub loadMyModule { } else { $moduleAge{$modulefile} = (stat $modulefile)[9]; - &status("Loaded $modulebase"); - &showProc(" ($modulebase)"); + &status("Loaded $modulename"); + &showProc(" ($modulename)"); return 1; } } @@ -378,11 +322,9 @@ sub AUTOLOAD { $AUTOLOAD =~ s/^(\S+):://g; - if (exists $myModules{lc $AUTOLOAD}) { - # hopefully this will work. - &DEBUG("Trying to load module $AUTOLOAD..."); - &loadMyModule(lc $AUTOLOAD); - } + # hopefully this will work. + &DEBUG("Trying to load module $AUTOLOAD..."); + &loadMyModule($AUTOLOAD); } sub getPerlFiles {