#!/usr/bin/env python3
# tall.bot - a simple Discord Wikipedia bot
-# Armaan Bhojwani 2020
+# Armaan Bhojwani 2021
+
import logging
import sqlite3
import wikipedia
import discord
+
def wiki_sum(search, sen, pid):
try:
- logging.info(str(pid) + " | " + str(int(time.time())) + " | " + str(search))
+ logging.info(str(pid) + " | " + str(int(time.time())) + " | " +
+ str(search))
log_query(search, pid)
return "<Wikipedia> " + wikipedia.summary(search,
sentences=sen,
logging.debug(str(pid) + " | " + str(search) + " | " + str(e))
return str(e)
+
def create_query(inp):
key1 = ["What", "what", "who", "Who", "what's", "What's", "whats", "Whats",
"Whatsa", "whatsa"]
return " ".join(x)
+
def tell_more(inp, pid):
def find_query(inp):
key1 = ["Tell me more", "tell me more"]
old = int(time.time()) - 150
c.execute("SELECT query FROM queries WHERE pid = (?) AND time > (?)",
(str(pid), old))
- return c.fetchone()
+
+ (query, *_) = c.fetchone()
+ return str(query)
if find_query(inp):
return query_lookup(pid)
else:
return False
+
def prep_database():
c.execute("""CREATE TABLE IF NOT EXISTS queries(
time INTEGER,
query TEXT)""")
conn.commit()
+
def log_query(search, pid):
c.execute("DELETE FROM queries WHERE pid = (?)", (str(pid),))
c.execute("""INSERT INTO queries
(int(time.time()), str(pid), str(search)))
conn.commit()
+
class TallBot(discord.Client):
async def on_ready(self):
logging.info('Logged in as ', self.user)
query = create_query(message.content)
more_info = tell_more(message.content, message.author)
if query:
- await message.channel.send(wiki_sum(query, 2, message.author))
+ await message.channel.send(wiki_sum(query, 1, message.author))
elif more_info:
- await message.channel.send(wiki_sum(more_info, 8, message.author))
+ await message.channel.send(wiki_sum(more_info, 6, message.author))
+
def main():
prep_database()
TallBot().run(sys.argv[1])
+
if __name__ == "__main__":
conn = sqlite3.connect("queries.db")
c = conn.cursor()