irccex

- fantasy cryptocurrency exchange for irc
git clone git://git.acid.vegas/irccex.git
Log | Files | Refs | Archive | README | LICENSE

commit b68288566a6c92a22949cd39634e54f5a792b196
parent b82fe23f8034b19589dc5629a904701ba3f3623a
Author: acidvegas <acid.vegas@acid.vegas>
Date: Wed, 22 Apr 2020 02:58:42 -0400

Fixed null values

Diffstat:
Airccex/.gitignore | 1+
Mirccex/core/coinmarketcap.py | 11++++++++++-

2 files changed, 11 insertions(+), 1 deletion(-)

diff --git a/irccex/.gitignore b/irccex/.gitignore
@@ -0,0 +1 @@
+*.db
diff --git a/irccex/core/coinmarketcap.py b/irccex/core/coinmarketcap.py
@@ -6,6 +6,14 @@ import json
 import time
 import zlib
 
+def replace_nulls(json_elem):
+	if isinstance(json_elem, list):
+		return [replace_nulls(elem) for elem in json_elem]
+	elif isinstance(json_elem, dict):
+		return {key: replace_nulls(value) for key, value in json_elem.items()}
+	else:
+		return '0' if json_elem is None else json_elem
+
 class CoinMarketCap(object):
 	def __init__(self, api_key):
 		self.api_key = api_key
@@ -15,7 +23,7 @@ class CoinMarketCap(object):
 	def _api(self, _endpoint):
 		conn = http.client.HTTPSConnection('pro-api.coinmarketcap.com', timeout=15)
 		conn.request('GET', '/v1/' + _endpoint, headers={'Accept':'application/json', 'Accept-Encoding':'deflate, gzip', 'X-CMC_PRO_API_KEY':self.api_key})
-		response = zlib.decompress(conn.getresponse().read(), 16+zlib.MAX_WBITS).decode('utf-8').replace(': null', ': "0"')
+		response = zlib.decompress(conn.getresponse().read(), 16+zlib.MAX_WBITS).decode('utf-8')
 		conn.close()
 		return json.loads(response)['data']
 
@@ -40,6 +48,7 @@ class CoinMarketCap(object):
 			return self.cache['ticker']
 		else:
 			data = self._api('cryptocurrency/listings/latest?limit=5000')
+			data = replace_nulls(data)
 			self.cache['ticker'] = dict()
 			for item in data:
 				self.cache['ticker'][item['symbol']] = {