]> git.donarmstrong.com Git - infobot.git/blobdiff - src/Modules/Factoids.pl
- make ignoreAdd a little more verbose.
[infobot.git] / src / Modules / Factoids.pl
index 3285dd9dfad26a2701ae0f26b17463a27745879e..f00bdaabc2de9216a50eb29050ca2dea626151d5 100644 (file)
@@ -19,16 +19,10 @@ sub CmdFactInfo {
        return;
     }
 
-    my $i = 0;
-    my %factinfo;
-    my @factinfo = &getFactInfo($faqtoid,"*");
-    foreach ( &dbGetColInfo("factoids") ) {
-       $factinfo{$_} = $factinfo[$i] || '';
-       $i++;
-    }
+    my %factinfo = &dbGetColNiceHash("factoids", "*", "factoid_key=".&dbQuote($faqtoid));
 
     # factoid does not exist.
-    if (scalar @factinfo <= 1) {
+    if (scalar (keys %factinfo) <= 1) {
        &performReply("there's no such factoid as \002$faqtoid\002");
        return;
     }
@@ -174,14 +168,14 @@ sub CmdFactStats {
        my $prefix = "factoid statistics by author: ";
        return &formListReply(0, $prefix, @list);
 
-    } elsif ($type =~ /^broken$/i) {
-        &status("factstats(broken): starting...");
+    } elsif ($type =~ /^vandalism$/i) {
+        &status("factstats(vandalism): starting...");
        my $start_time  = &timeget();
        my %data        = &dbGetCol("factoids", "factoid_key,factoid_value", "factoid_value IS NOT NULL");
        my @list;
 
        my $delta_time  = &timedelta($start_time);
-        &status(sprintf("factstats(broken): %.02f sec to retreive all factoids.", $delta_time)) if ($delta_time > 0);
+        &status(sprintf("factstats(vandalismbroken): %.02f sec to retreive all factoids.", $delta_time)) if ($delta_time > 0);
        $start_time     = &timeget();
 
        # parse the factoids.
@@ -193,15 +187,15 @@ sub CmdFactStats {
        }
 
        $delta_time     = &timedelta($start_time);
-        &status(sprintf("factstats(broken): %.02f sec to complete.", $delta_time)) if ($delta_time > 0);
+        &status(sprintf("factstats(vandalism): %.02f sec to complete.", $delta_time)) if ($delta_time > 0);
 
        # bail out on no results.
        if (scalar @list == 0) {
-           return 'no broken factoids... wooohoo.';
+           return 'no vandalised factoids... wooohoo.';
        }
 
        # parse the results.
-       my $prefix = "broken factoid ";
+       my $prefix = "Vandalised factoid ";
        return &formListReply(1, $prefix, @list);
 
     } elsif ($type =~ /^total$/i) {
@@ -277,7 +271,7 @@ sub CmdFactStats {
        for (@list) {
            my $factoid = $_;
            my $val = &getFactInfo($factoid, "factoid_value");
-           if ($val =~ /^<REPLY> see( also)? (.*?)\.?$/i) {
+           if ($val =~ /^<REPLY> ?see( also)? (.*?)\.?$/i) {
                my $redirf = lc $2;
                my $redir = &getFactInfo($redirf, "factoid_value");
                next if (defined $redir);
@@ -590,7 +584,9 @@ sub CmdFactStats {
        my $users       = 0;
        foreach $rate (sort { $b <=> $a } keys %hash) {
            my $f       = join(", ", sort keys %{ $hash{$rate} });
-           push(@list, "$f - ".&Time2String($rate));
+           my $str     = "$f - ".&Time2String($rate);
+           $str        =~ s/\002//g;
+           push(@list, $str);
        }
 
        my $prefix = "Rank of top factoid rate (time/req): ";