From bbfcf4d0429a72c02b94d59ae81911da3945954b Mon Sep 17 00:00:00 2001 From: gry <guppy@123mail.org> Date: Fri, 17 Jun 2011 22:18:14 +0930 Subject: [PATCH] add ddg plugin --- plugins/ddg.py | 32 ++++++++++++++++++++++++++++++++ 1 file changed, 32 insertions(+) create mode 100644 plugins/ddg.py diff --git a/plugins/ddg.py b/plugins/ddg.py new file mode 100644 index 0000000..acdf550 --- /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)) + + -- GitLab