Commit 1b914140 authored by Taddeüs Kroes's avatar Taddeüs Kroes

Add poller functions in Python for all exchanges

parents
import requests
class APIError(RuntimeError):
pass
def get_check_status(errstr, url, *args):
r = requests.get(url, timeout=10.0, *args)
if r.status_code != 200:
raise APIError(errstr)
return r.json()
def poll_btce():
url = 'https://btc-e.com/api/3/ticker/btc_usd'
return float(get_check_status('BTC-e', url)['btc_usd']['last']), 'USD'
def poll_coinbase():
url = 'https://api.gdax.com/products/BTC-USD/ticker'
return float(get_check_status('Coinbase', url)['price']), 'USD'
def poll_bitstamp():
url = 'https://www.bitstamp.net/api/v2/ticker/btcusd/'
return float(get_check_status('Bitstamp', url)['last']), 'USD'
def poll_bitfinex():
url = 'https://api.bitfinex.com/v1/pubticker/btcusd'
return float(get_check_status('Bitfinex', url)['last_price']), 'USD'
def poll_btcchina():
url = 'https://data.btcchina.com/data/ticker?market=btccny'
return float(get_check_status('BTCChina', url)['ticker']['last']), 'CNY'
def poll_huobi():
url = 'http://api.huobi.com/staticmarket/ticker_btc_json.js'
return float(get_check_status('Huobi', url)['ticker']['last']), 'CNY'
def poll_okcoin():
url = 'https://www.okcoin.com/api/v1/ticker.do?symbol=btc_usd'
return float(get_check_status('OKcoin', url)['ticker']['last']), 'CNY'
def poll_kraken():
url = 'https://api.kraken.com/0/public/Ticker?pair=XXBTZEUR'
return float(get_check_status('Kraken', url)['result']['XXBTZEUR']['c'][0]), 'EUR'
def poll_coinmarketcap():
url = 'https://api.coinmarketcap.com/v1/ticker/bitcoin'
return get_check_status('Coinmarketcap', url)[0]['market_cap_usd'], 'USD'
if __name__ == '__main__':
print 'btc-e', poll_btce()
print 'coinbase', poll_coinbase()
print 'bitstamp', poll_bitstamp()
print 'bitfinex', poll_bitfinex()
print 'btcchina', poll_btcchina()
print 'huobi', poll_huobi()
print 'okcoin', poll_okcoin()
print 'kraken', poll_kraken()
print 'coinmarketcap', poll_coinmarketcap()
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment