-
Notifications
You must be signed in to change notification settings - Fork 1
Expand file tree
/
Copy pathupdate_sparkline.py
More file actions
84 lines (74 loc) · 4.05 KB
/
Copy pathupdate_sparkline.py
File metadata and controls
84 lines (74 loc) · 4.05 KB
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
from pycoingecko import CoinGeckoAPI
import django
import os
import traceback
from statistics import mean
os.environ.setdefault('DJANGO_SETTINGS_MODULE', 'login_api.settings')
django.setup()
def correcttime(timestamp: str):
try:
timestamplist = timestamp.split("T")
correct = timestamplist[0]+" "+timestamplist[1][:-2]+"+00:00"
except:
correct = "2000-01-01 00:00:00+00:00"
print(f"{timestamp}\n")
return correct
cg = CoinGeckoAPI()
currencies = ["usd", "eur", "gbp", "rub"]
try:
from registration.models import market_chart, cryptoObject
for i in range(1, 26):
price_list = []
for curr in currencies:
price = cg.get_coins_markets(
vs_currency=curr, per_page="250", page=f"{i}", sparkline="true")
price_list += price
for j in range(250):
cryptoobject = cryptoObject(coin_id=price_list[j]["id"], symbol=price_list[j]["symbol"],
name=price_list[j]["name"], image=price_list[j]["image"],
last_updated=correcttime(price_list[j]["last_updated"]))
cryptoobject.save()
for k in range(4):
coinFromList = price_list[j+(250*k)]
for l in range(1, 8):
try:
prices = []
for price in range(24):
prices.append(coinFromList["sparkline_in_7d"]["price"][price+(
24*(int(market_chart.Days(f"{l}").value)-2))])
crypto_market = market_chart(coin_currency_day=f"{price_list[j]['id']}_{currencies[k]}_{(l-1)}",
coin=cryptoobject,
currency=currencies[k],
day=market_chart.Days(
f"{l}"),
price1=prices[0],
price2=prices[1],
price3=prices[2],
price4=prices[3],
price5=prices[4],
price6=prices[5],
price7=prices[6],
price8=prices[7],
price9=prices[8],
price10=prices[9],
price11=prices[10],
price12=prices[11],
price13=prices[12],
price14=prices[13],
price15=prices[14],
price16=prices[15],
price17=prices[16],
price18=prices[17],
price19=prices[18],
price20=prices[19],
price21=prices[20],
price22=prices[21],
price23=prices[22],
price24=prices[23],
media=mean(prices))
except Exception as e:
traceback.print_exc()
finally:
crypto_market.save()
except Exception as e:
traceback.print_exc()