Advertisement
Guest User

mt gox api v1 experiment simple

a guest
May 31st, 2013
95
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. #!/usr/bin/env python3
  2.  
  3.  
  4.  
  5. import time
  6. import urllib.parse
  7. import urllib.request
  8. import base64
  9. import hmac
  10. import hashlib
  11. import time
  12. import json
  13. from pprint import pprint
  14.  
  15.  
  16. def ticker():
  17.  
  18.     url = "http://data.mtgox.com/api/1/BTCUSD/ticker_fast" #non private: fast ticker
  19.     GOX_secret = "api-secret" # ist von haus aus base 64 encoded, weiss der geier
  20.     GOX_secret = base64.b64decode((GOX_secret.encode())) #hier base64 decoden
  21.     GOX_key = "apikey"
  22.     params = {"nonce":str(int(time.time()*1000))} # NONCE erzeugen, d.h. gem. Zeit einmalige Zahl, bullshit
  23.     post_data = urllib.parse.urlencode(params) # bastle POST Anfrage zusammen
  24.     H = hmac.new(GOX_secret, post_data.encode(), hashlib.sha512).digest()
  25.     sign = base64.b64encode(H)
  26.     header = {"User-Agent": 'myGoxAPI', "Rest-Key": GOX_key, "Rest-Sign": sign}
  27.     req = urllib.request.Request(url, post_data, header) #POST
  28.     try:                       
  29.         response = urllib.request.urlopen(req, post_data.encode()) #POST
  30.         #print(response.read())
  31.     except urllib.error.HTTPError as e:
  32.         print("TÜÜÜT  FEHLER")
  33.         print("e.code ->", e.code)
  34.         print("e.read ->", (e.read()))
  35.         return
  36.     ausgabe(response)
  37.  
  38. def other_ticker():
  39.  
  40.     url = "http://data.mtgox.com/api/1/BTCUSD/ticker" #non private:  ticker
  41.     GOX_secret = "api-secret" # ist von haus aus base 64 encoded, weiss der geier
  42.     GOX_secret = base64.b64decode((GOX_secret.encode())) #hier base64 decoden
  43.     GOX_key = "apikey"
  44.     params = {"nonce":str(int(time.time()*1000))} # NONCE erzeugen, d.h. gem. Zeit einmalige Zahl, bullshit
  45.     post_data = urllib.parse.urlencode(params) # bastle POST Anfrage zusammen
  46.     H = hmac.new(GOX_secret, post_data.encode(), hashlib.sha512).digest()
  47.     sign = base64.b64encode(H)
  48.     header = {"User-Agent": 'myGoxAPI', "Rest-Key": GOX_key, "Rest-Sign": sign}
  49.     req = urllib.request.Request(url, post_data, header) #POST
  50.     try:                       
  51.         response = urllib.request.urlopen(req, post_data.encode()) #POST
  52.         #print(response.read())
  53.     except urllib.error.HTTPError as e:
  54.         print("TÜÜÜT  FEHLER")
  55.         print("e.code ->", e.code)
  56.         print("e.read ->", (e.read()))
  57.         return
  58.     ausgabe(response)
  59.    
  60. def trades():
  61.  
  62.     url = "https://data.mtgox.com/api/1/BTCUSD/trades" #trades
  63.     GOX_secret = "api-secret" # ist von haus aus base 64 encoded, weiss der geier
  64.     GOX_secret = base64.b64decode((GOX_secret.encode())) #hier base64 decoden
  65.     GOX_key = "apikey"
  66.     params = {"nonce":str(int(time.time()*1000)),"since":"1370023672"} # NONCE erzeugen, d.h. gem. Zeit einmalige Zahl, bullshit # hier müssten weitere params rein wie ?since=unixtime - diese mit , trennen und in klammer anfügen
  67.     post_data = urllib.parse.urlencode(params) # bastle POST Anfrage zusammen
  68.     H = hmac.new(GOX_secret, post_data.encode(), hashlib.sha512).digest()
  69.     sign = base64.b64encode(H)
  70.     header = {"User-Agent": 'myGoxAPI', "Rest-Key": GOX_key, "Rest-Sign": sign}
  71.     req = urllib.request.Request(url, post_data, header) #POST
  72.     try:                       
  73.         response = urllib.request.urlopen(req, post_data.encode()) #POST
  74.         #print(response.read())
  75.     except urllib.error.HTTPError as e:
  76.         print("TÜÜÜT  FEHLER")
  77.         print("e.code ->", e.code)
  78.         print("e.read ->", (e.read()))
  79.         return
  80.     ausgabe(response)
  81.  
  82.    
  83. def lag():
  84.  
  85.     url = "https://data.mtgox.com/api/1/generic/order/lag" #lag
  86.     GOX_secret = "api-secret" # ist von haus aus base 64 encoded, weiss der geier
  87.     GOX_secret = base64.b64decode((GOX_secret.encode())) #hier base64 decoden
  88.     GOX_key = "apikey"
  89.     params = {"nonce":str(int(time.time()*1000)),"since":"1370023672"} # NONCE erzeugen, d.h. gem. Zeit einmalige Zahl, bullshit # hier müssten weitere params rein wie ?since=unixtime - diese mit , trennen und in klammer anfügen
  90.     post_data = urllib.parse.urlencode(params) # bastle POST Anfrage zusammen
  91.     H = hmac.new(GOX_secret, post_data.encode(), hashlib.sha512).digest()
  92.     sign = base64.b64encode(H)
  93.     header = {"User-Agent": 'myGoxAPI', "Rest-Key": GOX_key, "Rest-Sign": sign}
  94.     req = urllib.request.Request(url, post_data, header) #POST
  95.     try:                       
  96.         response = urllib.request.urlopen(req, post_data.encode()) #POST
  97.         #print(response.read())
  98.     except urllib.error.HTTPError as e:
  99.         print("TÜÜÜT  FEHLER")
  100.         print("e.code ->", e.code)
  101.         print("e.read ->", (e.read()))
  102.         return
  103.     ausgabe(response)
  104.    
  105.    
  106. def wallet():
  107.  
  108.     url = "https://data.mtgox.com/api/1/generic/wallet/history" #wallet history
  109.     GOX_secret = "api-secret" # ist von haus aus base 64 encoded, weiss der geier
  110.     GOX_secret = base64.b64decode((GOX_secret.encode())) #hier base64 decoden
  111.     GOX_key = "apikey"
  112.     params = {"nonce":str(int(time.time()*1000)),"currency":"USD"} # NONCE erzeugen, d.h. gem. Zeit einmalige Zahl, bullshit # hier müssten weitere params rein wie ?since=unixtime - diese mit , trennen und in klammer anfügen
  113.     post_data = urllib.parse.urlencode(params) # bastle POST Anfrage zusammen
  114.     H = hmac.new(GOX_secret, post_data.encode(), hashlib.sha512).digest()
  115.     sign = base64.b64encode(H)
  116.     header = {"User-Agent": 'myGoxAPI', "Rest-Key": GOX_key, "Rest-Sign": sign}
  117.     req = urllib.request.Request(url, post_data, header) #POST
  118.    
  119.     try:                       
  120.         response = urllib.request.urlopen(req, post_data.encode()) #POST
  121.        
  122.     except urllib.error.HTTPError as e:
  123.         print("TÜÜÜT  FEHLER")
  124.         print("e.code ->", e.code)
  125.         print("e.read ->", (e.read()))
  126.         return
  127.    
  128.    
  129.     ausgabe(response)
  130.    
  131. def ausgabe(response):
  132.     a=response.read()
  133.     b=a.decode('utf8')
  134.     #print(b)
  135.     c=json.loads(b)
  136.     pprint(c)
  137.     return
  138.    
  139. while True:
  140.     wallet()
  141.     lag()
  142.     trades()
  143.     ticker()
  144.     #other_ticker()
  145.     time.sleep(9)
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement