3
0
mirror of https://github.com/pragma-/pbot.git synced 2024-12-23 19:22:40 +01:00

Triggering non-existent factoids now attempts to factfind (for keywords and text) before trying a levenshtein closest match (of keywords)

This commit is contained in:
Pragmatic Software 2012-11-04 20:42:38 +00:00
parent b8d2d0797e
commit 39a38b58f8
3 changed files with 14 additions and 7 deletions

View File

@ -652,14 +652,14 @@ sub factfind {
if($arguments ne "") { if($arguments ne "") {
if(not defined $argtype) { if(not defined $argtype) {
$argtype = "with text matching '$arguments'"; $argtype = "with text containing '$arguments'";
} else { } else {
$argtype .= " and with text matching '$arguments'"; $argtype .= " and with text containing '$arguments'";
} }
} }
if(not defined $argtype) { if(not defined $argtype) {
return "/msg $nick Usage: !find [-channel] [-owner nick] [-by nick] [text]"; return "/msg $nick Usage: factfind [-channel] [-owner nick] [-by nick] [text]";
} }
my ($text, $last_trigger, $last_chan, $i); my ($text, $last_trigger, $last_chan, $i);

View File

@ -266,8 +266,15 @@ sub interpreter {
# if a non-nick argument was supplied, e.g., a sentence using the bot's nick, don't say anything # if a non-nick argument was supplied, e.g., a sentence using the bot's nick, don't say anything
return "" if length $arguments and $arguments !~ /^[^.+-, ]{1,20}$/; return "" if length $arguments and $arguments !~ /^[^.+-, ]{1,20}$/;
# find matches from all channels my $matches = $self->{pbot}->{factoidcmds}->factfind($from, $nick, $user, $host, quotemeta $original_keyword);
my $matches = $self->factoids->levenshtein_matches('.*', lc $original_keyword);
# found factfind matches
if($matches !~ m/^No factoids/) {
return "No such factoid '$original_keyword'; found $matches";
}
# otherwise find levenshtein closest matches from all channels
$matches = $self->factoids->levenshtein_matches('.*', lc $original_keyword);
# don't say anything if nothing similiar was found # don't say anything if nothing similiar was found
return undef if $matches eq 'none'; return undef if $matches eq 'none';

View File

@ -13,8 +13,8 @@ use warnings;
# These are set automatically by the build/commit script # These are set automatically by the build/commit script
use constant { use constant {
BUILD_NAME => "PBot", BUILD_NAME => "PBot",
BUILD_REVISION => 391, BUILD_REVISION => 392,
BUILD_DATE => "2012-11-02", BUILD_DATE => "2012-11-04",
}; };
1; 1;