Both these examples is using the old mtgox API =(
Here's another one using the old API. Should be easy to change/get ideas from.
#!/usr/bin/env python
import simplejson
import urllib
import urllib2
import urlparse
market_depth_url = "http://mtgox.com/code/data/getDepth.php"
ticker_data_url = "http://mtgox.com/code/data/ticker.php"
recent_trades_url = "http://mtgox.com/code/data/getTrades.php"
current_balance_url = "https://mtgox.com/code/getFunds.php?name=blah&pass=blah"
buy_order_url = "https://mtgox.com/code/buyBTC.php?name=blah&pass=blah&amount=number&price=number"
sell_order_url = "https://mtgox.com/code/sellBTC.php?name=blah&pass=blah&amount=number&price=number"
open_order_url = "https://mtgox.com/code/getOrders.php?name=blah&pass=blah"
cancel_order_url = "https://mtgox.com/code/cancelOrder.php?name=blah&pass=blah&oid=number&type=number"
send_btc_url = "https://mtgox.com/code/withdraw.php?name=blah&pass=blah&group1=BTC&btca=bitcoin_address_to_send_to&amount=number"
checkout_url = "https://mtgox.com/merch/checkout"
verify_transaction_url = "https://mtgox.com/code/gateway/checkTxn.php"
def getBitcoinSellValue(quantity):
data = simplejson.load(urllib2.urlopen(market_depth_url))
data['bids'].sort(reverse=True)
market_USD_value = 0
total_bitcoins = 0
for i in data['bids']:
market_USD_value = market_USD_value + ((i[0]) * (i[1]))
total_bitcoins = total_bitcoins + (i[1])
if total_bitcoins >= quantity:
bitcoin_value = market_USD_value / total_bitcoins
return bitcoin_value
def getBitcoinBuyValue(quantity):
data = simplejson.load(urllib2.urlopen(market_depth_url))
data['asks'].sort()
market_USD_value = 0
total_bitcoins = 0
for i in data['asks']:
market_USD_value = market_USD_value + ((i[0]) * (i[1]))
total_bitcoins = total_bitcoins + (i[1])
if total_bitcoins >= quantity:
bitcoin_value = market_USD_value / total_bitcoins
return bitcoin_value
def createSellOrder(username, password, amount, price):
format_url = urlparse.urlparse(sell_order_url)
new_url = format_url.scheme + ":" + "//" + format_url.netloc + format_url.path
query = urlparse.parse_qs(format_url.query)
query['price'] = price
query['amount'] = amount
query['name'] = username
query['pass'] = password
f = urllib.urlopen(new_url, urllib.urlencode(query))
return f.read()
def createBuyOrder(username, password, amount, price):
format_url = urlparse.urlparse(buy_order_url)
new_url = format_url.scheme + ":" + "//" + format_url.netloc + format_url.path
query = urlparse.parse_qs(format_url.query)
query['price'] = price
query['amount'] = amount
query['name'] = username
query['pass'] = password
f = urllib.urlopen(new_url, urllib.urlencode(query))
return f.read()
def getBalance(username, password):
format_url = urlparse.urlparse(current_balance_url)
new_url = format_url.scheme + ":" + "//" + format_url.netloc + format_url.path
query = urlparse.parse_qs(format_url.query)
query['name'] = username
query['pass'] = password
f = urllib.urlopen(new_url, urllib.urlencode(query))
return f.read()
def getOpenOrders(username, password):
format_url = urlparse.urlparse(open_order_url)
new_url = format_url.scheme + ":" + "//" + format_url.netloc + format_url.path
query = urlparse.parse_qs(format_url.query)
query['name'] = username
query['pass'] = password
f = urllib.urlopen(new_url, urllib.urlencode(query))
return f.read()
def cancelOrder(username, password, orderid, type):
format_url = urlparse.urlparse(cancel_order_url)
new_url = format_url.scheme + ":" + "//" + format_url.netloc + format_url.path
query = urlparse.parse_qs(format_url.query)
query['oid'] = orderid
query['type'] = type
query['name'] = username
query['pass'] = password
f = urllib.urlopen(new_url, urllib.urlencode(query))
return f.read()
def sendBTC(username, password, destination, amount):
format_url = urlparse.urlparse(send_btc_url)
new_url = format_url.scheme + ":" + "//" + format_url.netloc + format_url.path
query = urlparse.parse_qs(format_url.query)
query['btca'] = destination
query['amount'] = amount
query['name'] = username
query['pass'] = password
query['group1'] = 'BTC'
f = urllib.urlopen(new_url, urllib.urlencode(query))
return f.read()
def verifyTransaction(txn_id, merchID, amount):
format_url = urlparse.urlparse(verify_transaction_url)
new_url = format_url.scheme + ":" + "//" + format_url.netloc + format_url.path
query = urlparse.parse_qs(format_url.query)
query['txn_id'] = txn_id
query['amount'] = amount
query['merchID'] = merchID
f = urllib.urlopen(new_url, urllib.urlencode(query))
return f.read()