Advertisement
lignite

coingather dot p y

Jun 6th, 2017
90
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Python 2.13 KB | None | 0 0
  1. import json
  2. import time
  3. import hmac
  4. import hashlib
  5. import time
  6. import math
  7. import random
  8. from datetime import datetime
  9.  
  10. def microtime(get_as_float = False) :
  11.     if get_as_float:
  12.         return time.time()
  13.     else:
  14.         return '%f %d' % math.modf(time.time())
  15.  
  16. try:
  17.         import urllib.request as urllib2
  18. except ImportError:
  19.         import urllib2
  20.  
  21. class Coingather(object):
  22.         def __init__(self, base_url='https://www.coingather.com/api/v1/'):
  23.                 self.publicKey = "PUBKEY"
  24.                 self.privateKey = "PRIVKEY"
  25.                 self.base_url = base_url
  26.                 self.opener = urllib2.build_opener()
  27.                 self.opener.addheaders.append(('Content-Type', 'application/x-www-form-urlencoded'))
  28.  
  29.         def _urljoin(self, *args):
  30.                 """ Internal urljoin function because urlparse.urljoin sucks """
  31.                 return "/".join(map(lambda x: str(x).rstrip('/'), args))
  32.  
  33.         def _get(self, api_call, query):
  34.                 url = self._urljoin(self.base_url, api_call)
  35.                 if query == None:
  36.                         postData = "nonce=" + self.getNonce();
  37.                         sign = self.signData(postData)
  38.                         self.opener.addheaders.append(('Key', self.publicKey))
  39.                         self.opener.addheaders.append(('Sign', sign))
  40.                         response = self.opener.open(url).read()
  41.                 else:
  42.                         response_url = self._urljoin(url, query)
  43.                         response = self.opener.open(response_url).read()
  44.                 return response
  45.  
  46.         def signData(self, postData):
  47.                 return hmac.new(postData, self.privateKey, hashlib.sha512).hexdigest()
  48.  
  49.         def getNonce(self):
  50.                 return str(random.randint(0, 100000000))
  51.  
  52.         def market(self, param=None):
  53.                 """ market() returns a dict containing all the market data
  54.                """
  55.                 data = self._get('market', query=param)
  56.                 print data
  57.                 return data
  58.  
  59. cg = Coingather()
  60. cgData = json.loads(cg.market())
  61. print cgData
  62. exit()
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement