Browse Source

A new UrbanDictionary plugin to obtain correct definitions of words.

pull/8/head
Kunal Mehta 11 years ago
parent
commit
a4c57fc40f
1 changed files with 36 additions and 0 deletions
  1. +36
    -0
      commands/dictionary.py

+ 36
- 0
commands/dictionary.py View File

@@ -0,0 +1,36 @@
# -*- coding: utf-8 -*-
#
# Public domain, 2013 Legoktm
#

from json import loads
from urllib import quote
from urllib2 import urlopen

from earwigbot.commands import Command

class UrbanDictionary(Command):
"""Get the real definition of a word."""
name = "urban"
commands = ["dictt", "definee", "defne", "dct", "ud"]

def process(self, data):
if not data.args:
return
q = ' '.join(data.args)

url = "http://api.urbandictionary.com/v0/define?term={}"
q = quote(q, safe="")
query = urlopen(url.format(q)).read()
res = loads(query)
if res['result_type'] == 'exact':
defin = res['list'][0]
msg = 'Definition: {definition}; example: {example}'.format(**defin)
self.reply(data, msg)
elif res['result_type'] == 'fulltext':
l = [i['word'] for i in res['list']]
msg = 'Here are some close matches...: {}'.format(', '.join(l))
self.reply(data, msg)
else:
self.reply(data, 'Sorry, no results found :(')


Loading…
Cancel
Save