]> git.donarmstrong.com Git - infobot.git/blobdiff - src/Misc.pl
- bot stats: "blah has blah... is ranked xx/yy (zz percentile)"
[infobot.git] / src / Misc.pl
index ffc6fb6467a5f19784abed4c9969873d57b82998..0b39297c98d5cc97f7d8a1bc6ff42a481f819c47 100644 (file)
@@ -212,6 +212,11 @@ sub fixFileList {
        my @keys = sort keys %{ $files{$file} };
        my $i    = scalar(@keys);
 
+       if (scalar @keys > 3) {
+           pop @keys while (scalar @keys > 3);
+           push(@keys, "...");
+       }
+
        if ($i > 1) {
            $file .= "\002{\002". join("\002|\002", @keys) ."\002}\002";
        } else {
@@ -283,8 +288,6 @@ sub fixPlural {
     return $str;
 }
 
-
-
 ##########
 ### get commands.
 ###
@@ -538,85 +541,6 @@ sub validExec {
     }
 }
 
-# Usage: &validFactoid($lhs,$rhs);
-sub validFactoid {
-    my ($lhs,$rhs) = @_;
-    my $valid = 0;
-
-    for (lc $lhs) {
-       # allow the following only if they have been made on purpose.
-       if ($rhs ne "" and $rhs !~ /^</) {
-           / \Q$ident$/i and last;     # someone said i'm something.
-           /^i('m)? / and last;
-           /^(it|that|there|what)('s)?(\s+|$)/ and last;
-           /^you('re)?(\s+|$)/ and last;
-
-           /^(where|who|why|when|how)(\s+|$)/ and last;
-           /^(this|that|these|those|they)(\s+|$)/ and last;
-           /^(every(one|body)|we) / and last;
-
-           /^say / and last;
-       }
-
-       # uncaught commands.
-       /^add topic / and last;         # topic management.
-       /( add$| add |^add )/ and last; # borked teach statement.
-       /^learn / and last;             # teach. damn morons.
-       /^tell (\S+) about / and last;  # tell.
-       /\=\~/ and last;                # substituition.
-       /^\S+ to \S+ \S+/ and last;     # babelfish.
-
-       /^\=/ and last;                 # botnick = heh is.
-       /wants you to know/ and last;
-
-       # symbols.
-       /(\"\*)/ and last;
-       /, / and last;
-       /^\'/ and last;
-
-       # delimiters.
-       /\=\>/ and last;                # '=>'.
-       /\;\;/ and last;                # ';;'.
-       /\|\|/ and last;                # '||'.
-
-       /^\Q$ident\E[\'\,\: ]/ and last;# dupe addressed.
-       /^[\-\, ]/ and last;
-       /\\$/ and last;                 # forgot shift for '?'.
-       /^all / and last;
-       /^also / and last;
-       / also$/ and last;
-       / and$/ and last;
-       /^because / and last;
-       /^gives / and last;
-       /^h(is|er) / and last;
-       /^if / and last;
-       / is,/ and last;
-       / it$/ and last;
-       / says$/ and last;
-       /^should / and last;
-       /^so / and last;
-       /^supposedly/ and last;
-       /^to / and last;
-       /^was / and last;
-       / which$/ and last;
-
-       # nasty bug I introduced _somehow_, probably by fixMySQLBug().
-       /\\\%/ and last;
-       /\\\_/ and last;
-
-       # weird/special stuff. also old blootbot or stock infobot bugs.
-       $rhs =~ /( \Q$ident\E's|\Q$ident\E's )/i and last; # ownership.
-
-       # duplication.
-       $rhs =~ /^\Q$lhs /i and last;
-       last if ($rhs =~ /^is /i and / is$/);
-
-       $valid++;
-    }
-
-    return $valid;
-}
-
 # Usage: &hasProfanity($string);
 sub hasProfanity {
     my ($string) = @_;
@@ -704,13 +628,21 @@ sub closeStats {
 
     foreach (keys %cmdstats) {
        my $type        = $_;
-       my $i = &dbGet("stats", "counter", "nick=".&dbQuote($type).
+       my $i   = &dbGet("stats", "counter", "nick=".&dbQuote($type).
                        " AND type='cmdstats'");
+       my $z   = 0;
+       $z++ unless ($i);
+
        $i      += $cmdstats{$type};
 
-       &dbReplace("stats",
-               (nick => $type, type => "cmdstats", counter => $i)
-       );
+       my %hash = (
+               nick => $type,
+               type => "cmdstats",
+               counter => $i
+       );              
+       $hash{time} = time() if ($z);
+
+       &dbReplace("stats", %hash);
     }
 }