Mercurial > repo
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()