2020-07-14 05:45:28 +00:00
|
|
|
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]
|
2020-07-14 05:53:00 +00:00
|
|
|
if title.startswith("xkcd: "):
|
|
|
|
title = title[6:]
|
2020-07-14 05:45:28 +00:00
|
|
|
event["stdout"].write("%s: %s" % (title, url))
|
|
|
|
else:
|
|
|
|
event["stderr"].write("Unable to fetch xkcd")
|
|
|
|
except ValueError:
|
|
|
|
event["stderr"].write("Please provide positive integer.")
|
|
|
|
|