From e656fb46cfba431939052b8081c4b301d0737363 Mon Sep 17 00:00:00 2001 From: Pragmatic Software Date: Wed, 3 Aug 2022 11:25:05 -0700 Subject: [PATCH] Revert "FuncBuiltins: maybe-the: do it for all words" This reverts commit 7093fa0ae4a81fe8cc6fd8ff4a4d2e832f024db0. --- lib/PBot/Plugin/FuncBuiltins.pm | 43 +++++++++++++-------------------- lib/PBot/VERSION.pm | 2 +- 2 files changed, 18 insertions(+), 27 deletions(-) diff --git a/lib/PBot/Plugin/FuncBuiltins.pm b/lib/PBot/Plugin/FuncBuiltins.pm index 10117a8a..3a02c437 100644 --- a/lib/PBot/Plugin/FuncBuiltins.pm +++ b/lib/PBot/Plugin/FuncBuiltins.pm @@ -76,7 +76,7 @@ sub initialize { $self->{pbot}->{functions}->register( 'maybe-the', { - desc => 'prepend "the" in front of words depending on their part-of-speech', + desc => 'prepend "the" in front of text depending on the part-of-speech of the first word in text', usage => 'maybe-the ', subref => sub { $self->func_maybe_the(@_) } } @@ -169,35 +169,26 @@ sub func_ana { sub func_maybe_the { my $self = shift; my $text = "@_"; - my @words = split ' ', $text; - my @result; - foreach my $part (@words) { - my ($word) = $part =~ m/^\s*([^',.;: ]+)/; + my ($word) = $text =~ m/^\s*([^',.;: ]+)/; - # don't prepend "the" if a proper-noun nick follows - if ($self->{pbot}->{nicklist}->is_present_any_channel($word)) { - push @result, $part; - next; - } - - # special-case some indefinite nouns that Lingua::EN::Tagger treats as plain nouns - if ($word =~ m/(some|any|every|no)(thing|one|body|how|way|where|when|time|place)/i) { - push @result, $part; - next; - } - - my $tagged = $self->{tagger}->add_tags($word); - - if ($tagged !~ m/^\s*<(?:det|prps?|cd|in|nnp|to|rb|wdt|rbr|jjr)>/) { - push @result, "the $part"; - next; - } - - push @result, $part; + # don't prepend "the" if a proper-noun nick follows + if ($self->{pbot}->{nicklist}->is_present_any_channel($word)) { + return $text; } - return join ' ', @result; + # special-case some indefinite nouns that Lingua::EN::Tagger treats as plain nouns + if ($word =~ m/(some|any|every|no)(thing|one|body|how|way|where|when|time|place)/i) { + return $text; + } + + my $tagged = $self->{tagger}->add_tags($word); + + if ($tagged !~ m/^\s*<(?:det|prps?|cd|in|nnp|to|rb|wdt|rbr|jjr)>/) { + $text = "the $text"; + } + + return $text; } 1; diff --git a/lib/PBot/VERSION.pm b/lib/PBot/VERSION.pm index f039ed58..8f29bd5d 100644 --- a/lib/PBot/VERSION.pm +++ b/lib/PBot/VERSION.pm @@ -25,7 +25,7 @@ use PBot::Imports; # These are set by the /misc/update_version script use constant { BUILD_NAME => "PBot", - BUILD_REVISION => 4562, + BUILD_REVISION => 4561, BUILD_DATE => "2022-08-03", };