From 5879bc182611e08dcf0f072846bb0e9e277d3a63 Mon Sep 17 00:00:00 2001 From: 0xDEADCADE <69792955+0xDEADCADE@users.noreply.github.com> Date: Sat, 9 Apr 2022 13:29:40 +0000 Subject: [PATCH] Add XKCD title lookup Usage: !xkcd (title) --- main.py | 19 +++++++++++++++++++ 1 file changed, 19 insertions(+) diff --git a/main.py b/main.py index 704a895..dc8f0cf 100644 --- a/main.py +++ b/main.py @@ -55,6 +55,14 @@ client = None ratelimits = {} # Common function definitions +# Filter a title for local lookup with XKCD +def filter_xkcd_title(title): + filtered_title = "" + for char in title.lower().split("(")[0]: + if (char.isdecimal() or char.isalpha()) and (not char == " "): + filtered_title += char + return filtered_title + # Grab a list of all emojis on disk def list_emojis(): global settings @@ -213,6 +221,17 @@ async def xkcd(args, room, event): comic = "" if len(args) == 1 and args[0].isdecimal(): comic = args[0] + "/" + elif len(args) > 0: + lookup = {} + r = requests.get("https://xkcd.com/archive/") + for line in r.text.split("\n"): + if "")[1].split("<")[0]) + lookup[title] = num + user_title = filter_xkcd_title(" ".join(args)) + if user_title in lookup.keys(): + comic = lookup[user_title] + "/" try: r = requests.get(f"https://xkcd.com/{comic}info.0.json") rj = json.loads(r.text)