from urllib import urlencode import urllib2 import time from hashlib import sha512 from hmac import HMAC import base64 import json def get_nonce(): return int(time.time()*100000) def sign_data(secret, data): return base64.b64encode(str(HMAC(secret, data, sha512).digest())) class requester: def __init__(self, auth_key, auth_secret): self.auth_key = auth_key self.auth_secret = base64.b64decode(auth_secret) def build_query(self, req={}): req["nonce"] = get_nonce() post_data = urlencode(req) headers = {} headers["User-Agent"] = "GoxApi" headers["Rest-Key"] = self.auth_key headers["Rest-Sign"] = sign_data(self.auth_secret, post_data) return (post_data, headers) def perform(self, path, args): data, headers = self.build_query(args) req = urllib2.Request("https://mtgox.com/api/0/"+path, data, headers) res = urllib2.urlopen(req, data) return json.load(res) req = requester(auth_key='YOUR_KEY',auth_secret='YOUR_SECRET') fname = 'rcodes.txt' with open(fname) as f: Codes = f.readlines() for line in Codes: redeemCode = line.replace('\n','') print "Trying to redeem: %s" % redeemCode print req.perform(path='redeemCode.php',args={'code':redeemCode})