diff --git a/plugins/ddg.py b/plugins/ddg.py new file mode 100644 index 0000000000000000000000000000000000000000..acdf5500be65e79ebc2dacc0f9d6135855c87f49 --- /dev/null +++ b/plugins/ddg.py @@ -0,0 +1,32 @@ +# dns module +# --gry + +import urllib +import socket +import json + +@plugin +class ddg(object): + def __init__(self, server): + self.server = server + self.commands = ["ddg"] + self.server.handle("command", self.handle_command, self.commands) + + def handle_command(self, channel, user, cmd, args): + if cmd == "ddg": + if len(args) < 1: + self.server.doMessage(channel, user+": DuckDuckGo.com Zero-Click infoboxes search. Syntax: ddg <query>.") + return + try: + request = "+".join(args) + sock = urllib.urlopen("http://api.duckduckgo.com/?q=%s&o=json"%request) + data = sock.read() + sock.close() + if json.loads(data)["AbstractText"] != "": + self.server.doMessage(channel, user+": "+"%s %s)"%(json.loads(data)["AbstractURL"].encode('utf-8'),json.loads(data)["AbstractText"].encode('utf-8')[0:200])) + elif json.loads(data)["Definition"] != "": + self.server.doMessage(channel, user+": "+"%s %s"%(json.loads(data)["DefinitionURL"].encode('utf-8'),json.loads(data)["Definition"].encode('utf-8'))) + except Exception, e: + self.server.doMessage(channel, user+": "+str(e)) + +