From f943d63098a50746f4e470e403a991a4d9713030 Mon Sep 17 00:00:00 2001 From: jesopo Date: Tue, 29 Mar 2016 12:56:58 +0100 Subject: first commit. --- modules/urbandictionary.py | 34 ++++++++++++++++++++++++++++++++++ 1 file changed, 34 insertions(+) create mode 100644 modules/urbandictionary.py (limited to 'modules/urbandictionary.py') diff --git a/modules/urbandictionary.py b/modules/urbandictionary.py new file mode 100644 index 00000000..a9815617 --- /dev/null +++ b/modules/urbandictionary.py @@ -0,0 +1,34 @@ +import json, re +import Utils + +URL_URBANDICTIONARY = "http://api.urbandictionary.com/v0/define" +REGEX_DEFNUMBER = re.compile("-n(\d+) \S+") + +class Module(object): + def __init__(self, bot): + bot.events.on("received").on("command").on("urbandictionary", "ud" + ).hook(self.ud, min_args=1, + help="Get the definition of a provided term") + + def ud(self, event): + term = event["args"] + number = 1 + match = re.match(REGEX_DEFNUMBER, term) + if match: + number = int(match.group(1)) + term = term.split(" ", 1)[1] + page = Utils.get_url(URL_URBANDICTIONARY, get_params={"term": term}, + json=True) + if page: + if len(page["list"]): + if number > 0 and len(page["list"]) > number-1: + definition = page["list"][number-1] + event["stdout"].write("%s: %s" % (definition["word"], + definition["definition"].replace("\n", " ").replace( + "\r", "").replace(" ", " "))) + else: + event["stderr"].write("Definition number does not exist") + else: + event["stderr"].write("No results found") + else: + event["stderr"].write("Failed to load results") -- cgit v1.3.1-10-gc9f91