X-Git-Url: https://git.donarmstrong.com/?a=blobdiff_plain;f=src%2FMisc.pl;h=3163bb3201690e9970d289305af6e4929806326b;hb=f7cae48a17d6decd0a9bd997188271daa0a885b1;hp=358515467576b10dedebb1a9bac7906a406fe79d;hpb=db6d3b9745f9db69dd6c2312a68c820c1712c9e8;p=infobot.git diff --git a/src/Misc.pl b/src/Misc.pl index 3585154..3163bb3 100644 --- a/src/Misc.pl +++ b/src/Misc.pl @@ -5,7 +5,11 @@ # NOTE: Based on code by Kevin Lenzo & Patrick Cole (c) 1997 # -#use strict; +use strict; + +use vars qw(%file %mask %param %cmdstats %myModules); +use vars qw($msgType $who $bot_pid $nuh $shm $force_public_reply + $no_timehires $bot_data_dir $addrchar); sub help { my $topic = shift; @@ -66,7 +70,7 @@ sub help { if (exists $help{$topic}) { foreach (split /\n/, $help{$topic}) { - &performStrictReply($_); + &pSReply($_); } } else { &pSReply("no help on $topic. Use 'help' without arguments."); @@ -92,7 +96,7 @@ sub timeget { } else { # the real thing. return [gettimeofday()]; } -} +} sub timedelta { my($start_time) = shift; @@ -164,29 +168,31 @@ sub IJoin { ##### # Usage: &Time2String(seconds); sub Time2String { - my $time = shift; - my $retval; + my ($time) = @_; + my $prefix = ""; + my (@s, @t); - return("NULL s") if (!defined $time or $time !~ /\d+/); + return "NULL" if (!defined $time); + return $time if ($time !~ /\d+/); - my $prefix = ""; if ($time < 0) { $time = - $time; $prefix = "- "; } - my $s = int($time) % 60; - my $m = int($time / 60) % 60; - my $h = int($time / 3600) % 24; - my $d = int($time / 86400); + $t[0] = int($time) % 60; + $t[1] = int($time / 60) % 60; + $t[2] = int($time / 3600) % 24; + $t[3] = int($time / 86400); - my @data; - push(@data, sprintf("\002%d\002d", $d)) if ($d != 0); - push(@data, sprintf("\002%d\002h", $h)) if ($h != 0); - push(@data, sprintf("\002%d\002m", $m)) if ($m != 0); - push(@data, sprintf("\002%d\002s", $s)) if ($s != 0 or !@data); + push(@s, "$t[3]d") if ($t[3] != 0); + push(@s, "$t[2]h") if ($t[2] != 0); + push(@s, "$t[1]m") if ($t[1] != 0); + push(@s, "$t[0]s") if ($t[0] != 0 or !@s); - return $prefix.join(' ', @data); + my $retval = $prefix.join(' ', @s); + $retval =~ s/(\d+)/\002$1\002/g; + return $retval; } ### @@ -200,9 +206,9 @@ sub fixFileList { # generate a hash list. foreach (@files) { - if (/^(.*\/)(.*?)$/) { - $files{$1}{$2} = 1; - } + next unless /^(.*\/)(.*?)$/; + + $files{$1}{$2} = 1; } @files = (); # reuse the array. @@ -464,6 +470,22 @@ sub isStale { return 0; } +sub isFileUpdated { + my ($file, $time) = @_; + + if (! -f $file) { + return 1; + } + + my $time_file = (stat $file)[9]; + + if ($time == $time_file) { + return 0; + } else { + return 1; + } +} + ########## ### make commands. ### @@ -629,21 +651,22 @@ sub closeStats { foreach (keys %cmdstats) { my $type = $_; - my $i = &dbGet("stats", "counter", "nick=".&dbQuote($type). - " AND type='cmdstats'"); + my $i = &sqlSelect("stats", "counter", { + nick => $type, + type => "cmdstats", + } ); my $z = 0; $z++ unless ($i); $i += $cmdstats{$type}; - my %hash = ( - nick => $type, - type => "cmdstats", - counter => $i - ); - $hash{time} = time() if ($z); - &dbReplace("stats", "nick", %hash); + &sqlReplace("stats", { + nick => $type, + type => "cmdstats", + 'time' => time(), + counter => $i, + } ); } }