diff bin/wl @ 0:e037173e0012

Initial import.
author HackBot
date Thu, 16 Feb 2012 19:42:32 +0000
parents
children
line wrap: on
line diff
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/bin/wl	Thu Feb 16 19:42:32 2012 +0000
@@ -0,0 +1,65 @@
+#!/usr/bin/env python
+
+import os
+import sys
+import json
+import urllib2
+
+proxy_handler = urllib2.ProxyHandler({'http': os.environ['http_proxy']})
+opener = urllib2.build_opener(proxy_handler)
+urllib2.install_opener(opener)
+
+def lose():
+    print 'You get NOTHING! You LOSE! Good DAY sir!'
+    sys.exit()
+
+def eels():
+    print 'My hovercraft is full of eels.'
+    sys.exit()
+
+if len(sys.argv) > 2:
+    args = sys.argv[1:]
+elif len(sys.argv) == 2:
+    args = sys.argv[1].split()
+else:
+    lose()
+
+if len(args) == 2:
+    from_lang = args[0]
+    to_lang = 'en'
+    word = args[1]
+elif len(args) == 3:
+    from_lang = args[0]
+    to_lang = args[1]
+    word = args[2]
+else:
+    lose()
+
+def query(continue_id):
+    url = 'http://%s.wikipedia.org/w/api.php?format=json&action=query&' \
+        'redirects=1&titles=%s&prop=langlinks' % (from_lang, word)
+    if continue_id:
+        url += '&llcontinue=' + continue_id
+    try:
+        response = urllib2.urlopen(url).read()
+    except urllib2.URLError, e:
+        print e.reason
+        sys.exit()
+    return json.loads(response)
+
+continue_id = None
+while True:
+    q = query(continue_id)
+    if '-1' in q['query']['pages']:
+        eels()
+    page = q['query']['pages'].values()[0]
+    if 'langlinks' not in page:
+        eels()
+    for link in q['query']['pages'].values()[0]['langlinks']:
+        if link['lang'] == to_lang:
+            print link['*'].encode('utf-8')
+            sys.exit()
+    if 'query-continue' in q:
+        continue_id = q['query-continue']['langlinks']['llcontinue']
+    else:
+        eels()