-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathPriceRetriever.py
91 lines (78 loc) · 2.28 KB
/
PriceRetriever.py
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
from requests import Request, Session
import json
import math
global url
url = 'https://pro-api.coinmarketcap.com/v1/cryptocurrency/listings/latest'
global parameters
parameters = {
'start':'1',
'limit':'5000',
'convert': 'USD'
}
global headers
headers = {
'Accepts': 'application/json',
'X-CMC_PRO_API_KEY': 'b42a88f4-4a06-4f10-a665-12b9af4f8705',
}
def headingGetter(coinName):
try:
session = Session()
session.headers.update(headers)
response = session.get(url, params=parameters)
data = json.loads(response.text)
for i in range(5000):
name = data['data'][i]['name']
symbol = data['data'][i]['symbol']
if coinName.title() in name or coinName in name or coinName.upper() in symbol:
finalIndex = i
break
specificData = data['data'][finalIndex]['quote']['USD']
return name, symbol, specificData['price'], specificData['percent_change_1h'], +specificData['percent_change_24h'], \
specificData['percent_change_7d'], specificData['percent_change_30d'], specificData['percent_change_60d'], \
specificData['percent_change_90d'], specificData['market_cap']
except:
print("Error")
return None, None, None, None, None, None, None, None, None, None
def formatLargeNumber(num):
return "{:,}".format(num)
def roundCrypto(dec):
if dec < 0:
if dec == 0:
return 0
elif dec >= -0.01:
return '-$0.01'
else:
dec = float(formatLargeNumber(round(dec, 2)))
return str(dec)[:1]+'$'+str(dec)[1:]
else:
if dec == 0:
return 0
elif dec <= 0.01:
return '$0.01'
else:
return '$' + str(formatLargeNumber(round(dec, 2)))
return 0
def roundCryptoWithoutDollar(dec):
if dec < 0:
if dec == 0:
return '0%'
elif dec >= -0.01:
return '-0.01%'
else:
dec = float(formatLargeNumber(round(dec, 2)))
return str(dec)[:1]+str(dec)[1:]+'%'
else:
if dec == 0:
return '0%'
elif dec <= 0.01:
return '0.01%'
else:
return str(formatLargeNumber(round(dec, 2))) + '%'
return 0
global url2
url2 = 'https://api.alternative.me/fng/'
def priceGreed():
session2 = Session()
response2 = session2.get(url2)
data2 = json.loads(response2.text)
return data2["data"][0]["value"],data2["data"][0]["value_classification"]