From 40a27885d646bc18aee7ef27cdfd7dcd6025d019 Mon Sep 17 00:00:00 2001 From: jsl12 <32917998+jsl12@users.noreply.github.com> Date: Thu, 3 Feb 2022 12:00:55 -0600 Subject: [PATCH] fixed buggy GoodBot response --- src/kwaylon/jokes/helpers.py | 6 ++++++ src/kwaylon/jokes/jokes.py | 5 +++-- 2 files changed, 9 insertions(+), 2 deletions(-) diff --git a/src/kwaylon/jokes/helpers.py b/src/kwaylon/jokes/helpers.py index 82b216c..6d3b1dd 100644 --- a/src/kwaylon/jokes/helpers.py +++ b/src/kwaylon/jokes/helpers.py @@ -5,6 +5,12 @@ from bs4 import BeautifulSoup pattern = 'NP: {
?*}' cp = nltk.RegexpParser(pattern) +WORDS = set(w.lower() for w in nltk.corpus.words.words()) + + +def valid_word(word: str): + return word.strip().lower() in WORDS + def get_stock_price(symbol: str): soup = BeautifulSoup(requests.get(f'https://finance.yahoo.com/quote/{symbol}').content, 'lxml') diff --git a/src/kwaylon/jokes/jokes.py b/src/kwaylon/jokes/jokes.py index cc855b1..98240a1 100644 --- a/src/kwaylon/jokes/jokes.py +++ b/src/kwaylon/jokes/jokes.py @@ -153,7 +153,8 @@ class Jaccuse(base.Joke): class GoodBot(base.Joke): @property def regex(self) -> re.Pattern: - return re.compile('(\w+) bot', re.IGNORECASE) + return re.compile('(\w+) bot$', re.IGNORECASE) async def respond(self, message: Message, client: Client, match: re.Match): - await message.add_reaction(utils.get(client.emojis, name='kaylon')) + if helpers.valid_word(match.group(1)): + await message.add_reaction(utils.get(client.emojis, name='kaylon'))