From: dms Date: Sun, 3 Dec 2000 13:46:53 +0000 (+0000) Subject: Added 'factstats seefix' X-Git-Url: https://git.donarmstrong.com/?a=commitdiff_plain;h=a4bc1b05ea06f27af1c4dfd338a8b508c0ab8e26;p=infobot.git Added 'factstats seefix' git-svn-id: https://svn.code.sf.net/p/infobot/code/trunk/blootbot@176 c11ca15a-4712-0410-83d8-924469b57eb5 --- diff --git a/src/Modules/Factoids.pl b/src/Modules/Factoids.pl index 525d900..d803088 100644 --- a/src/Modules/Factoids.pl +++ b/src/Modules/Factoids.pl @@ -191,7 +191,7 @@ sub CmdFactStats { my $prefix = "broken factoid "; return &formListReply(1, $prefix, @list); - } elsif ($type =~ /^deadredir?$/i) { + } elsif ($type =~ /^deadredir$/i) { my @list = &searchTable("factoids", "factoid_key", "factoid_value", "^ see "); my %redir; @@ -478,6 +478,44 @@ sub CmdFactStats { my $prefix = "rank of top factoid requesters: "; return &formListReply(0, $prefix, @list); + } elsif ($type =~ /^seefix$/i) { + my @list = &searchTable("factoids", "factoid_key", + "factoid_value", "^see "); + my %redir; + my $f; + my $fixed = 0; + + for (@list) { + my $factoid = $_; + my $val = &getFactInfo($factoid, "factoid_value"); + if ($val =~ /^see( also)? (.*?)\.?$/i) { + my $redirf = lc $2; + my $redir = &getFactInfo($redirf, "factoid_value"); + + if (defined $redir) { # good. + &setFactInfo($factoid,"factoid_value"," see $redir"); + $fixed++; + } else { + $redir{$redirf}{$factoid} = 1; + } + } + } + + my @newlist; + foreach $f (keys %redir) { + my @sublist = keys %{$redir{$f}}; + for (@sublist) { + s/([\,\;]+)/\037$1\037/g; + } + + push(@newlist, join(', ', @sublist)." => $f"); + } + + # parse the results. + &performReply("Fixed $fixed factoids."); + my $prefix = "Loose link (dead) redirections in factoids "; + return &formListReply(1, $prefix, @newlist); + } elsif ($type =~ /^(2|too)long$/i) { my @list; @@ -524,7 +562,7 @@ sub CmdListAuth { my @list = &searchTable("factoids","factoid_key", "created_by", "^$query!"); my $prefix = "factoid author list by '$query' "; - return &formListReply(1, $prefix, @list); + &performStrictReply( &formListReply(1, $prefix, @list) ); } 1;