Il y a quelques temps, j'avais écrit un peu de code en python pour un affichage en 80x20 de la partie publique...
(basé sur l'API paytunia mais ça fonctionne bien)
# # Imports
import urllib2,json,os,time
from operator import itemgetter
TICKER_URL = 'https://bitcoin-central.net/api/data/eur/ticker'
LASTEST_TRADES_URL = 'https://bitcoin-central.net/api/data/eur/latest_trades'
DEPTH_URL = 'https://bitcoin-central.net/api/data/eur/depth'
#while(1):
httpData = urllib2.urlopen(TICKER_URL).read()
tickerdata = json.loads(httpData)
httpData = urllib2.urlopen(LASTEST_TRADES_URL).read()
lastest_trades_data = json.loads(httpData)
httpData = urllib2.urlopen(DEPTH_URL).read()
depth_data = json.loads(httpData)
os.system('clear')
print ' \033[0;31m' + time.strftime("%Y-%m-%d %H:%M:%S", time.localtime(int(json.dumps(tickerdata["at"])))) + '\033[0m | price : \033[0;32m',
print '{0:.2f}'.format(float(json.dumps(tickerdata["price"]))),
print '\033[0m | bid : \033[0;32m',
print '{0:.2f}'.format(float(json.dumps(tickerdata["bid"]))),
print '\033[0m | ask : \033[0;32m',
print '{0:.2f}'.format(float(json.dumps(tickerdata["ask"]))),
print '\033[0m'
print '\n Latest trades | asks | bids'
for i in range(10):
print ' ',
print time.strftime("%H:%M:%S", time.localtime(int(json.dumps(lastest_trades_data[i]["created_at_int"])))),
one = float(json.dumps(lastest_trades_data[i]["price"]))
next = float(json.dumps(lastest_trades_data[i+1]["price"]))
if (next > one) :
print '\033[0;31m',
else:
if (next < one) :
print '\033[0;32m',
else:
print '\033[0m',
print '{0:.4f}\033[0m'.format(one).rjust(10),
print '{0:.4f} |'.format(float(json.dumps(lastest_trades_data[i]["traded_btc"]))).rjust(11),
depth_data["asks"] = sorted(depth_data["asks"], key=itemgetter('price'))
print '{0:.4f}'.format(float(json.dumps(depth_data["asks"][i]["price"]))).rjust(9),
print '{0:.4f} |'.format(float(json.dumps(depth_data["asks"][i]["amount"]))).rjust(11),
depth_data["bids"] = sorted(depth_data["bids"], key=itemgetter('price'), reverse=True)
print '{0:.4f}'.format(float(json.dumps(depth_data["bids"][i]["price"]))).rjust(9),
print '{0:.4f}'.format(float(json.dumps(depth_data["bids"][i]["amount"]))).rjust(8)
print '\n'
Le résultat :
C'est moche mais ça a le mérite de fonctionner ! Y'a plus qu'a changer mon while(1) commenté en boucle toutes les 20 sec (pour ne pas dépasser les 5000 requêtes par jours)
Je travaillerai sur la partie user plus tard et je compte bien me faire un petit bot avec des ordres conditionnels.
En passant, davout, plus d'authentification http ? Pour du python ou du perl en local, c'est vachement plus simple !