wowstash/wowstash/library/info.py

49 lines
1.6 KiB
Python

from json import loads as json_loads
from json import dumps as json_dumps
from requests import get as r_get
from datetime import timedelta
from redis import Redis
from wowstash import config
class CoinInfo(object):
def __init__(self):
self.redis = Redis(host=config.REDIS_HOST, port=config.REDIS_PORT)
def store_info(self, info):
self.redis.setex(
"info",
timedelta(minutes=15),
value=info
)
def get_info(self):
info = self.redis.get("info")
if info:
return json_loads(info)
else:
data = {
'localization': False,
'tickers': False,
'market_data': True,
'community_data': False,
'developer_data': False,
'sparkline': False
}
headers = {'accept': 'application/json'}
url = 'https://api.coingecko.com/api/v3/coins/wownero'
r = r_get(url, headers=headers, data=data)
info = {
'genesis_date': r.json()['genesis_date'],
'market_cap_rank': r.json()['market_cap_rank'],
'current_price': r.json()['market_data']['current_price']['usd'],
'market_cap': r.json()['market_data']['market_cap']['usd'],
'market_cap_rank': r.json()['market_data']['market_cap_rank'],
'total_volume': r.json()['market_data']['total_volume']['usd'],
'last_updated': r.json()['last_updated']
}
self.store_info(json_dumps(info))
return info
info = CoinInfo()