diff options
Diffstat (limited to 'modules/thesaurus.py')
| -rw-r--r-- | modules/thesaurus.py | 43 |
1 files changed, 43 insertions, 0 deletions
diff --git a/modules/thesaurus.py b/modules/thesaurus.py new file mode 100644 index 00000000..923b1901 --- /dev/null +++ b/modules/thesaurus.py @@ -0,0 +1,43 @@ +import Utils + +URL_THESAURUS = "http://words.bighugelabs.com/api/2/%s/%s/json" + +class Module(object): + def __init__(self, bot): + self.bot = bot + bot.events.on("received").on("command").on("synonym", + "antonym").hook(self.thesaurus, min_args=1, + help="Get synonyms/antonyms for a provided phrase") + + def thesaurus(self, event): + phrase = event["args_split"][0] + page = Utils.get_url(URL_THESAURUS % (self.bot.config[ + "bighugethesaurus-api-key"], phrase), json=True) + syn_ant = event["command"][:3] + if page: + if not len(event["args_split"]) > 1: + word_types = [] + for word_type in page.keys(): + if syn_ant in page[word_type]: + word_types.append(word_type) + if word_types: + word_types = sorted(word_types) + event["stdout"].write( + "Available categories for %s: %s" % ( + phrase, ", ".join(word_types))) + else: + event["stderr"].write("No categories available") + else: + category = event["args_split"][1].lower() + if category in page: + if syn_ant in page[category]: + event["stdout"].write("%ss for %s: %s" % ( + event["command"].title(), phrase, ", ".join( + page[category][syn_ant]))) + else: + event["stderr"].write("No %ss for %s" % ( + event["command"], phrase)) + else: + event["stderr"].write("Category not found") + else: + event["stderr"].write("Failed to load results") |
