]> git.donarmstrong.com Git - infobot.git/blobdiff - src/Misc.pl
BUGS in ZIPPY? OH NO!
[infobot.git] / src / Misc.pl
index 76f11ebe0ad9de7502240a52bed3eccfa9e4db43..6cb2e7b1fdbf36fcb8b9a7231f800c3802940a08 100644 (file)
@@ -96,7 +96,7 @@ sub timeget {
     } else {                   # the real thing.
        return [gettimeofday()];
     }
-}    
+}
 
 sub timedelta {
     my($start_time) = shift;
@@ -117,10 +117,13 @@ sub timedelta {
 sub formListReply {
     my($rand, $prefix, @list) = @_;
     my $total  = scalar @list;
-    my $maxshow = $param{'maxListReplyCount'}  || 10;
-    my $maxlen = $param{'maxListReplyLength'} || 400;
+    my $maxshow = &getChanConfDefault('maxListReplyCount', 15);
+    my $maxlen = &getChanConfDefault('maxListReplyLength', 400);
     my $reply;
 
+    # remove irc overhead
+    $maxlen -= 30;
+
     # no results.
     return $prefix ."returned no results." unless ($total);
 
@@ -131,7 +134,7 @@ sub formListReply {
            push(@rand, $list[$_]);
            last if (scalar @rand == $maxshow);
        }
-       @list = @rand;
+       @list = sort @rand;
     } elsif ($total > $maxshow) {
        &status("formListReply: truncating list.");
 
@@ -140,9 +143,9 @@ sub formListReply {
 
     # form the reply.
     while () {
-       $reply  = $prefix ."(\002". scalar(@list). "\002 shown";
-       $reply .= "; \002$total\002 total" if ($total != scalar @list);
-       $reply .= "): ". join(" \002;;\002 ",@list) .".";
+       $reply  = $prefix ."(\002". scalar(@list). "\002";
+       $reply .= " of \002$total\002" if ($total != scalar @list);
+       $reply .= "): " . join(" \002;;\002 ", @list) .".";
 
        last if (length($reply) < $maxlen and scalar(@list) <= $maxshow);
        last if (scalar(@list) == 1);
@@ -374,7 +377,7 @@ sub getRandomInt {
        my $i = $1;
        my $fuzzy = int(rand 5);
        if ($i < 10) {
-           return $i*60;
+           return $i;
        }
        if (rand > 0.5) {
            return ($i - $fuzzy)*60;
@@ -479,7 +482,7 @@ sub isFileUpdated {
 
     my $time_file = (stat $file)[9];
 
-    if ($time == $time_file) {
+    if ($time <= $time_file) {
        return 0;
     } else {
        return 1;
@@ -557,7 +560,7 @@ sub checkMsgType {
 sub validExec {
     my ($str) = @_;
 
-    if ($str =~ /[\'\"\|]/) {  # invalid.
+    if ($str =~ /[\`\'\"\|]/) {        # invalid.
        return 0;
     } else {                   # valid.
        return 1;
@@ -572,7 +575,7 @@ sub hasProfanity {
     for (lc $string) {
        /fuck/ and last;
        /dick|dildo/ and last;
-       /shit|turd|crap/ and last;
+       /shit/ and last;
        /pussy|[ck]unt/ and last;
        /wh[0o]re|bitch|slut/ and last;
 
@@ -618,7 +621,7 @@ sub Forker {
 
     ### TODO: use AUTOLOAD
     ### very lame hack.
-    if ($label !~ /-/ and !&loadMyModule($myModules{$label})) {
+    if ($label !~ /-/ and !&loadMyModule($label)) {
        &DEBUG("Forker: failed?");
        &delForked($label);
     }