From 3adb930db8d182800230d387b20922ef090871e6 Mon Sep 17 00:00:00 2001 From: mutantmonkey Date: Mon, 26 Dec 2011 22:16:06 -0500 Subject: [PATCH] add urban dictionary module --- modules/urbandict.py | 39 +++++++++++++++++++++++++++++++++++++++ 1 file changed, 39 insertions(+) create mode 100644 modules/urbandict.py diff --git a/modules/urbandict.py b/modules/urbandict.py new file mode 100644 index 0000000..5fee9de --- /dev/null +++ b/modules/urbandict.py @@ -0,0 +1,39 @@ +#!/usr/bin/python3 +""" +urbandict.py - urban dictionary module +author: mutantmonkey +""" + +from urllib.parse import quote as urlquote +from urllib.error import HTTPError +import web +import json + +def urbandict(phenny, input): + """.urb - Search Urban Dictionary for a definition.""" + + word = input.group(2) + if not word: + phenny.say(".urb - Search Urban Dictionary for a definition.") + return + + try: + req = web.get("http://www.urbandictionary.com/iphone/search/define?term={0}".format(urlquote(word))) + data = json.loads(req) + except (HTTPError, IOError, ValueError): + phenny.say("Urban Dictionary slemped out on me. Try again in a minute.") + return + + if data['result_type'] == 'no_results': + phenny.say("No results found for {0}".format(word)) + + result = data['list'][0] + url = 'http://www.urbandictionary.com/define.php?term={0}'.format(urlquote(word)) + + response = "{0} - {1}".format(result['definition'], url) + phenny.say(response) +urbandict.rule = (['urb'], r'(.*)') + +if __name__ == '__main__': + print(__doc__.strip()) +