bitbot-modules/xkcd.py

24 lines
833 B
Python

from src import ModuleManager, utils
BASE_URL = "https://m.xkcd.com/"
class Module(ModuleManager.BaseModule):
@utils.hook("received.command.x", alias_of="xkcd")
@utils.hook("received.command.xkcd")
@utils.kwarg("help", "get an xkcd by number. defaults to latest")
def xkcd(self, event):
query = event["args"] or ""
try:
url = BASE_URL + query
page = utils.http.request(url)
if page:
title = page.soup().title.contents[0]
if title.startswith("xkcd: "):
title = title[6:]
event["stdout"].write("%s: %s" % (title, url))
else:
event["stderr"].write("Unable to fetch xkcd")
except ValueError:
event["stderr"].write("Please provide positive integer.")