From b1e07c3a10ca72ea991ee3c6da8e9d5fa568b8ea Mon Sep 17 00:00:00 2001 From: BK Bolisetty Date: Sun, 21 Jun 2020 22:28:31 -0400 Subject: [PATCH] Add xkcd.py - retrieves xkcd comic --- modules/xkcd.py | 26 ++++++++++++++++++++++++++ 1 file changed, 26 insertions(+) create mode 100644 modules/xkcd.py diff --git a/modules/xkcd.py b/modules/xkcd.py new file mode 100644 index 00000000..3e4cdcdf --- /dev/null +++ b/modules/xkcd.py @@ -0,0 +1,26 @@ +from src import ModuleManager, utils + +URL_XKCD = "https://xkcd.com/" + +class Module(ModuleManager.BaseModule): + @utils.hook("received.command.x", alias_of="xkcd") + @utils.hook("received.command.xkcd") + def xkcd(self, event): + """ + :help: Get given xkcd. Gets latest without a number + :usage: [number] + """ + query = "" or event["args"] + if query: + try: + int(query) + xkcd_url = URL_XKCD + query + page = utils.http.request(xkcd_url) + if page: + title = page.soup().title.contents[0] + event["stdout"].write("xkcd: %s | url: %s" % (title, xkcd_url)) + else: + event["stderr"].write("Unable to fetch xkcd") + except ValueError: + event["stdout"].write("Please provide positive integer.") +