view bin/wl @ 3418:d0d4a6a6ad9b

<boily> learn ph\xe1\xbb\x9f l\xc3\xa0 m\xe1\xbb\x99t m\xc3\xb3n \xc4\x83n truy\xe1\xbb\x81n th\xe1\xbb\x91ng c\xe1\xbb\xa7a Vi\xe1\xbb\x87t Nam, c\xc5\xa9ng c\xc3\xb3 th\xe1\xbb\x83 xem l\xc3\xa0 m\xe1\xbb\x99t trong nh\xe1\xbb\xafng m\xc3\xb3n \xc4\x83n \xc4\x91\xe1\xba\xb7c tr\xc6\xb0ng nh\xe1\xba\xa5t cho \xe1\xba\xa9m th\xe1\xbb\xb1c Vi\xe1\xbb\x87t Nam.
author HackBot
date Thu, 15 Aug 2013 19:52:26 +0000
parents e037173e0012
children
line wrap: on
line source

#!/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()