add detection for words like "the" in the query
authorArmaan Bhojwani <code@armaanb.net>
Sat, 19 Dec 2020 20:53:09 +0000 (15:53 -0500)
committerArmaan Bhojwani <code@armaanb.net>
Sat, 19 Dec 2020 20:53:09 +0000 (15:53 -0500)
tallbot.py

index 371c048bc9162cc6aa1423d8fd1382680d0a4d62..e097ba78234fbc75146932e3f8af73d2ad11cc98 100755 (executable)
@@ -4,17 +4,13 @@
 
 import logging
 import sys
+import time
 import wikipedia
 import discord
 
-keywords = ["what is", "What is", "what was", "What was", "what were",
-            "What were", "who is", "Who is", "who was", "Who was", 
-            "who were", "Who were", "who are", "Who are"]
-
 def wiki_sum(search, sen, pid):
-    search = " ".join(search)
     try:
-        logging.info(str(pid) + " | " + search)
+        logging.info(str(pid) + " | " + str(int(time.time())) + " | " + search)
         return "<Wikipedia> " + wikipedia.summary(search,
                                                   sentences=sen,
                                                   auto_suggest=False)
@@ -22,25 +18,35 @@ def wiki_sum(search, sen, pid):
         logging.debug(str(pid) + " | " + search + " | " + str(e))
         return str(e)
 
-def keyword_check(inp):
+def create_query(inp):
+    key1 = ["What", "what", "who", "Who"]
+    key2 = ["is", "are", "were", "was"]
+    key3 = ["a", "an", "the"]
+
     x = inp.split()
-    x = " ".join(x[:2])
-    if x in keywords:
-        return True
+    if x[0] in key1 and x[1] in key2:
+        x = x[2:]
+        if x[0] in key3:
+            x = x[1:]
     else:
         return False
 
+    return " ".join(x)
+
 class TallBot(discord.Client):
     async def on_ready(self):
-        logging.debug('Logged in as ', self.user)
+        logging.info('Logged in as ', self.user)
 
     async def on_message(self, message):
         if message.author == self.user:
             return
 
-        if keyword_check(message.content):
-            await message.channel.send(wiki_sum(message.content.split()[2:],
-                                                2,
-                                                message.author))
+        key = create_query(message.content)
+        if key:
+            await message.channel.send(wiki_sum(key, 2, message.author))
+
+def main():
+    TallBot().run(sys.argv[1])
 
-TallBot().run(sys.argv[1])
+if __name__ == "__main__":
+    main()