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