2022-05-29 14:03:17 +00:00
|
|
|
from django.shortcuts import render
|
|
|
|
from django.http import HttpResponseRedirect
|
|
|
|
from django.urls import reverse
|
2024-11-13 09:08:39 +00:00
|
|
|
from django.conf import settings
|
2022-05-29 14:03:17 +00:00
|
|
|
import json
|
2024-11-12 13:09:33 +00:00
|
|
|
from .models import (
|
|
|
|
Coin,
|
|
|
|
DailyData,
|
|
|
|
Dominance,
|
|
|
|
P2Pool,
|
|
|
|
Rank,
|
|
|
|
Sfmodel,
|
|
|
|
Social,
|
|
|
|
Withdrawal,
|
|
|
|
)
|
|
|
|
from .forms import CoinForm
|
2022-05-29 14:03:17 +00:00
|
|
|
import datetime
|
|
|
|
from datetime import date, timedelta
|
|
|
|
import math
|
|
|
|
import locale
|
|
|
|
import pandas as pd
|
2022-09-17 03:04:08 +00:00
|
|
|
from . import asynchronous
|
|
|
|
from . import synchronous
|
2022-05-29 14:03:17 +00:00
|
|
|
from operator import truediv
|
2022-06-02 14:51:47 +00:00
|
|
|
from django.contrib.auth.decorators import login_required
|
2024-11-12 00:19:52 +00:00
|
|
|
from django.contrib.staticfiles.storage import staticfiles_storage
|
2023-10-04 01:00:29 +00:00
|
|
|
from charts.synchronous import get_history_function
|
2022-05-29 14:03:17 +00:00
|
|
|
|
2024-11-12 13:09:33 +00:00
|
|
|
# TODO: Split this into multiple files
|
|
|
|
|
2022-09-17 21:36:35 +00:00
|
|
|
####################################################################################
|
2024-11-12 13:09:33 +00:00
|
|
|
# Set some parameters
|
2022-09-17 21:36:35 +00:00
|
|
|
####################################################################################
|
2024-11-12 13:09:33 +00:00
|
|
|
locale.setlocale(locale.LC_ALL, "en_US.utf8") # TODO: Why is this here?
|
2024-11-13 09:08:39 +00:00
|
|
|
DATA_FILE = settings.DATA_FILE
|
|
|
|
|
|
|
|
try:
|
|
|
|
locale.format
|
|
|
|
except AttributeError:
|
|
|
|
locale.format = locale.format_string
|
2022-09-15 02:51:27 +00:00
|
|
|
|
2022-09-17 21:36:35 +00:00
|
|
|
####################################################################################
|
|
|
|
# Useful functions for admins
|
|
|
|
####################################################################################
|
2022-09-15 20:10:18 +00:00
|
|
|
|
2024-11-12 13:09:33 +00:00
|
|
|
|
2022-09-15 20:10:18 +00:00
|
|
|
# Add manually a new entrance for coin
|
|
|
|
# To be used when there's a problem with the API
|
2022-08-15 19:25:33 +00:00
|
|
|
@login_required
|
|
|
|
def add_coin(request):
|
2024-11-12 07:32:48 +00:00
|
|
|
if not request.user.is_superuser:
|
2024-11-12 13:09:33 +00:00
|
|
|
return render(request, "users/error.html")
|
2022-08-15 19:25:33 +00:00
|
|
|
|
2024-11-12 13:09:33 +00:00
|
|
|
if request.method != "POST":
|
|
|
|
# create new page with blank form
|
2022-08-15 19:25:33 +00:00
|
|
|
form = CoinForm()
|
|
|
|
else:
|
2024-11-12 13:09:33 +00:00
|
|
|
# process data and submit article
|
2022-08-15 19:25:33 +00:00
|
|
|
form = CoinForm(data=request.POST)
|
|
|
|
if form.is_valid():
|
|
|
|
add_coin = form.save(commit=False)
|
2022-08-21 20:07:44 +00:00
|
|
|
coin = Coin.objects.filter(name=add_coin.name).filter(date=add_coin.date)
|
|
|
|
if coin:
|
2022-08-23 02:51:28 +00:00
|
|
|
for item in coin:
|
|
|
|
item.delete()
|
2024-11-12 13:09:33 +00:00
|
|
|
print("coin found and deleted")
|
2022-08-21 20:07:44 +00:00
|
|
|
else:
|
2024-11-12 13:09:33 +00:00
|
|
|
print("coin not found")
|
2022-08-15 19:25:33 +00:00
|
|
|
|
2024-11-12 13:09:33 +00:00
|
|
|
add_coin.stocktoflow = (100 / add_coin.inflation) ** 1.65
|
2022-08-21 20:07:44 +00:00
|
|
|
print(add_coin.name)
|
|
|
|
print(add_coin.date)
|
|
|
|
print(add_coin.priceusd)
|
|
|
|
print(add_coin.pricebtc)
|
|
|
|
print(add_coin.inflation)
|
|
|
|
print(add_coin.transactions)
|
|
|
|
print(add_coin.hashrate)
|
|
|
|
print(add_coin.stocktoflow)
|
|
|
|
print(add_coin.supply)
|
|
|
|
print(add_coin.fee)
|
|
|
|
print(add_coin.revenue)
|
|
|
|
print(add_coin.blocksize)
|
|
|
|
print(add_coin.difficulty)
|
2022-08-15 19:25:33 +00:00
|
|
|
add_coin.save()
|
2024-11-12 13:09:33 +00:00
|
|
|
print("coin saved")
|
|
|
|
message = "Coin added to the database!"
|
2022-08-23 02:51:28 +00:00
|
|
|
coin = Coin.objects.filter(name=add_coin.name).get(date=add_coin.date)
|
2024-11-12 13:09:33 +00:00
|
|
|
print(
|
|
|
|
"GET: "
|
|
|
|
+ str(coin.name)
|
|
|
|
+ " "
|
|
|
|
+ str(coin.date)
|
|
|
|
+ " "
|
|
|
|
+ str(coin.priceusd)
|
|
|
|
+ " "
|
|
|
|
+ str(coin.pricebtc)
|
|
|
|
+ " "
|
|
|
|
+ str(coin.inflation)
|
|
|
|
+ " "
|
|
|
|
+ str(coin.transactions)
|
|
|
|
+ " "
|
|
|
|
+ str(coin.hashrate)
|
|
|
|
+ " "
|
|
|
|
+ str(coin.stocktoflow)
|
|
|
|
+ " "
|
|
|
|
+ str(coin.supply)
|
|
|
|
+ " "
|
|
|
|
+ " "
|
|
|
|
+ str(coin.fee)
|
|
|
|
+ " "
|
|
|
|
+ " "
|
|
|
|
+ str(coin.revenue)
|
|
|
|
)
|
|
|
|
|
|
|
|
print("updating p2pool")
|
2022-09-17 21:36:35 +00:00
|
|
|
synchronous.update_p2pool()
|
2022-08-15 19:25:33 +00:00
|
|
|
|
2024-11-12 13:09:33 +00:00
|
|
|
context = {"form": form, "message": message}
|
|
|
|
return render(request, "charts/add_coin.html", context)
|
2022-08-15 19:25:33 +00:00
|
|
|
else:
|
2024-11-12 13:09:33 +00:00
|
|
|
message = "An error has happened. Try again."
|
|
|
|
context = {"form": form, "message": message}
|
|
|
|
return render(request, "charts/add_coin.html", context)
|
|
|
|
|
|
|
|
context = {"form": form}
|
|
|
|
return render(request, "charts/add_coin.html", context)
|
2022-08-15 19:25:33 +00:00
|
|
|
|
|
|
|
|
2022-06-02 14:51:47 +00:00
|
|
|
# Get all history for metrics of a certain coin named as 'symbol'
|
|
|
|
# Only authorized users can download all price data via URL request
|
2024-11-12 13:09:33 +00:00
|
|
|
@login_required
|
2022-06-02 14:51:47 +00:00
|
|
|
def get_history(request, symbol, start_time=None, end_time=None):
|
2024-11-12 07:32:48 +00:00
|
|
|
if not request.user.is_superuser:
|
2024-11-12 13:09:33 +00:00
|
|
|
return render(request, "users/error.html")
|
2022-07-27 18:24:58 +00:00
|
|
|
|
2023-10-04 01:00:29 +00:00
|
|
|
count = get_history_function(symbol, start_time, end_time)
|
2022-09-07 20:52:41 +00:00
|
|
|
|
2024-11-12 13:09:33 +00:00
|
|
|
if type(count) in [int, "int"]:
|
|
|
|
message = "Total of " + str(count) + " data imported"
|
|
|
|
context = {"message": message}
|
2023-10-04 01:00:29 +00:00
|
|
|
else:
|
2024-11-12 13:09:33 +00:00
|
|
|
message = "Failed to load the data"
|
|
|
|
context = {"message": message}
|
|
|
|
|
|
|
|
return render(request, "charts/maintenance.html", context)
|
2022-06-02 14:51:47 +00:00
|
|
|
|
|
|
|
|
|
|
|
# Populate database with rank history
|
|
|
|
# Only authorized users can do this
|
2024-11-12 13:09:33 +00:00
|
|
|
@login_required
|
2022-06-02 14:51:47 +00:00
|
|
|
def load_rank(request, symbol):
|
2024-11-12 07:32:48 +00:00
|
|
|
if not request.user.is_superuser:
|
2024-11-12 13:09:33 +00:00
|
|
|
return render(request, "users/error.html")
|
2024-11-13 09:08:39 +00:00
|
|
|
|
|
|
|
df = pd.read_excel(DATA_FILE, sheet_name="Sheet8", engine="odf")
|
|
|
|
start_row, end_row = 2, 9999
|
|
|
|
start_col, end_col = 0, 2
|
|
|
|
values_mat = df.iloc[start_row:end_row, start_col:end_col].to_numpy()
|
2024-11-12 13:09:33 +00:00
|
|
|
|
2022-06-02 14:51:47 +00:00
|
|
|
count = 0
|
|
|
|
print(len(values_mat))
|
|
|
|
Rank.objects.all().delete()
|
|
|
|
|
2024-11-12 13:09:33 +00:00
|
|
|
for k in range(0, len(values_mat)):
|
2022-06-02 14:51:47 +00:00
|
|
|
if values_mat[k][0] and values_mat[k][1]:
|
|
|
|
rank = Rank()
|
|
|
|
rank.name = symbol
|
|
|
|
rank.date = values_mat[k][0]
|
2024-11-12 13:09:33 +00:00
|
|
|
rank.rank = int(values_mat[k][1].replace(",", "."))
|
|
|
|
if not (rank.rank) and not (rank.date):
|
2022-06-02 14:51:47 +00:00
|
|
|
break
|
|
|
|
else:
|
|
|
|
rank.save()
|
|
|
|
count += 1
|
|
|
|
else:
|
|
|
|
break
|
|
|
|
|
2024-11-12 13:09:33 +00:00
|
|
|
message = "Total of " + str(count) + " data imported"
|
|
|
|
context = {"message": message}
|
|
|
|
return render(request, "charts/maintenance.html", context)
|
|
|
|
|
2022-06-02 14:51:47 +00:00
|
|
|
|
2022-08-09 19:03:45 +00:00
|
|
|
# Populate database with p2pool history
|
|
|
|
# Only authorized users can do this
|
2024-11-12 13:09:33 +00:00
|
|
|
@login_required
|
2022-08-09 19:03:45 +00:00
|
|
|
def load_p2pool(request):
|
2024-11-12 07:32:48 +00:00
|
|
|
if not request.user.is_superuser:
|
2024-11-12 13:09:33 +00:00
|
|
|
return render(request, "users/error.html")
|
2022-08-14 03:27:05 +00:00
|
|
|
|
|
|
|
count = 0
|
2024-11-13 09:08:39 +00:00
|
|
|
|
|
|
|
df = pd.read_excel(DATA_FILE, sheet_name="p2pool", engine="odf")
|
|
|
|
start_row, end_row = 2, 9999
|
|
|
|
start_col, end_col = 0, 6
|
|
|
|
values_mat = df.iloc[start_row:end_row, start_col:end_col].to_numpy()
|
|
|
|
|
2022-08-09 19:03:45 +00:00
|
|
|
P2Pool.objects.all().delete()
|
|
|
|
|
2024-11-12 13:09:33 +00:00
|
|
|
for k in range(0, len(values_mat)):
|
2022-08-09 19:03:45 +00:00
|
|
|
if values_mat[k][0] and values_mat[k][1]:
|
|
|
|
p2pool_stat = P2Pool()
|
|
|
|
p2pool_stat.date = values_mat[k][0]
|
2024-11-13 09:08:39 +00:00
|
|
|
|
|
|
|
p2pool_stat.miners = (
|
|
|
|
float(values_mat[k][1].replace(",", "."))
|
|
|
|
if isinstance(values_mat[k][1], str)
|
|
|
|
else values_mat[k][1]
|
|
|
|
)
|
|
|
|
p2pool_stat.hashrate = (
|
|
|
|
float(values_mat[k][2].replace(",", "."))
|
|
|
|
if isinstance(values_mat[k][2], str)
|
|
|
|
else values_mat[k][2]
|
|
|
|
)
|
|
|
|
p2pool_stat.percentage = (
|
|
|
|
float(values_mat[k][3].replace(",", "."))
|
|
|
|
if isinstance(values_mat[k][3], str)
|
|
|
|
else values_mat[k][3]
|
|
|
|
)
|
|
|
|
p2pool_stat.totalhashes = (
|
|
|
|
float(values_mat[k][4].replace(",", "."))
|
|
|
|
if isinstance(values_mat[k][4], str)
|
|
|
|
else values_mat[k][4]
|
|
|
|
)
|
|
|
|
p2pool_stat.totalblocksfound = (
|
|
|
|
float(values_mat[k][5].replace(",", "."))
|
|
|
|
if isinstance(values_mat[k][5], str)
|
|
|
|
else values_mat[k][1]
|
|
|
|
)
|
2022-08-14 03:27:05 +00:00
|
|
|
p2pool_stat.mini = False
|
2022-08-09 19:03:45 +00:00
|
|
|
p2pool_stat.save()
|
|
|
|
count += 1
|
2024-11-12 13:09:33 +00:00
|
|
|
# print('p2poolmini data saved - ' + str(p2pool_stat.date) + ' - ' + str(p2pool_stat.percentage) + ' - ' + str(p2pool_stat.miners))
|
2022-08-09 19:03:45 +00:00
|
|
|
else:
|
|
|
|
break
|
|
|
|
|
2024-11-13 09:08:39 +00:00
|
|
|
df = pd.read_excel(DATA_FILE, sheet_name="p2poolmini", engine="odf")
|
|
|
|
start_row, end_row = 2, 9999
|
|
|
|
start_col, end_col = 0, 6
|
|
|
|
values_mat = df.iloc[start_row:end_row, start_col:end_col].to_numpy()
|
2022-08-14 03:27:05 +00:00
|
|
|
|
2024-11-12 13:09:33 +00:00
|
|
|
for k in range(0, len(values_mat)):
|
2022-08-14 03:27:05 +00:00
|
|
|
if values_mat[k][0] and values_mat[k][1]:
|
|
|
|
p2pool_stat = P2Pool()
|
|
|
|
p2pool_stat.date = values_mat[k][0]
|
2024-11-13 09:08:39 +00:00
|
|
|
p2pool_stat.miners = (
|
|
|
|
float(values_mat[k][1].replace(",", "."))
|
|
|
|
if isinstance(values_mat[k][1], str)
|
|
|
|
else values_mat[k][1]
|
|
|
|
)
|
|
|
|
p2pool_stat.hashrate = (
|
|
|
|
float(values_mat[k][2].replace(",", "."))
|
|
|
|
if isinstance(values_mat[k][2], str)
|
|
|
|
else values_mat[k][2]
|
|
|
|
)
|
|
|
|
p2pool_stat.percentage = (
|
|
|
|
float(values_mat[k][3].replace(",", "."))
|
|
|
|
if isinstance(values_mat[k][3], str)
|
|
|
|
else values_mat[k][3]
|
|
|
|
)
|
|
|
|
p2pool_stat.totalhashes = (
|
|
|
|
float(values_mat[k][4].replace(",", "."))
|
|
|
|
if isinstance(values_mat[k][4], str)
|
|
|
|
else values_mat[k][4]
|
|
|
|
)
|
|
|
|
p2pool_stat.totalblocksfound = (
|
|
|
|
float(values_mat[k][5].replace(",", "."))
|
|
|
|
if isinstance(values_mat[k][5], str)
|
|
|
|
else values_mat[k][5]
|
|
|
|
)
|
2022-08-14 03:27:05 +00:00
|
|
|
p2pool_stat.mini = True
|
|
|
|
p2pool_stat.save()
|
|
|
|
count += 1
|
2024-11-12 13:09:33 +00:00
|
|
|
# print('p2poolmini data saved - ' + str(p2pool_stat.date) + ' - ' + str(p2pool_stat.percentage) + ' - ' + str(p2pool_stat.miners))
|
2022-08-14 03:27:05 +00:00
|
|
|
else:
|
|
|
|
break
|
2024-11-12 13:09:33 +00:00
|
|
|
|
|
|
|
message = "Total of " + str(count) + " data imported"
|
|
|
|
context = {"message": message}
|
|
|
|
return render(request, "charts/maintenance.html", context)
|
|
|
|
|
2022-08-09 19:03:45 +00:00
|
|
|
|
2022-06-02 14:51:47 +00:00
|
|
|
# Populate database with dominance history
|
|
|
|
# Only authorized users can do this
|
2024-11-12 13:09:33 +00:00
|
|
|
@login_required
|
2022-06-02 14:51:47 +00:00
|
|
|
def load_dominance(request, symbol):
|
2024-11-12 07:32:48 +00:00
|
|
|
if not request.user.is_superuser:
|
2024-11-12 13:09:33 +00:00
|
|
|
return render(request, "users/error.html")
|
2024-11-13 09:08:39 +00:00
|
|
|
|
|
|
|
df = pd.read_excel(DATA_FILE, sheet_name="Sheet7", engine="odf")
|
|
|
|
start_row, end_row = 2, 9999
|
|
|
|
start_col, end_col = 0, 2
|
|
|
|
values_mat = df.iloc[start_row:end_row, start_col:end_col].to_numpy()
|
2024-11-12 13:09:33 +00:00
|
|
|
|
2022-06-02 14:51:47 +00:00
|
|
|
count = 0
|
|
|
|
Dominance.objects.all().delete()
|
|
|
|
|
2024-11-12 13:09:33 +00:00
|
|
|
for k in range(0, len(values_mat)):
|
2022-06-02 14:51:47 +00:00
|
|
|
if values_mat[k][0] and values_mat[k][1]:
|
|
|
|
dominance = Dominance()
|
|
|
|
dominance.name = symbol
|
|
|
|
dominance.date = values_mat[k][0]
|
2024-11-13 09:08:39 +00:00
|
|
|
dominance.dominance = (
|
|
|
|
float(values_mat[k][1].replace(",", "."))
|
|
|
|
if isinstance(values_mat[k][1], str)
|
|
|
|
else values_mat[k][1]
|
|
|
|
)
|
2024-11-12 13:09:33 +00:00
|
|
|
if not (dominance.dominance) and not (dominance.date):
|
2022-06-02 14:51:47 +00:00
|
|
|
break
|
|
|
|
else:
|
|
|
|
dominance.save()
|
|
|
|
count += 1
|
|
|
|
else:
|
|
|
|
break
|
|
|
|
|
2024-11-12 13:09:33 +00:00
|
|
|
message = "Total of " + str(count) + " data imported"
|
|
|
|
context = {"message": message}
|
|
|
|
return render(request, "charts/maintenance.html", context)
|
|
|
|
|
2022-06-02 14:51:47 +00:00
|
|
|
|
|
|
|
# Import Reddit history from file on static folder
|
|
|
|
# Only authorized users can do this
|
2024-11-12 13:09:33 +00:00
|
|
|
@login_required
|
2022-06-02 14:51:47 +00:00
|
|
|
def importer(request):
|
2024-11-12 07:32:48 +00:00
|
|
|
if not request.user.is_superuser:
|
2024-11-12 13:09:33 +00:00
|
|
|
return render(request, "users/error.html")
|
2022-06-02 14:51:47 +00:00
|
|
|
count = 0
|
|
|
|
Social.objects.all().delete()
|
2024-11-12 13:09:33 +00:00
|
|
|
filename = staticfiles_storage.path("import.txt")
|
2022-06-02 14:51:47 +00:00
|
|
|
with open(filename) as f:
|
|
|
|
content = f.readlines()
|
|
|
|
for line in content:
|
|
|
|
data = json.loads(line)
|
2024-11-12 13:09:33 +00:00
|
|
|
symbol = data["name"]
|
|
|
|
item = data["subscriberCountTimeSeries"]
|
2022-06-02 14:51:47 +00:00
|
|
|
dates = []
|
|
|
|
subscriberCount = []
|
|
|
|
commentsPerHour = []
|
|
|
|
postsPerHour = []
|
|
|
|
for unit in item:
|
2024-11-12 13:09:33 +00:00
|
|
|
date_now = datetime.datetime.strptime("1970-01-01", "%Y-%m-%d")
|
|
|
|
date_now += timedelta(int(unit["utcDay"]))
|
|
|
|
dates.append(datetime.datetime.strftime(date_now, "%Y-%m-%d"))
|
|
|
|
value = float(unit["count"])
|
2022-06-02 14:51:47 +00:00
|
|
|
subscriberCount.append(value)
|
2024-11-12 13:09:33 +00:00
|
|
|
item = data["commentsPerHourTimeSeries"]
|
2022-06-02 14:51:47 +00:00
|
|
|
for unit in item:
|
2024-11-12 13:09:33 +00:00
|
|
|
value = float(unit["commentsPerHour"])
|
2022-06-02 14:51:47 +00:00
|
|
|
commentsPerHour.append(value)
|
2024-11-12 13:09:33 +00:00
|
|
|
item = data["postsPerHourTimeSeries"]
|
2022-06-02 14:51:47 +00:00
|
|
|
for unit in item:
|
2024-11-12 13:09:33 +00:00
|
|
|
value = float(unit["postsPerHour"])
|
2022-06-02 14:51:47 +00:00
|
|
|
postsPerHour.append(value)
|
2024-11-12 13:09:33 +00:00
|
|
|
|
|
|
|
for i in range(len(dates) - 1):
|
2022-06-02 14:51:47 +00:00
|
|
|
social = Social()
|
|
|
|
social.name = symbol
|
|
|
|
social.date = dates[i]
|
|
|
|
if i >= len(dates) - len(subscriberCount):
|
2024-11-12 13:09:33 +00:00
|
|
|
social.subscriberCount = subscriberCount[i - len(subscriberCount)]
|
|
|
|
else:
|
2022-06-02 14:51:47 +00:00
|
|
|
social.subscriberCount = 0
|
|
|
|
if i >= len(dates) - len(commentsPerHour):
|
2024-11-12 13:09:33 +00:00
|
|
|
social.commentsPerHour = commentsPerHour[
|
|
|
|
i - (len(dates) - len(commentsPerHour))
|
|
|
|
]
|
|
|
|
else:
|
2022-06-02 14:51:47 +00:00
|
|
|
social.commentsPerHour = 0
|
|
|
|
if i >= len(dates) - len(postsPerHour):
|
2024-11-12 13:09:33 +00:00
|
|
|
social.postsPerHour = postsPerHour[
|
|
|
|
i - (len(dates) - len(postsPerHour))
|
|
|
|
]
|
|
|
|
else:
|
|
|
|
social.postsPerHour = 0
|
2022-06-02 14:51:47 +00:00
|
|
|
social.save()
|
|
|
|
count += 1
|
|
|
|
|
2024-11-12 13:09:33 +00:00
|
|
|
message = "Total of " + str(count) + " data imported"
|
|
|
|
context = {"message": message}
|
|
|
|
return render(request, "charts/maintenance.html", context)
|
|
|
|
|
2022-06-02 14:51:47 +00:00
|
|
|
|
|
|
|
# Erase all data for a certain coin
|
|
|
|
# Only authorized users can do this
|
2024-11-12 13:09:33 +00:00
|
|
|
@login_required
|
2022-06-02 14:51:47 +00:00
|
|
|
def reset(request, symbol):
|
2024-11-12 07:32:48 +00:00
|
|
|
if not request.user.is_superuser:
|
2024-11-12 13:09:33 +00:00
|
|
|
return render(request, "users/error.html")
|
2022-09-17 21:36:35 +00:00
|
|
|
Coin.objects.filter(name=symbol).all().delete()
|
2024-11-12 13:09:33 +00:00
|
|
|
|
|
|
|
message = "All data for " + str(symbol) + " erased"
|
|
|
|
context = {"message": message}
|
|
|
|
return render(request, "charts/maintenance.html", context)
|
|
|
|
|
2022-06-02 14:51:47 +00:00
|
|
|
|
2022-06-03 18:23:21 +00:00
|
|
|
# Populate database with especific chart variables
|
|
|
|
# Only authorized users can do this
|
2024-11-12 13:09:33 +00:00
|
|
|
@login_required
|
2022-06-03 18:23:21 +00:00
|
|
|
def populate_database(request):
|
2024-11-12 07:32:48 +00:00
|
|
|
if not request.user.is_superuser:
|
2024-11-12 13:09:33 +00:00
|
|
|
return render(request, "users/error.html")
|
2022-06-03 18:23:21 +00:00
|
|
|
count = 0
|
|
|
|
|
2022-06-05 18:36:57 +00:00
|
|
|
###################################################################
|
|
|
|
# SF model charts
|
|
|
|
###################################################################
|
2024-11-12 13:09:33 +00:00
|
|
|
print(
|
|
|
|
"Populating database for sfmodel.html, sfmodelin.html and pricesats.html, wait a moment..."
|
|
|
|
)
|
2022-06-05 18:36:57 +00:00
|
|
|
Sfmodel.objects.all().delete()
|
2022-06-03 18:23:21 +00:00
|
|
|
timevar = 1283
|
|
|
|
v0 = 0.002
|
2024-11-12 13:09:33 +00:00
|
|
|
delta = (0.015 - 0.002) / (6 * 365)
|
2022-06-20 03:10:53 +00:00
|
|
|
previous_supply = 0
|
2022-06-03 18:23:21 +00:00
|
|
|
supply = 0
|
|
|
|
sf_aux = 0
|
|
|
|
count_aux = 0
|
|
|
|
|
2024-11-12 13:09:33 +00:00
|
|
|
coins = Coin.objects.order_by("date").filter(name="xmr")
|
2022-06-03 18:23:21 +00:00
|
|
|
for coin in coins:
|
2022-06-05 18:36:57 +00:00
|
|
|
if coin.priceusd < 0.1:
|
|
|
|
coin.priceusd = 0.1
|
2022-06-07 19:51:39 +00:00
|
|
|
coin.pricebtc = 0.000001
|
2024-11-12 13:09:33 +00:00
|
|
|
if coin.stocktoflow > sf_aux * 1.3 + 100:
|
2022-06-05 18:36:57 +00:00
|
|
|
coin.stocktoflow = sf_aux
|
2024-11-12 13:09:33 +00:00
|
|
|
|
2022-06-05 18:36:57 +00:00
|
|
|
sf_aux = coin.stocktoflow
|
2022-06-20 03:10:53 +00:00
|
|
|
if coin.supply > 0:
|
2024-11-12 13:09:33 +00:00
|
|
|
supply = int(coin.supply) * 10**12
|
2022-06-20 03:10:53 +00:00
|
|
|
else:
|
|
|
|
supply = previous_supply
|
2022-06-05 18:36:57 +00:00
|
|
|
count += 1
|
|
|
|
count_aux += 1
|
|
|
|
|
2022-06-03 18:23:21 +00:00
|
|
|
data = Sfmodel()
|
|
|
|
data.date = coin.date
|
|
|
|
data.priceusd = coin.priceusd
|
2022-06-07 19:51:39 +00:00
|
|
|
data.pricebtc = coin.pricebtc
|
2022-06-03 18:23:21 +00:00
|
|
|
data.stocktoflow = coin.stocktoflow
|
2024-11-12 13:09:33 +00:00
|
|
|
data.color = 30 * coin.pricebtc / (count * delta + v0)
|
|
|
|
date_aux1 = datetime.datetime.strptime("2017-12-29", "%Y-%m-%d")
|
|
|
|
date_aux2 = datetime.datetime.strftime(coin.date, "%Y-%m-%d")
|
|
|
|
date_aux2 = datetime.datetime.strptime(date_aux2, "%Y-%m-%d")
|
2022-06-03 18:23:21 +00:00
|
|
|
if date_aux2 < date_aux1:
|
|
|
|
lastprice = coin.priceusd
|
|
|
|
current_inflation = coin.inflation
|
|
|
|
data.greyline = 0
|
|
|
|
count_aux = 0
|
|
|
|
else:
|
|
|
|
day = date_aux2 - timedelta(timevar)
|
2024-11-12 13:09:33 +00:00
|
|
|
coin_aux1 = Coin.objects.filter(name="xmr").get(date=day)
|
|
|
|
day = date_aux2 - timedelta(timevar + 1)
|
|
|
|
coin_aux2 = Coin.objects.filter(name="xmr").get(date=day)
|
|
|
|
date_aux3 = datetime.datetime.strptime("2017-12-29", "%Y-%m-%d")
|
|
|
|
|
|
|
|
if date_aux3 + timedelta(int(count_aux * 2)) < datetime.datetime.strptime(
|
|
|
|
"2021-07-03", "%Y-%m-%d"
|
|
|
|
):
|
|
|
|
day = date_aux3 + timedelta(int(count_aux * 2))
|
|
|
|
coin_aux3 = Coin.objects.filter(name="xmr").get(date=day)
|
2022-06-03 18:23:21 +00:00
|
|
|
if coin_aux3:
|
2024-11-12 13:09:33 +00:00
|
|
|
if (coin_aux3.inflation / current_inflation) > 1.2 or (
|
|
|
|
coin_aux3.inflation / current_inflation
|
|
|
|
) < 0.8:
|
2022-06-03 18:23:21 +00:00
|
|
|
coin_aux3.inflation = current_inflation
|
|
|
|
else:
|
|
|
|
current_inflation = coin_aux3.inflation
|
|
|
|
supply2 = supply
|
|
|
|
else:
|
2024-11-12 13:09:33 +00:00
|
|
|
reward2 = (2**64 - 1 - supply2) >> 19
|
|
|
|
if reward2 < 0.6 * (10**12):
|
|
|
|
reward2 = 0.6 * (10**12)
|
|
|
|
supply2 += int(720 * reward2)
|
|
|
|
current_inflation = 100 * reward2 * 720 * 365 / supply2
|
|
|
|
|
2022-06-03 18:23:21 +00:00
|
|
|
if coin_aux1 and coin_aux2:
|
2024-11-12 13:09:33 +00:00
|
|
|
lastprice += (coin_aux1.priceusd / coin_aux2.priceusd - 1) * lastprice
|
|
|
|
actualprice = lastprice * (
|
|
|
|
math.sqrt(coin.inflation / current_inflation)
|
|
|
|
)
|
2022-06-03 18:23:21 +00:00
|
|
|
data.greyline = actualprice
|
|
|
|
else:
|
|
|
|
data.greyline = 0
|
2022-06-20 03:10:53 +00:00
|
|
|
previous_supply = supply
|
2022-06-03 18:23:21 +00:00
|
|
|
data.save()
|
|
|
|
|
|
|
|
count_aux = 0
|
2022-06-05 18:36:57 +00:00
|
|
|
for count_aux in range(700):
|
2022-06-03 18:23:21 +00:00
|
|
|
date_now = date.today() + timedelta(count_aux)
|
2024-11-12 13:09:33 +00:00
|
|
|
reward = (2**64 - 1 - supply) >> 19
|
|
|
|
if reward < 0.6 * (10**12):
|
|
|
|
reward = 0.6 * (10**12)
|
|
|
|
supply += int(720 * reward)
|
2022-06-05 18:36:57 +00:00
|
|
|
|
|
|
|
data = Sfmodel()
|
2024-11-12 13:09:33 +00:00
|
|
|
data.date = datetime.datetime.strftime(date_now, "%Y-%m-%d")
|
|
|
|
data.stocktoflow = (100 / (100 * reward * 720 * 365 / supply)) ** 1.65
|
2022-06-05 18:36:57 +00:00
|
|
|
data.priceusd = 0
|
2022-06-07 19:51:39 +00:00
|
|
|
data.pricebtc = 0
|
2024-11-12 13:09:33 +00:00
|
|
|
data.greyline = 0
|
2022-06-05 18:36:57 +00:00
|
|
|
data.color = 0
|
|
|
|
data.priceusd = 0
|
|
|
|
data.greyline = 0
|
|
|
|
data.save()
|
|
|
|
count += 1
|
|
|
|
|
|
|
|
###################################################################
|
|
|
|
# Daily Emissions, inflation charts and coins against bitcoin
|
|
|
|
###################################################################
|
2024-11-12 13:09:33 +00:00
|
|
|
print(
|
|
|
|
"Populating database for dailyemission.html and dailyemissionntv.html, wait a moment..."
|
|
|
|
)
|
2022-06-05 18:36:57 +00:00
|
|
|
DailyData.objects.all().delete()
|
|
|
|
supply_btc = 0
|
|
|
|
supply_xmr = 0
|
|
|
|
count_aux = 0
|
2024-11-12 13:09:33 +00:00
|
|
|
coins_btc = Coin.objects.order_by("date").filter(name="btc")
|
2022-06-05 18:36:57 +00:00
|
|
|
|
|
|
|
for coin_btc in coins_btc:
|
|
|
|
count_aux += 1
|
|
|
|
data = DailyData()
|
2024-11-12 13:09:33 +00:00
|
|
|
data.date = datetime.datetime.strftime(coin_btc.date, "%Y-%m-%d")
|
|
|
|
|
2022-06-13 01:28:59 +00:00
|
|
|
if coin_btc.blocksize > 0:
|
|
|
|
data.btc_blocksize = coin_btc.blocksize
|
|
|
|
data.btc_transactions = coin_btc.transactions
|
|
|
|
else:
|
|
|
|
data.btc_blocksize = 0
|
|
|
|
data.btc_transactions = 0
|
2024-11-12 13:09:33 +00:00
|
|
|
|
2022-06-13 01:28:59 +00:00
|
|
|
if coin_btc.difficulty > 0:
|
|
|
|
data.btc_difficulty = coin_btc.difficulty
|
|
|
|
else:
|
|
|
|
data.btc_difficulty = 0
|
2024-11-12 13:09:33 +00:00
|
|
|
|
2022-06-05 18:36:57 +00:00
|
|
|
if coin_btc.transactions == 0:
|
|
|
|
data.btc_transcostusd = 0
|
|
|
|
data.btc_transcostntv = 0
|
|
|
|
else:
|
2024-11-12 13:09:33 +00:00
|
|
|
if coin_btc.fee * coin_btc.priceusd / coin_btc.transactions < 0.0001:
|
2022-06-05 18:36:57 +00:00
|
|
|
data.btc_transcostusd = 0
|
|
|
|
data.btc_transcostntv = 0
|
|
|
|
else:
|
2024-11-12 13:09:33 +00:00
|
|
|
data.btc_transcostusd = (
|
|
|
|
coin_btc.fee * coin_btc.priceusd / coin_btc.transactions
|
|
|
|
)
|
|
|
|
data.btc_transcostntv = coin_btc.fee / coin_btc.transactions
|
2022-06-05 18:36:57 +00:00
|
|
|
|
|
|
|
if coin_btc.revenue < 0.000001 or coin_btc.priceusd < 0.001:
|
|
|
|
data.btc_minerrevntv = 0
|
|
|
|
data.btc_minerrevusd = 0
|
|
|
|
data.btc_commitntv = 0
|
|
|
|
data.btc_commitusd = 0
|
2022-06-08 20:23:10 +00:00
|
|
|
data.btc_priceusd = 0
|
|
|
|
data.btc_marketcap = 0
|
2022-06-05 18:36:57 +00:00
|
|
|
else:
|
|
|
|
data.btc_minerrevntv = coin_btc.revenue
|
2024-11-12 13:09:33 +00:00
|
|
|
data.btc_minerrevusd = coin_btc.revenue * coin_btc.priceusd
|
|
|
|
data.btc_commitntv = coin_btc.hashrate / (coin_btc.revenue)
|
|
|
|
data.btc_commitusd = coin_btc.hashrate / (
|
|
|
|
coin_btc.revenue * coin_btc.priceusd
|
|
|
|
)
|
2022-06-08 20:23:10 +00:00
|
|
|
data.btc_priceusd = coin_btc.priceusd
|
2024-11-12 13:09:33 +00:00
|
|
|
data.btc_marketcap = coin_btc.priceusd * coin_btc.supply
|
2022-06-05 18:36:57 +00:00
|
|
|
|
2022-06-07 19:51:39 +00:00
|
|
|
if coin_btc.supply == 0:
|
|
|
|
data.btc_minerrevcap = 0
|
|
|
|
else:
|
2024-11-12 13:09:33 +00:00
|
|
|
data.btc_minerrevcap = 365 * 100 * coin_btc.revenue / coin_btc.supply
|
2022-06-07 19:51:39 +00:00
|
|
|
|
2022-06-05 18:36:57 +00:00
|
|
|
if coin_btc.priceusd:
|
2024-11-12 13:09:33 +00:00
|
|
|
if coin_btc.priceusd / 30 > 0.02:
|
|
|
|
data.btc_return = coin_btc.priceusd / 30
|
2022-06-05 18:36:57 +00:00
|
|
|
else:
|
|
|
|
data.btc_return = 0
|
|
|
|
else:
|
|
|
|
data.btc_return = 0
|
|
|
|
|
|
|
|
if coin_btc.inflation > 0:
|
|
|
|
data.btc_inflation = coin_btc.inflation
|
|
|
|
else:
|
|
|
|
data.btc_inflation = 0
|
|
|
|
if coin_btc.supply > 0:
|
|
|
|
data.btc_supply = coin_btc.supply
|
|
|
|
else:
|
|
|
|
data.btc_supply = 0
|
|
|
|
|
2022-06-08 20:23:10 +00:00
|
|
|
if coin_btc.supply - supply_btc < 0.000001:
|
2022-06-05 18:36:57 +00:00
|
|
|
data.btc_minerfeesntv = 0
|
|
|
|
data.btc_minerfeesusd = 0
|
2022-06-09 19:23:30 +00:00
|
|
|
data.btc_emissionntv = 0
|
2022-06-05 18:36:57 +00:00
|
|
|
else:
|
|
|
|
data.btc_minerfeesntv = coin_btc.revenue - coin_btc.supply + supply_btc
|
2024-11-12 13:09:33 +00:00
|
|
|
data.btc_minerfeesusd = (
|
|
|
|
coin_btc.revenue - coin_btc.supply + supply_btc
|
|
|
|
) * coin_btc.priceusd
|
|
|
|
data.btc_emissionntv = coin_btc.supply - supply_btc
|
|
|
|
|
|
|
|
if (coin_btc.supply - supply_btc) * coin_btc.priceusd < 1000:
|
2022-06-09 19:23:30 +00:00
|
|
|
data.btc_emissionusd = 0
|
2022-06-05 18:36:57 +00:00
|
|
|
else:
|
2024-11-12 13:09:33 +00:00
|
|
|
data.btc_emissionusd = (coin_btc.supply - supply_btc) * coin_btc.priceusd
|
2022-06-05 18:36:57 +00:00
|
|
|
supply_btc = coin_btc.supply
|
|
|
|
|
|
|
|
if count_aux > 1750:
|
2024-11-12 13:09:33 +00:00
|
|
|
coins_xmr = Coin.objects.filter(name="xmr").filter(date=coin_btc.date)
|
2022-06-05 18:36:57 +00:00
|
|
|
if coins_xmr:
|
|
|
|
for coin_xmr in coins_xmr:
|
2022-06-13 01:28:59 +00:00
|
|
|
if coin_xmr.blocksize > 0:
|
|
|
|
data.xmr_blocksize = coin_xmr.blocksize
|
|
|
|
else:
|
|
|
|
data.xmr_blocksize = 0
|
|
|
|
|
|
|
|
if coin_xmr.difficulty > 0:
|
|
|
|
data.xmr_difficulty = coin_xmr.difficulty
|
|
|
|
else:
|
|
|
|
data.xmr_difficulty = 0
|
|
|
|
|
2022-06-05 18:36:57 +00:00
|
|
|
if coin_xmr.priceusd < 0.001:
|
|
|
|
data.xmr_pricebtc = 0
|
|
|
|
data.xmr_priceusd = 0
|
2022-06-07 19:51:39 +00:00
|
|
|
data.xmr_marketcap = 0
|
2022-06-05 18:36:57 +00:00
|
|
|
else:
|
|
|
|
data.xmr_pricebtc = coin_xmr.pricebtc
|
|
|
|
data.xmr_priceusd = coin_xmr.priceusd
|
2024-11-12 13:09:33 +00:00
|
|
|
data.xmr_marketcap = coin_xmr.priceusd * coin_xmr.supply
|
2022-06-05 18:36:57 +00:00
|
|
|
|
|
|
|
if coin_btc.supply > 0 and coin_btc.transactions > 0:
|
2022-06-09 19:23:30 +00:00
|
|
|
data.xmr_transactions = coin_xmr.transactions
|
2024-11-12 13:09:33 +00:00
|
|
|
data.xmr_metcalfeusd = (
|
|
|
|
coin_btc.priceusd
|
|
|
|
* coin_xmr.transactions
|
|
|
|
* coin_xmr.supply
|
|
|
|
/ (coin_btc.supply * coin_btc.transactions)
|
|
|
|
)
|
|
|
|
data.xmr_metcalfebtc = (
|
|
|
|
coin_xmr.transactions
|
|
|
|
* coin_xmr.supply
|
|
|
|
/ (coin_btc.supply * coin_btc.transactions)
|
|
|
|
)
|
2022-06-05 18:36:57 +00:00
|
|
|
else:
|
|
|
|
data.xmr_metcalfeusd = 0
|
|
|
|
data.xmr_metcalfebtc = 0
|
2022-06-09 19:23:30 +00:00
|
|
|
data.xmr_transactions = 0
|
2022-06-05 18:36:57 +00:00
|
|
|
if data.xmr_metcalfeusd < 0.23:
|
|
|
|
data.xmr_metcalfeusd = 0
|
|
|
|
data.xmr_metcalfebtc = 0
|
|
|
|
|
|
|
|
if coin_xmr.transactions == 0:
|
|
|
|
data.xmr_transacpercentage = 0
|
|
|
|
data.xmr_transcostusd = 0
|
|
|
|
data.xmr_transcostntv = 0
|
|
|
|
else:
|
2024-11-12 13:09:33 +00:00
|
|
|
if (
|
|
|
|
coin_xmr.fee * coin_xmr.priceusd / coin_xmr.transactions
|
|
|
|
< 0.0001
|
|
|
|
):
|
2022-06-05 18:36:57 +00:00
|
|
|
data.xmr_transcostusd = 0
|
|
|
|
data.xmr_transcostntv = 0
|
|
|
|
else:
|
2024-11-12 13:09:33 +00:00
|
|
|
data.xmr_transcostusd = (
|
|
|
|
coin_xmr.fee * coin_xmr.priceusd / coin_xmr.transactions
|
|
|
|
)
|
|
|
|
data.xmr_transcostntv = coin_xmr.fee / coin_xmr.transactions
|
2022-06-05 18:36:57 +00:00
|
|
|
if coin_btc.transactions == 0:
|
|
|
|
data.xmr_transacpercentage = 0
|
|
|
|
else:
|
2024-11-12 13:09:33 +00:00
|
|
|
data.xmr_transacpercentage = (
|
|
|
|
coin_xmr.transactions / coin_btc.transactions
|
|
|
|
)
|
2022-06-05 18:36:57 +00:00
|
|
|
|
|
|
|
if coin_xmr.revenue < 0.000001 or coin_xmr.priceusd < 0.001:
|
|
|
|
data.xmr_minerrevntv = 0
|
|
|
|
data.xmr_minerrevusd = 0
|
|
|
|
data.xmr_commitntv = 0
|
|
|
|
data.xmr_commitusd = 0
|
|
|
|
else:
|
|
|
|
data.xmr_minerrevntv = coin_xmr.revenue
|
2024-11-12 13:09:33 +00:00
|
|
|
data.xmr_minerrevusd = coin_xmr.revenue * coin_xmr.priceusd
|
|
|
|
data.xmr_commitntv = coin_xmr.hashrate / (coin_xmr.revenue)
|
|
|
|
data.xmr_commitusd = coin_xmr.hashrate / (
|
|
|
|
coin_xmr.revenue * coin_xmr.priceusd
|
|
|
|
)
|
2022-06-05 18:36:57 +00:00
|
|
|
|
2022-06-07 19:51:39 +00:00
|
|
|
if coin_xmr.supply == 0:
|
|
|
|
data.xmr_minerrevcap = 0
|
|
|
|
else:
|
2024-11-12 13:09:33 +00:00
|
|
|
data.xmr_minerrevcap = (
|
|
|
|
365 * 100 * coin_xmr.revenue / coin_xmr.supply
|
|
|
|
)
|
2022-06-07 19:51:39 +00:00
|
|
|
|
2024-11-12 13:09:33 +00:00
|
|
|
if coin_xmr.priceusd / 5.01 > 0.02:
|
|
|
|
data.xmr_return = coin_xmr.priceusd / 5.01
|
2022-06-05 18:36:57 +00:00
|
|
|
else:
|
|
|
|
data.xmr_return = 0
|
|
|
|
|
|
|
|
if coin_xmr.inflation > 0:
|
|
|
|
data.xmr_inflation = coin_xmr.inflation
|
|
|
|
else:
|
|
|
|
data.xmr_inflation = 0
|
|
|
|
|
|
|
|
if coin_xmr.supply > 0:
|
|
|
|
data.xmr_supply = coin_xmr.supply
|
|
|
|
else:
|
|
|
|
data.xmr_supply = 0
|
|
|
|
|
|
|
|
if coin_xmr.supply - supply_xmr < 0.000001:
|
|
|
|
data.xmr_minerfeesntv = 0
|
|
|
|
data.xmr_minerfeesusd = 0
|
2022-06-09 19:23:30 +00:00
|
|
|
data.xmr_emissionntv = 0
|
2022-06-05 18:36:57 +00:00
|
|
|
else:
|
2024-11-12 13:09:33 +00:00
|
|
|
data.xmr_minerfeesntv = (
|
|
|
|
coin_xmr.revenue - coin_xmr.supply + supply_xmr
|
|
|
|
)
|
|
|
|
data.xmr_minerfeesusd = (
|
|
|
|
coin_xmr.revenue - coin_xmr.supply + supply_xmr
|
|
|
|
) * coin_xmr.priceusd
|
2022-06-09 19:23:30 +00:00
|
|
|
data.xmr_emissionntv = coin_xmr.supply - supply_xmr
|
2022-06-05 18:36:57 +00:00
|
|
|
|
2024-11-12 13:09:33 +00:00
|
|
|
if (coin_xmr.supply - supply_xmr) * coin_xmr.priceusd < 1000:
|
2022-06-09 19:23:30 +00:00
|
|
|
data.xmr_emissionusd = 0
|
2022-06-05 18:36:57 +00:00
|
|
|
else:
|
2024-11-12 13:09:33 +00:00
|
|
|
data.xmr_emissionusd = (
|
|
|
|
coin_xmr.supply - supply_xmr
|
|
|
|
) * coin_xmr.priceusd
|
2022-06-05 18:36:57 +00:00
|
|
|
supply_xmr = coin_xmr.supply
|
|
|
|
else:
|
2022-06-09 19:23:30 +00:00
|
|
|
data.xmr_emissionntv = 0
|
|
|
|
data.xmr_emissionusd = 0
|
2022-06-05 18:36:57 +00:00
|
|
|
data.xmr_inflation = 0
|
|
|
|
data.xmr_supply = 0
|
|
|
|
data.xmr_return = 0
|
|
|
|
data.xmr_minerrevntv = 0
|
|
|
|
data.xmr_minerrevusd = 0
|
|
|
|
data.xmr_minerfeesntv = 0
|
|
|
|
data.xmr_minerfeesusd = 0
|
|
|
|
data.xmr_transcostntv = 0
|
|
|
|
data.xmr_transcostusd = 0
|
|
|
|
data.xmr_commitntv = 0
|
|
|
|
data.xmr_commitusd = 0
|
|
|
|
data.xmr_metcalfeusd = 0
|
|
|
|
data.xmr_metcalfebtc = 0
|
|
|
|
data.xmr_pricebtc = 0
|
|
|
|
data.xmr_priceusd = 0
|
|
|
|
data.xmr_transacpercentage = 0
|
2022-06-07 19:51:39 +00:00
|
|
|
data.xmr_marketcap = 0
|
|
|
|
data.xmr_minerrevcap = 0
|
2022-06-09 19:23:30 +00:00
|
|
|
data.xmr_transactions = 0
|
2022-06-13 01:28:59 +00:00
|
|
|
data.xmr_blocksize = 0
|
|
|
|
data.xmr_difficulty = 0
|
2022-06-05 18:36:57 +00:00
|
|
|
|
2024-11-12 13:09:33 +00:00
|
|
|
coins_dash = Coin.objects.filter(name="dash").filter(date=coin_btc.date)
|
2022-06-05 18:36:57 +00:00
|
|
|
if coins_dash:
|
|
|
|
for coin_dash in coins_dash:
|
2022-06-23 19:26:10 +00:00
|
|
|
if coin_dash.transactions > 0:
|
|
|
|
data.dash_transactions = coin_dash.transactions
|
|
|
|
else:
|
|
|
|
data.dash_transactions = 0
|
2022-06-05 18:36:57 +00:00
|
|
|
if coin_dash.inflation > 0:
|
|
|
|
data.dash_inflation = coin_dash.inflation
|
|
|
|
else:
|
|
|
|
data.dash_inflation = 0
|
2022-06-07 19:51:39 +00:00
|
|
|
|
|
|
|
if coin_dash.priceusd > 0:
|
2024-11-12 13:09:33 +00:00
|
|
|
data.dash_marketcap = coin_dash.priceusd * coin_dash.supply
|
2022-06-07 19:51:39 +00:00
|
|
|
else:
|
|
|
|
data.dash_marketcap = 0
|
2022-06-05 18:36:57 +00:00
|
|
|
else:
|
|
|
|
data.dash_inflation = 0
|
2022-06-07 19:51:39 +00:00
|
|
|
data.dash_marketcap = 0
|
2022-06-23 19:26:10 +00:00
|
|
|
data.dash_transactions = 0
|
2022-06-05 18:36:57 +00:00
|
|
|
else:
|
2022-06-09 19:23:30 +00:00
|
|
|
data.xmr_emissionntv = 0
|
|
|
|
data.xmr_emissionusd = 0
|
2022-06-05 18:36:57 +00:00
|
|
|
data.xmr_inflation = 0
|
|
|
|
data.xmr_supply = 0
|
|
|
|
data.xmr_return = 0
|
|
|
|
data.dash_inflation = 0
|
2022-06-07 19:51:39 +00:00
|
|
|
data.dash_marketcap = 0
|
2022-06-23 19:26:10 +00:00
|
|
|
data.dash_transactions = 0
|
2022-06-07 19:51:39 +00:00
|
|
|
data.xmr_marketcap = 0
|
2022-06-05 18:36:57 +00:00
|
|
|
data.xmr_minerrevntv = 0
|
|
|
|
data.xmr_minerrevusd = 0
|
|
|
|
data.xmr_minerfeesntv = 0
|
|
|
|
data.xmr_minerfeesusd = 0
|
|
|
|
data.xmr_transcostntv = 0
|
|
|
|
data.xmr_transcostusd = 0
|
|
|
|
data.xmr_commitntv = 0
|
|
|
|
data.xmr_commitusd = 0
|
|
|
|
data.xmr_metcalfeusd = 0
|
|
|
|
data.xmr_metcalfebtc = 0
|
|
|
|
data.xmr_pricebtc = 0
|
|
|
|
data.xmr_priceusd = 0
|
|
|
|
data.xmr_transacpercentage = 0
|
2022-06-07 19:51:39 +00:00
|
|
|
data.xmr_minerrevcap = 0
|
2022-06-09 19:23:30 +00:00
|
|
|
data.xmr_transactions = 0
|
2022-06-13 01:28:59 +00:00
|
|
|
data.xmr_blocksize = 0
|
|
|
|
data.xmr_difficulty = 0
|
2022-06-05 18:36:57 +00:00
|
|
|
|
|
|
|
if count_aux > 2800:
|
2024-11-12 13:09:33 +00:00
|
|
|
coins_zcash = Coin.objects.filter(name="zec").filter(date=coin_btc.date)
|
2022-06-05 18:36:57 +00:00
|
|
|
if coins_zcash:
|
|
|
|
for coin_zcash in coins_zcash:
|
2022-06-23 19:26:10 +00:00
|
|
|
if coin_zcash.transactions > 0:
|
|
|
|
data.zcash_transactions = coin_zcash.transactions
|
|
|
|
else:
|
|
|
|
data.zcash_transactions = 0
|
2022-06-05 18:36:57 +00:00
|
|
|
if coin_zcash.inflation > 0:
|
|
|
|
data.zcash_inflation = coin_zcash.inflation
|
|
|
|
else:
|
|
|
|
data.zcash_inflation = 0
|
2024-11-12 13:09:33 +00:00
|
|
|
|
2022-06-07 19:51:39 +00:00
|
|
|
if coin_zcash.priceusd > 0:
|
2024-11-12 13:09:33 +00:00
|
|
|
data.zcash_marketcap = coin_zcash.priceusd * coin_zcash.supply
|
2022-06-07 19:51:39 +00:00
|
|
|
else:
|
|
|
|
data.zcash_marketcap = 0
|
2022-06-05 18:36:57 +00:00
|
|
|
else:
|
|
|
|
data.zcash_inflation = 0
|
2022-06-07 19:51:39 +00:00
|
|
|
data.zcash_marketcap = 0
|
2022-06-23 19:26:10 +00:00
|
|
|
data.zcash_transactions = 0
|
2022-06-05 18:36:57 +00:00
|
|
|
else:
|
|
|
|
data.zcash_inflation = 0
|
2022-06-07 19:51:39 +00:00
|
|
|
data.zcash_marketcap = 0
|
2022-06-23 19:26:10 +00:00
|
|
|
data.zcash_transactions = 0
|
2022-06-05 18:36:57 +00:00
|
|
|
|
|
|
|
if count_aux > 3600:
|
2024-11-12 13:09:33 +00:00
|
|
|
coins_grin = Coin.objects.filter(name="grin").filter(date=coin_btc.date)
|
2022-06-05 18:36:57 +00:00
|
|
|
if coins_grin:
|
|
|
|
for coin_grin in coins_grin:
|
2022-06-23 19:26:10 +00:00
|
|
|
if coin_grin.transactions > 0:
|
|
|
|
data.grin_transactions = coin_grin.transactions
|
|
|
|
else:
|
|
|
|
data.grin_transactions = 0
|
2022-06-05 18:36:57 +00:00
|
|
|
if coin_grin.inflation > 0:
|
|
|
|
data.grin_inflation = coin_grin.inflation
|
|
|
|
else:
|
|
|
|
data.grin_inflation = 0
|
2022-06-07 19:51:39 +00:00
|
|
|
|
|
|
|
if coin_grin.priceusd > 0:
|
2024-11-12 13:09:33 +00:00
|
|
|
data.grin_marketcap = coin_grin.priceusd * coin_grin.supply
|
2022-06-07 19:51:39 +00:00
|
|
|
else:
|
|
|
|
data.grin_marketcap = 0
|
2022-06-05 18:36:57 +00:00
|
|
|
else:
|
|
|
|
data.grin_inflation = 0
|
2022-06-07 19:51:39 +00:00
|
|
|
data.grin_marketcap = 0
|
2022-06-23 19:26:10 +00:00
|
|
|
data.grin_transactions = 0
|
2022-06-05 18:36:57 +00:00
|
|
|
else:
|
|
|
|
data.grin_inflation = 0
|
2022-06-07 19:51:39 +00:00
|
|
|
data.grin_marketcap = 0
|
2022-06-23 19:26:10 +00:00
|
|
|
data.grin_transactions = 0
|
2024-11-12 13:09:33 +00:00
|
|
|
|
|
|
|
socials = Social.objects.filter(name="Bitcoin").filter(date=coin_btc.date)
|
2022-06-08 20:23:10 +00:00
|
|
|
if socials:
|
|
|
|
for social in socials:
|
|
|
|
data.btc_subscriberCount = social.subscriberCount
|
|
|
|
data.btc_commentsPerHour = social.commentsPerHour
|
|
|
|
data.btc_postsPerHour = social.postsPerHour
|
|
|
|
else:
|
|
|
|
data.btc_subscriberCount = 0
|
|
|
|
data.btc_commentsPerHour = 0
|
|
|
|
data.btc_postsPerHour = 0
|
2024-11-12 13:09:33 +00:00
|
|
|
|
|
|
|
socials = Social.objects.filter(name="Monero").filter(date=coin_btc.date)
|
2022-06-08 20:23:10 +00:00
|
|
|
if socials:
|
|
|
|
for social in socials:
|
|
|
|
data.xmr_subscriberCount = social.subscriberCount
|
|
|
|
data.xmr_commentsPerHour = social.commentsPerHour
|
|
|
|
data.xmr_postsPerHour = social.postsPerHour
|
|
|
|
else:
|
|
|
|
data.xmr_subscriberCount = 0
|
|
|
|
data.xmr_commentsPerHour = 0
|
|
|
|
data.xmr_postsPerHour = 0
|
|
|
|
|
2024-11-12 13:09:33 +00:00
|
|
|
socials = Social.objects.filter(name="CryptoCurrency").filter(
|
|
|
|
date=coin_btc.date
|
|
|
|
)
|
2022-06-08 20:23:10 +00:00
|
|
|
if socials:
|
|
|
|
for social in socials:
|
|
|
|
data.crypto_subscriberCount = social.subscriberCount
|
|
|
|
data.crypto_commentsPerHour = social.commentsPerHour
|
|
|
|
data.crypto_postsPerHour = social.postsPerHour
|
|
|
|
else:
|
|
|
|
data.crypto_subscriberCount = 0
|
|
|
|
data.crypto_commentsPerHour = 0
|
|
|
|
data.crypto_postsPerHour = 0
|
|
|
|
|
2022-06-05 18:36:57 +00:00
|
|
|
data.save()
|
2022-06-03 18:23:21 +00:00
|
|
|
count += 1
|
|
|
|
|
2024-11-12 13:09:33 +00:00
|
|
|
message = "Total of " + str(count) + " data generated"
|
|
|
|
context = {"message": message}
|
|
|
|
return render(request, "charts/maintenance.html", context)
|
|
|
|
|
2022-06-03 18:23:21 +00:00
|
|
|
|
2022-06-12 14:56:20 +00:00
|
|
|
# Update database with between certain dates
|
|
|
|
# Only authorized users can do this
|
2024-11-12 13:09:33 +00:00
|
|
|
@login_required
|
2022-06-12 14:56:20 +00:00
|
|
|
def update_database_admin(request, date_from, date_to):
|
2024-11-12 07:32:48 +00:00
|
|
|
if not request.user.is_superuser:
|
2024-11-12 13:09:33 +00:00
|
|
|
return render(request, "users/error.html")
|
2022-06-12 14:56:20 +00:00
|
|
|
|
2022-09-17 21:36:35 +00:00
|
|
|
synchronous.update_database(date_from, date_to)
|
2022-06-12 14:56:20 +00:00
|
|
|
|
2024-11-12 13:09:33 +00:00
|
|
|
message = "Database updated from " + str(date_from) + " to " + str(date_to)
|
|
|
|
context = {"message": message}
|
|
|
|
return render(request, "charts/maintenance.html", context)
|
2024-11-12 07:32:48 +00:00
|
|
|
if not request.user.is_superuser:
|
2024-11-12 13:09:33 +00:00
|
|
|
return render(request, "users/error.html")
|
2022-10-10 14:50:15 +00:00
|
|
|
count = 0
|
|
|
|
|
|
|
|
###################################################################
|
|
|
|
# SF model charts
|
|
|
|
###################################################################
|
2024-11-12 13:09:33 +00:00
|
|
|
print(
|
|
|
|
"Populating database for sfmodel.html, sfmodelin.html and pricesats.html, wait a moment..."
|
|
|
|
)
|
2022-10-10 14:50:15 +00:00
|
|
|
Sfmodel.objects.all().delete()
|
|
|
|
timevar = 1283
|
|
|
|
v0 = 0.002
|
2024-11-12 13:09:33 +00:00
|
|
|
delta = (0.015 - 0.002) / (6 * 365)
|
2022-10-10 14:50:15 +00:00
|
|
|
previous_supply = 0
|
|
|
|
supply = 0
|
|
|
|
sf_aux = 0
|
|
|
|
count_aux = 0
|
|
|
|
|
2024-11-12 13:09:33 +00:00
|
|
|
coins = Coin.objects.order_by("date").filter(name="xmr")
|
2022-10-10 14:50:15 +00:00
|
|
|
for coin in coins:
|
|
|
|
if coin.priceusd < 0.1:
|
|
|
|
coin.priceusd = 0.1
|
|
|
|
coin.pricebtc = 0.000001
|
2024-11-12 13:09:33 +00:00
|
|
|
if coin.stocktoflow > sf_aux * 1.3 + 100:
|
2022-10-10 14:50:15 +00:00
|
|
|
coin.stocktoflow = sf_aux
|
2024-11-12 13:09:33 +00:00
|
|
|
|
2022-10-10 14:50:15 +00:00
|
|
|
sf_aux = coin.stocktoflow
|
|
|
|
if coin.supply > 0:
|
2024-11-12 13:09:33 +00:00
|
|
|
supply = int(coin.supply) * 10**12
|
2022-10-10 14:50:15 +00:00
|
|
|
else:
|
|
|
|
supply = previous_supply
|
|
|
|
count += 1
|
|
|
|
count_aux += 1
|
|
|
|
|
|
|
|
data = Sfmodel()
|
|
|
|
data.date = coin.date
|
|
|
|
data.priceusd = coin.priceusd
|
|
|
|
data.pricebtc = coin.pricebtc
|
|
|
|
data.stocktoflow = coin.stocktoflow
|
2024-11-12 13:09:33 +00:00
|
|
|
data.color = 30 * coin.pricebtc / (count * delta + v0)
|
|
|
|
date_aux1 = datetime.datetime.strptime("2017-12-29", "%Y-%m-%d")
|
|
|
|
date_aux2 = datetime.datetime.strftime(coin.date, "%Y-%m-%d")
|
|
|
|
date_aux2 = datetime.datetime.strptime(date_aux2, "%Y-%m-%d")
|
2022-10-10 14:50:15 +00:00
|
|
|
if date_aux2 < date_aux1:
|
|
|
|
lastprice = coin.priceusd
|
|
|
|
current_inflation = coin.inflation
|
|
|
|
data.greyline = 0
|
|
|
|
count_aux = 0
|
|
|
|
else:
|
|
|
|
day = date_aux2 - timedelta(timevar)
|
2024-11-12 13:09:33 +00:00
|
|
|
coin_aux1 = Coin.objects.filter(name="xmr").get(date=day)
|
|
|
|
day = date_aux2 - timedelta(timevar + 1)
|
|
|
|
coin_aux2 = Coin.objects.filter(name="xmr").get(date=day)
|
|
|
|
date_aux3 = datetime.datetime.strptime("2017-12-29", "%Y-%m-%d")
|
|
|
|
|
|
|
|
if date_aux3 + timedelta(int(count_aux * 2)) < datetime.datetime.strptime(
|
|
|
|
"2021-07-03", "%Y-%m-%d"
|
|
|
|
):
|
|
|
|
day = date_aux3 + timedelta(int(count_aux * 2))
|
|
|
|
coin_aux3 = Coin.objects.filter(name="xmr").get(date=day)
|
2022-10-10 14:50:15 +00:00
|
|
|
if coin_aux3:
|
2024-11-12 13:09:33 +00:00
|
|
|
if (coin_aux3.inflation / current_inflation) > 1.2 or (
|
|
|
|
coin_aux3.inflation / current_inflation
|
|
|
|
) < 0.8:
|
2022-10-10 14:50:15 +00:00
|
|
|
coin_aux3.inflation = current_inflation
|
|
|
|
else:
|
|
|
|
current_inflation = coin_aux3.inflation
|
|
|
|
supply2 = supply
|
|
|
|
else:
|
2024-11-12 13:09:33 +00:00
|
|
|
reward2 = (2**64 - 1 - supply2) >> 19
|
|
|
|
if reward2 < 0.6 * (10**12):
|
|
|
|
reward2 = 0.6 * (10**12)
|
|
|
|
supply2 += int(720 * reward2)
|
|
|
|
current_inflation = 100 * reward2 * 720 * 365 / supply2
|
|
|
|
|
2022-10-10 14:50:15 +00:00
|
|
|
if coin_aux1 and coin_aux2:
|
2024-11-12 13:09:33 +00:00
|
|
|
lastprice += (coin_aux1.priceusd / coin_aux2.priceusd - 1) * lastprice
|
|
|
|
actualprice = lastprice * (
|
|
|
|
math.sqrt(coin.inflation / current_inflation)
|
|
|
|
)
|
2022-10-10 14:50:15 +00:00
|
|
|
data.greyline = actualprice
|
|
|
|
else:
|
|
|
|
data.greyline = 0
|
|
|
|
previous_supply = supply
|
|
|
|
data.save()
|
|
|
|
|
|
|
|
count_aux = 0
|
|
|
|
for count_aux in range(700):
|
|
|
|
date_now = date.today() + timedelta(count_aux)
|
2024-11-12 13:09:33 +00:00
|
|
|
reward = (2**64 - 1 - supply) >> 19
|
|
|
|
if reward < 0.6 * (10**12):
|
|
|
|
reward = 0.6 * (10**12)
|
|
|
|
supply += int(720 * reward)
|
2022-10-10 14:50:15 +00:00
|
|
|
|
|
|
|
data = Sfmodel()
|
2024-11-12 13:09:33 +00:00
|
|
|
data.date = datetime.datetime.strftime(date_now, "%Y-%m-%d")
|
|
|
|
data.stocktoflow = (100 / (100 * reward * 720 * 365 / supply)) ** 1.65
|
2022-10-10 14:50:15 +00:00
|
|
|
data.priceusd = 0
|
|
|
|
data.pricebtc = 0
|
2024-11-12 13:09:33 +00:00
|
|
|
data.greyline = 0
|
2022-10-10 14:50:15 +00:00
|
|
|
data.color = 0
|
|
|
|
data.priceusd = 0
|
|
|
|
data.greyline = 0
|
|
|
|
data.save()
|
|
|
|
count += 1
|
|
|
|
|
|
|
|
###################################################################
|
|
|
|
# Daily Emissions, inflation charts and coins against bitcoin
|
|
|
|
###################################################################
|
2024-11-12 13:09:33 +00:00
|
|
|
print(
|
|
|
|
"Populating database for dailyemission.html and dailyemissionntv.html, wait a moment..."
|
|
|
|
)
|
2022-10-10 14:50:15 +00:00
|
|
|
DailyData.objects.all().delete()
|
|
|
|
supply_btc = 0
|
|
|
|
supply_xmr = 0
|
|
|
|
count_aux = 0
|
2024-11-12 13:09:33 +00:00
|
|
|
coins_btc = Coin.objects.order_by("date").filter(name="btc")
|
2022-10-10 14:50:15 +00:00
|
|
|
|
|
|
|
for coin_btc in coins_btc:
|
|
|
|
count_aux += 1
|
|
|
|
data = DailyData()
|
2024-11-12 13:09:33 +00:00
|
|
|
data.date = datetime.datetime.strftime(coin_btc.date, "%Y-%m-%d")
|
|
|
|
|
2022-10-10 14:50:15 +00:00
|
|
|
if coin_btc.blocksize > 0:
|
|
|
|
data.btc_blocksize = coin_btc.blocksize
|
|
|
|
data.btc_transactions = coin_btc.transactions
|
|
|
|
else:
|
|
|
|
data.btc_blocksize = 0
|
|
|
|
data.btc_transactions = 0
|
2024-11-12 13:09:33 +00:00
|
|
|
|
2022-10-10 14:50:15 +00:00
|
|
|
if coin_btc.difficulty > 0:
|
|
|
|
data.btc_difficulty = coin_btc.difficulty
|
|
|
|
else:
|
|
|
|
data.btc_difficulty = 0
|
2024-11-12 13:09:33 +00:00
|
|
|
|
2022-10-10 14:50:15 +00:00
|
|
|
if coin_btc.transactions == 0:
|
|
|
|
data.btc_transcostusd = 0
|
|
|
|
data.btc_transcostntv = 0
|
|
|
|
else:
|
2024-11-12 13:09:33 +00:00
|
|
|
if coin_btc.fee * coin_btc.priceusd / coin_btc.transactions < 0.0001:
|
2022-10-10 14:50:15 +00:00
|
|
|
data.btc_transcostusd = 0
|
|
|
|
data.btc_transcostntv = 0
|
|
|
|
else:
|
2024-11-12 13:09:33 +00:00
|
|
|
data.btc_transcostusd = (
|
|
|
|
coin_btc.fee * coin_btc.priceusd / coin_btc.transactions
|
|
|
|
)
|
|
|
|
data.btc_transcostntv = coin_btc.fee / coin_btc.transactions
|
2022-10-10 14:50:15 +00:00
|
|
|
|
|
|
|
if coin_btc.revenue < 0.000001 or coin_btc.priceusd < 0.001:
|
|
|
|
data.btc_minerrevntv = 0
|
|
|
|
data.btc_minerrevusd = 0
|
|
|
|
data.btc_commitntv = 0
|
|
|
|
data.btc_commitusd = 0
|
|
|
|
data.btc_priceusd = 0
|
|
|
|
data.btc_marketcap = 0
|
|
|
|
else:
|
|
|
|
data.btc_minerrevntv = coin_btc.revenue
|
2024-11-12 13:09:33 +00:00
|
|
|
data.btc_minerrevusd = coin_btc.revenue * coin_btc.priceusd
|
|
|
|
data.btc_commitntv = coin_btc.hashrate / (coin_btc.revenue)
|
|
|
|
data.btc_commitusd = coin_btc.hashrate / (
|
|
|
|
coin_btc.revenue * coin_btc.priceusd
|
|
|
|
)
|
2022-10-10 14:50:15 +00:00
|
|
|
data.btc_priceusd = coin_btc.priceusd
|
2024-11-12 13:09:33 +00:00
|
|
|
data.btc_marketcap = coin_btc.priceusd * coin_btc.supply
|
2022-10-10 14:50:15 +00:00
|
|
|
|
|
|
|
if coin_btc.supply == 0:
|
|
|
|
data.btc_minerrevcap = 0
|
|
|
|
else:
|
2024-11-12 13:09:33 +00:00
|
|
|
data.btc_minerrevcap = 365 * 100 * coin_btc.revenue / coin_btc.supply
|
2022-10-10 14:50:15 +00:00
|
|
|
|
|
|
|
if coin_btc.priceusd:
|
2024-11-12 13:09:33 +00:00
|
|
|
if coin_btc.priceusd / 30 > 0.02:
|
|
|
|
data.btc_return = coin_btc.priceusd / 30
|
2022-10-10 14:50:15 +00:00
|
|
|
else:
|
|
|
|
data.btc_return = 0
|
|
|
|
else:
|
|
|
|
data.btc_return = 0
|
|
|
|
|
|
|
|
if coin_btc.inflation > 0:
|
|
|
|
data.btc_inflation = coin_btc.inflation
|
|
|
|
else:
|
|
|
|
data.btc_inflation = 0
|
|
|
|
if coin_btc.supply > 0:
|
|
|
|
data.btc_supply = coin_btc.supply
|
|
|
|
else:
|
|
|
|
data.btc_supply = 0
|
|
|
|
|
|
|
|
if coin_btc.supply - supply_btc < 0.000001:
|
|
|
|
data.btc_minerfeesntv = 0
|
|
|
|
data.btc_minerfeesusd = 0
|
|
|
|
data.btc_emissionntv = 0
|
|
|
|
else:
|
|
|
|
data.btc_minerfeesntv = coin_btc.revenue - coin_btc.supply + supply_btc
|
2024-11-12 13:09:33 +00:00
|
|
|
data.btc_minerfeesusd = (
|
|
|
|
coin_btc.revenue - coin_btc.supply + supply_btc
|
|
|
|
) * coin_btc.priceusd
|
|
|
|
data.btc_emissionntv = coin_btc.supply - supply_btc
|
|
|
|
|
|
|
|
if (coin_btc.supply - supply_btc) * coin_btc.priceusd < 1000:
|
2022-10-10 14:50:15 +00:00
|
|
|
data.btc_emissionusd = 0
|
|
|
|
else:
|
2024-11-12 13:09:33 +00:00
|
|
|
data.btc_emissionusd = (coin_btc.supply - supply_btc) * coin_btc.priceusd
|
2022-10-10 14:50:15 +00:00
|
|
|
supply_btc = coin_btc.supply
|
|
|
|
|
|
|
|
if count_aux > 1750:
|
2024-11-12 13:09:33 +00:00
|
|
|
coins_xmr = Coin.objects.filter(name="xmr").filter(date=coin_btc.date)
|
2022-10-10 14:50:15 +00:00
|
|
|
if coins_xmr:
|
|
|
|
for coin_xmr in coins_xmr:
|
|
|
|
if coin_xmr.blocksize > 0:
|
|
|
|
data.xmr_blocksize = coin_xmr.blocksize
|
|
|
|
else:
|
|
|
|
data.xmr_blocksize = 0
|
|
|
|
|
|
|
|
if coin_xmr.difficulty > 0:
|
|
|
|
data.xmr_difficulty = coin_xmr.difficulty
|
|
|
|
else:
|
|
|
|
data.xmr_difficulty = 0
|
|
|
|
|
|
|
|
if coin_xmr.priceusd < 0.001:
|
|
|
|
data.xmr_pricebtc = 0
|
|
|
|
data.xmr_priceusd = 0
|
|
|
|
data.xmr_marketcap = 0
|
|
|
|
else:
|
|
|
|
data.xmr_pricebtc = coin_xmr.pricebtc
|
|
|
|
data.xmr_priceusd = coin_xmr.priceusd
|
2024-11-12 13:09:33 +00:00
|
|
|
data.xmr_marketcap = coin_xmr.priceusd * coin_xmr.supply
|
2022-10-10 14:50:15 +00:00
|
|
|
|
|
|
|
if coin_btc.supply > 0 and coin_btc.transactions > 0:
|
|
|
|
data.xmr_transactions = coin_xmr.transactions
|
2024-11-12 13:09:33 +00:00
|
|
|
data.xmr_metcalfeusd = (
|
|
|
|
coin_btc.priceusd
|
|
|
|
* coin_xmr.transactions
|
|
|
|
* coin_xmr.supply
|
|
|
|
/ (coin_btc.supply * coin_btc.transactions)
|
|
|
|
)
|
|
|
|
data.xmr_metcalfebtc = (
|
|
|
|
coin_xmr.transactions
|
|
|
|
* coin_xmr.supply
|
|
|
|
/ (coin_btc.supply * coin_btc.transactions)
|
|
|
|
)
|
2022-10-10 14:50:15 +00:00
|
|
|
else:
|
|
|
|
data.xmr_metcalfeusd = 0
|
|
|
|
data.xmr_metcalfebtc = 0
|
|
|
|
data.xmr_transactions = 0
|
|
|
|
if data.xmr_metcalfeusd < 0.23:
|
|
|
|
data.xmr_metcalfeusd = 0
|
|
|
|
data.xmr_metcalfebtc = 0
|
|
|
|
|
|
|
|
if coin_xmr.transactions == 0:
|
|
|
|
data.xmr_transacpercentage = 0
|
|
|
|
data.xmr_transcostusd = 0
|
|
|
|
data.xmr_transcostntv = 0
|
|
|
|
else:
|
2024-11-12 13:09:33 +00:00
|
|
|
if (
|
|
|
|
coin_xmr.fee * coin_xmr.priceusd / coin_xmr.transactions
|
|
|
|
< 0.0001
|
|
|
|
):
|
2022-10-10 14:50:15 +00:00
|
|
|
data.xmr_transcostusd = 0
|
|
|
|
data.xmr_transcostntv = 0
|
|
|
|
else:
|
2024-11-12 13:09:33 +00:00
|
|
|
data.xmr_transcostusd = (
|
|
|
|
coin_xmr.fee * coin_xmr.priceusd / coin_xmr.transactions
|
|
|
|
)
|
|
|
|
data.xmr_transcostntv = coin_xmr.fee / coin_xmr.transactions
|
2022-10-10 14:50:15 +00:00
|
|
|
if coin_btc.transactions == 0:
|
|
|
|
data.xmr_transacpercentage = 0
|
|
|
|
else:
|
2024-11-12 13:09:33 +00:00
|
|
|
data.xmr_transacpercentage = (
|
|
|
|
coin_xmr.transactions / coin_btc.transactions
|
|
|
|
)
|
2022-10-10 14:50:15 +00:00
|
|
|
|
|
|
|
if coin_xmr.revenue < 0.000001 or coin_xmr.priceusd < 0.001:
|
|
|
|
data.xmr_minerrevntv = 0
|
|
|
|
data.xmr_minerrevusd = 0
|
|
|
|
data.xmr_commitntv = 0
|
|
|
|
data.xmr_commitusd = 0
|
|
|
|
else:
|
|
|
|
data.xmr_minerrevntv = coin_xmr.revenue
|
2024-11-12 13:09:33 +00:00
|
|
|
data.xmr_minerrevusd = coin_xmr.revenue * coin_xmr.priceusd
|
|
|
|
data.xmr_commitntv = coin_xmr.hashrate / (coin_xmr.revenue)
|
|
|
|
data.xmr_commitusd = coin_xmr.hashrate / (
|
|
|
|
coin_xmr.revenue * coin_xmr.priceusd
|
|
|
|
)
|
2022-10-10 14:50:15 +00:00
|
|
|
|
|
|
|
if coin_xmr.supply == 0:
|
|
|
|
data.xmr_minerrevcap = 0
|
|
|
|
else:
|
2024-11-12 13:09:33 +00:00
|
|
|
data.xmr_minerrevcap = (
|
|
|
|
365 * 100 * coin_xmr.revenue / coin_xmr.supply
|
|
|
|
)
|
2022-10-10 14:50:15 +00:00
|
|
|
|
2024-11-12 13:09:33 +00:00
|
|
|
if coin_xmr.priceusd / 5.01 > 0.02:
|
|
|
|
data.xmr_return = coin_xmr.priceusd / 5.01
|
2022-10-10 14:50:15 +00:00
|
|
|
else:
|
|
|
|
data.xmr_return = 0
|
|
|
|
|
|
|
|
if coin_xmr.inflation > 0:
|
|
|
|
data.xmr_inflation = coin_xmr.inflation
|
|
|
|
else:
|
|
|
|
data.xmr_inflation = 0
|
|
|
|
|
|
|
|
if coin_xmr.supply > 0:
|
|
|
|
data.xmr_supply = coin_xmr.supply
|
|
|
|
else:
|
|
|
|
data.xmr_supply = 0
|
|
|
|
|
|
|
|
if coin_xmr.supply - supply_xmr < 0.000001:
|
|
|
|
data.xmr_minerfeesntv = 0
|
|
|
|
data.xmr_minerfeesusd = 0
|
|
|
|
data.xmr_emissionntv = 0
|
|
|
|
else:
|
2024-11-12 13:09:33 +00:00
|
|
|
data.xmr_minerfeesntv = (
|
|
|
|
coin_xmr.revenue - coin_xmr.supply + supply_xmr
|
|
|
|
)
|
|
|
|
data.xmr_minerfeesusd = (
|
|
|
|
coin_xmr.revenue - coin_xmr.supply + supply_xmr
|
|
|
|
) * coin_xmr.priceusd
|
2022-10-10 14:50:15 +00:00
|
|
|
data.xmr_emissionntv = coin_xmr.supply - supply_xmr
|
|
|
|
|
2024-11-12 13:09:33 +00:00
|
|
|
if (coin_xmr.supply - supply_xmr) * coin_xmr.priceusd < 1000:
|
2022-10-10 14:50:15 +00:00
|
|
|
data.xmr_emissionusd = 0
|
|
|
|
else:
|
2024-11-12 13:09:33 +00:00
|
|
|
data.xmr_emissionusd = (
|
|
|
|
coin_xmr.supply - supply_xmr
|
|
|
|
) * coin_xmr.priceusd
|
2022-10-10 14:50:15 +00:00
|
|
|
supply_xmr = coin_xmr.supply
|
|
|
|
else:
|
|
|
|
data.xmr_emissionntv = 0
|
|
|
|
data.xmr_emissionusd = 0
|
|
|
|
data.xmr_inflation = 0
|
|
|
|
data.xmr_supply = 0
|
|
|
|
data.xmr_return = 0
|
|
|
|
data.xmr_minerrevntv = 0
|
|
|
|
data.xmr_minerrevusd = 0
|
|
|
|
data.xmr_minerfeesntv = 0
|
|
|
|
data.xmr_minerfeesusd = 0
|
|
|
|
data.xmr_transcostntv = 0
|
|
|
|
data.xmr_transcostusd = 0
|
|
|
|
data.xmr_commitntv = 0
|
|
|
|
data.xmr_commitusd = 0
|
|
|
|
data.xmr_metcalfeusd = 0
|
|
|
|
data.xmr_metcalfebtc = 0
|
|
|
|
data.xmr_pricebtc = 0
|
|
|
|
data.xmr_priceusd = 0
|
|
|
|
data.xmr_transacpercentage = 0
|
|
|
|
data.xmr_marketcap = 0
|
|
|
|
data.xmr_minerrevcap = 0
|
|
|
|
data.xmr_transactions = 0
|
|
|
|
data.xmr_blocksize = 0
|
|
|
|
data.xmr_difficulty = 0
|
|
|
|
|
2024-11-12 13:09:33 +00:00
|
|
|
coins_dash = Coin.objects.filter(name="dash").filter(date=coin_btc.date)
|
2022-10-10 14:50:15 +00:00
|
|
|
if coins_dash:
|
|
|
|
for coin_dash in coins_dash:
|
|
|
|
if coin_dash.transactions > 0:
|
|
|
|
data.dash_transactions = coin_dash.transactions
|
|
|
|
else:
|
|
|
|
data.dash_transactions = 0
|
|
|
|
if coin_dash.inflation > 0:
|
|
|
|
data.dash_inflation = coin_dash.inflation
|
|
|
|
else:
|
|
|
|
data.dash_inflation = 0
|
|
|
|
|
|
|
|
if coin_dash.priceusd > 0:
|
2024-11-12 13:09:33 +00:00
|
|
|
data.dash_marketcap = coin_dash.priceusd * coin_dash.supply
|
2022-10-10 14:50:15 +00:00
|
|
|
else:
|
|
|
|
data.dash_marketcap = 0
|
|
|
|
else:
|
|
|
|
data.dash_inflation = 0
|
|
|
|
data.dash_marketcap = 0
|
|
|
|
data.dash_transactions = 0
|
|
|
|
else:
|
|
|
|
data.xmr_emissionntv = 0
|
|
|
|
data.xmr_emissionusd = 0
|
|
|
|
data.xmr_inflation = 0
|
|
|
|
data.xmr_supply = 0
|
|
|
|
data.xmr_return = 0
|
|
|
|
data.dash_inflation = 0
|
|
|
|
data.dash_marketcap = 0
|
|
|
|
data.dash_transactions = 0
|
|
|
|
data.xmr_marketcap = 0
|
|
|
|
data.xmr_minerrevntv = 0
|
|
|
|
data.xmr_minerrevusd = 0
|
|
|
|
data.xmr_minerfeesntv = 0
|
|
|
|
data.xmr_minerfeesusd = 0
|
|
|
|
data.xmr_transcostntv = 0
|
|
|
|
data.xmr_transcostusd = 0
|
|
|
|
data.xmr_commitntv = 0
|
|
|
|
data.xmr_commitusd = 0
|
|
|
|
data.xmr_metcalfeusd = 0
|
|
|
|
data.xmr_metcalfebtc = 0
|
|
|
|
data.xmr_pricebtc = 0
|
|
|
|
data.xmr_priceusd = 0
|
|
|
|
data.xmr_transacpercentage = 0
|
|
|
|
data.xmr_minerrevcap = 0
|
|
|
|
data.xmr_transactions = 0
|
|
|
|
data.xmr_blocksize = 0
|
|
|
|
data.xmr_difficulty = 0
|
|
|
|
|
|
|
|
if count_aux > 2800:
|
2024-11-12 13:09:33 +00:00
|
|
|
coins_zcash = Coin.objects.filter(name="zec").filter(date=coin_btc.date)
|
2022-10-10 14:50:15 +00:00
|
|
|
if coins_zcash:
|
|
|
|
for coin_zcash in coins_zcash:
|
|
|
|
if coin_zcash.transactions > 0:
|
|
|
|
data.zcash_transactions = coin_zcash.transactions
|
|
|
|
else:
|
|
|
|
data.zcash_transactions = 0
|
|
|
|
if coin_zcash.inflation > 0:
|
|
|
|
data.zcash_inflation = coin_zcash.inflation
|
|
|
|
else:
|
|
|
|
data.zcash_inflation = 0
|
2024-11-12 13:09:33 +00:00
|
|
|
|
2022-10-10 14:50:15 +00:00
|
|
|
if coin_zcash.priceusd > 0:
|
2024-11-12 13:09:33 +00:00
|
|
|
data.zcash_marketcap = coin_zcash.priceusd * coin_zcash.supply
|
2022-10-10 14:50:15 +00:00
|
|
|
else:
|
|
|
|
data.zcash_marketcap = 0
|
|
|
|
else:
|
|
|
|
data.zcash_inflation = 0
|
|
|
|
data.zcash_marketcap = 0
|
|
|
|
data.zcash_transactions = 0
|
|
|
|
else:
|
|
|
|
data.zcash_inflation = 0
|
|
|
|
data.zcash_marketcap = 0
|
|
|
|
data.zcash_transactions = 0
|
|
|
|
|
|
|
|
if count_aux > 3600:
|
2024-11-12 13:09:33 +00:00
|
|
|
coins_grin = Coin.objects.filter(name="grin").filter(date=coin_btc.date)
|
2022-10-10 14:50:15 +00:00
|
|
|
if coins_grin:
|
|
|
|
for coin_grin in coins_grin:
|
|
|
|
if coin_grin.transactions > 0:
|
|
|
|
data.grin_transactions = coin_grin.transactions
|
|
|
|
else:
|
|
|
|
data.grin_transactions = 0
|
|
|
|
if coin_grin.inflation > 0:
|
|
|
|
data.grin_inflation = coin_grin.inflation
|
|
|
|
else:
|
|
|
|
data.grin_inflation = 0
|
|
|
|
|
|
|
|
if coin_grin.priceusd > 0:
|
2024-11-12 13:09:33 +00:00
|
|
|
data.grin_marketcap = coin_grin.priceusd * coin_grin.supply
|
2022-10-10 14:50:15 +00:00
|
|
|
else:
|
|
|
|
data.grin_marketcap = 0
|
|
|
|
else:
|
|
|
|
data.grin_inflation = 0
|
|
|
|
data.grin_marketcap = 0
|
|
|
|
data.grin_transactions = 0
|
|
|
|
else:
|
|
|
|
data.grin_inflation = 0
|
|
|
|
data.grin_marketcap = 0
|
|
|
|
data.grin_transactions = 0
|
2024-11-12 13:09:33 +00:00
|
|
|
|
|
|
|
socials = Social.objects.filter(name="Bitcoin").filter(date=coin_btc.date)
|
2022-10-10 14:50:15 +00:00
|
|
|
if socials:
|
|
|
|
for social in socials:
|
|
|
|
data.btc_subscriberCount = social.subscriberCount
|
|
|
|
data.btc_commentsPerHour = social.commentsPerHour
|
|
|
|
data.btc_postsPerHour = social.postsPerHour
|
|
|
|
else:
|
|
|
|
data.btc_subscriberCount = 0
|
|
|
|
data.btc_commentsPerHour = 0
|
|
|
|
data.btc_postsPerHour = 0
|
2024-11-12 13:09:33 +00:00
|
|
|
|
|
|
|
socials = Social.objects.filter(name="Monero").filter(date=coin_btc.date)
|
2022-10-10 14:50:15 +00:00
|
|
|
if socials:
|
|
|
|
for social in socials:
|
|
|
|
data.xmr_subscriberCount = social.subscriberCount
|
|
|
|
data.xmr_commentsPerHour = social.commentsPerHour
|
|
|
|
data.xmr_postsPerHour = social.postsPerHour
|
|
|
|
else:
|
|
|
|
data.xmr_subscriberCount = 0
|
|
|
|
data.xmr_commentsPerHour = 0
|
|
|
|
data.xmr_postsPerHour = 0
|
|
|
|
|
2024-11-12 13:09:33 +00:00
|
|
|
socials = Social.objects.filter(name="CryptoCurrency").filter(
|
|
|
|
date=coin_btc.date
|
|
|
|
)
|
2022-10-10 14:50:15 +00:00
|
|
|
if socials:
|
|
|
|
for social in socials:
|
|
|
|
data.crypto_subscriberCount = social.subscriberCount
|
|
|
|
data.crypto_commentsPerHour = social.commentsPerHour
|
|
|
|
data.crypto_postsPerHour = social.postsPerHour
|
|
|
|
else:
|
|
|
|
data.crypto_subscriberCount = 0
|
|
|
|
data.crypto_commentsPerHour = 0
|
|
|
|
data.crypto_postsPerHour = 0
|
|
|
|
|
|
|
|
data.save()
|
|
|
|
count += 1
|
|
|
|
|
2024-11-12 13:09:33 +00:00
|
|
|
message = "Total of " + str(count) + " data generated"
|
|
|
|
context = {"message": message}
|
|
|
|
return render(request, "charts/maintenance.html", context)
|
|
|
|
|
2022-10-10 14:50:15 +00:00
|
|
|
|
2022-09-17 21:36:35 +00:00
|
|
|
####################################################################################
|
|
|
|
# Views
|
|
|
|
####################################################################################
|
2022-09-15 02:51:27 +00:00
|
|
|
async def index(request):
|
2024-11-12 13:09:33 +00:00
|
|
|
coins = Coin.objects.filter(name="xmr").order_by("-date")
|
2023-10-01 04:57:53 +00:00
|
|
|
count = 0
|
|
|
|
for coin in coins:
|
|
|
|
count += 1
|
2024-11-12 13:09:33 +00:00
|
|
|
if count < 200:
|
2023-10-01 04:57:53 +00:00
|
|
|
if coin.supply < 18000000:
|
|
|
|
coin.supply += 499736
|
|
|
|
print(coin.date)
|
|
|
|
coin.save()
|
|
|
|
|
2024-11-12 13:09:33 +00:00
|
|
|
coin = list(Coin.objects.order_by("-date"))[0]
|
|
|
|
if not (coin):
|
|
|
|
message = "Website under maintenance. Check back in a few minutes"
|
|
|
|
context = {"message": message}
|
|
|
|
return render(request, "charts/maintenance.html", context)
|
2022-09-15 20:10:18 +00:00
|
|
|
|
2022-09-16 20:10:31 +00:00
|
|
|
now = int(datetime.datetime.now().strftime("%H"))
|
2024-11-12 13:09:33 +00:00
|
|
|
yesterday = datetime.datetime.strftime(date.today() - timedelta(1), "%Y-%m-%d")
|
|
|
|
date_aux = datetime.datetime.strftime(date.today() - timedelta(2), "%Y-%m-%d")
|
2022-09-16 20:10:31 +00:00
|
|
|
update_xmr = False
|
|
|
|
update_btc = False
|
2024-11-12 13:09:33 +00:00
|
|
|
update_socials = False # TODO: What is this for? # noqa: F841
|
2022-10-01 00:19:09 +00:00
|
|
|
update_data = False
|
2022-09-15 20:10:18 +00:00
|
|
|
|
2023-10-04 01:00:29 +00:00
|
|
|
if now > 2 and now < 12:
|
2022-09-16 20:10:31 +00:00
|
|
|
try:
|
2024-11-12 13:09:33 +00:00
|
|
|
coin_xmr = Coin.objects.filter(name="xmr").get(date=yesterday)
|
2022-09-16 20:10:31 +00:00
|
|
|
if coin_xmr:
|
2024-11-12 13:09:33 +00:00
|
|
|
print("xmr found yesterday")
|
|
|
|
if (
|
|
|
|
coin_xmr.priceusd > 1
|
|
|
|
and coin_xmr.transactions > 0
|
|
|
|
and coin_xmr.inflation > 0
|
|
|
|
):
|
|
|
|
print("no need to update xmr")
|
2022-09-16 20:10:31 +00:00
|
|
|
update_xmr = False
|
|
|
|
else:
|
2024-11-12 13:09:33 +00:00
|
|
|
print("will update xmr")
|
2022-09-16 20:10:31 +00:00
|
|
|
coin_xmr.delete()
|
|
|
|
update_xmr = True
|
|
|
|
else:
|
2024-11-12 13:09:33 +00:00
|
|
|
print("no xmr found yesterday - 1")
|
2022-09-16 20:10:31 +00:00
|
|
|
update_xmr = True
|
2024-11-12 13:09:33 +00:00
|
|
|
except Exception:
|
|
|
|
print("no xmr found yesterday - 2")
|
2022-09-16 20:10:31 +00:00
|
|
|
update_xmr = True
|
2022-09-24 11:08:00 +00:00
|
|
|
if now > 6 and now < 12:
|
2022-09-16 20:10:31 +00:00
|
|
|
try:
|
2024-11-12 13:09:33 +00:00
|
|
|
coin_btc = list(Coin.objects.filter(name="btc").filter(date=yesterday))[0]
|
|
|
|
coin_zec = list(Coin.objects.filter(name="zec").filter(date=yesterday))[0]
|
|
|
|
coin_dash = list(Coin.objects.filter(name="dash").filter(date=yesterday))[0]
|
|
|
|
coin_grin = list(Coin.objects.filter(name="grin").filter(date=yesterday))[0]
|
2022-09-18 13:11:33 +00:00
|
|
|
if coin_btc and coin_zec and coin_dash and coin_grin:
|
2024-11-12 13:09:33 +00:00
|
|
|
print("coins found yesterday")
|
|
|
|
if (
|
|
|
|
coin_btc.transactions > 0
|
|
|
|
and coin_btc.inflation > 0
|
|
|
|
and coin_zec.supply > 0
|
|
|
|
and coin_dash.supply > 0
|
|
|
|
and coin_grin.supply > 0
|
|
|
|
):
|
|
|
|
print("no need to update coins")
|
2022-09-16 20:10:31 +00:00
|
|
|
update_btc = False
|
|
|
|
else:
|
2024-11-12 13:09:33 +00:00
|
|
|
print("will update coins")
|
2022-09-16 20:10:31 +00:00
|
|
|
coin_btc.delete()
|
2022-09-18 13:11:33 +00:00
|
|
|
coin_zec.delete()
|
|
|
|
coin_dash.delete()
|
|
|
|
coin_grin.delete()
|
2022-09-16 20:10:31 +00:00
|
|
|
update_btc = True
|
|
|
|
else:
|
2024-11-12 13:09:33 +00:00
|
|
|
print("no coins found yesterday - 1")
|
2022-09-16 20:10:31 +00:00
|
|
|
update_btc = True
|
2024-11-12 13:09:33 +00:00
|
|
|
except Exception:
|
|
|
|
print("no coins found yesterday - 2")
|
|
|
|
update_btc = True
|
2022-09-30 11:38:49 +00:00
|
|
|
try:
|
|
|
|
data = list(DailyData.objects.filter(date=yesterday))[0]
|
|
|
|
if data:
|
2024-11-12 13:09:33 +00:00
|
|
|
print("data found yesterday")
|
2022-09-30 11:38:49 +00:00
|
|
|
update_data = False
|
|
|
|
else:
|
2024-11-12 13:09:33 +00:00
|
|
|
print("no data found yesterday - 1")
|
2022-09-30 11:38:49 +00:00
|
|
|
update_data = True
|
2024-11-12 13:09:33 +00:00
|
|
|
except Exception:
|
|
|
|
print("no data found yesterday - 2")
|
|
|
|
update_data = True
|
2022-09-23 20:38:20 +00:00
|
|
|
|
2022-09-19 02:12:23 +00:00
|
|
|
try:
|
2024-11-12 13:09:33 +00:00
|
|
|
coin_xmr = Coin.objects.filter(name="xmr").get(date=date_aux)
|
|
|
|
except Exception:
|
|
|
|
coin_xmr = list(Coin.objects.filter(name="xmr").order_by("-date"))[0]
|
2022-09-15 02:51:27 +00:00
|
|
|
|
2023-10-04 01:02:34 +00:00
|
|
|
if update_xmr:
|
2024-11-12 13:09:33 +00:00
|
|
|
count = get_history_function("xmr", yesterday, yesterday)
|
2023-10-08 21:39:47 +00:00
|
|
|
await asynchronous.update_xmr_data(yesterday, coin_xmr)
|
2022-09-16 20:10:31 +00:00
|
|
|
|
|
|
|
if update_btc:
|
2022-09-17 03:04:08 +00:00
|
|
|
await asynchronous.update_others_data(yesterday)
|
2022-09-30 11:38:49 +00:00
|
|
|
|
|
|
|
if update_data:
|
2022-09-17 03:04:08 +00:00
|
|
|
synchronous.update_database(yesterday, yesterday)
|
2022-05-29 14:03:17 +00:00
|
|
|
|
2022-12-25 17:59:02 +00:00
|
|
|
if True:
|
2024-11-13 09:08:39 +00:00
|
|
|
enabled = synchronous.get_binance_withdrawal( # TODO: And... then... what? # noqa: F841
|
2024-11-12 13:09:33 +00:00
|
|
|
"Monero"
|
2024-11-13 09:08:39 +00:00
|
|
|
)
|
2024-11-12 13:09:33 +00:00
|
|
|
|
|
|
|
return HttpResponseRedirect(reverse("charts:sfmodel"))
|
2022-12-25 17:59:02 +00:00
|
|
|
|
2022-05-29 14:03:17 +00:00
|
|
|
|
|
|
|
def social(request):
|
2024-11-12 13:09:33 +00:00
|
|
|
data = DailyData.objects.order_by("date")
|
2022-05-29 14:03:17 +00:00
|
|
|
dates = []
|
2022-06-08 20:23:10 +00:00
|
|
|
dates2 = []
|
2022-05-29 14:03:17 +00:00
|
|
|
social_xmr = []
|
|
|
|
social_crypto = []
|
|
|
|
social_btc = []
|
|
|
|
last_xmr = 0
|
|
|
|
last_btc = 0
|
|
|
|
last_crypto = 0
|
2022-06-08 20:23:10 +00:00
|
|
|
|
|
|
|
for item in data:
|
2024-11-12 13:09:33 +00:00
|
|
|
dates.append(datetime.datetime.strftime(item.date, "%Y-%m-%d"))
|
|
|
|
dates2.append(datetime.datetime.strftime(item.date, "%Y-%m-%d"))
|
2022-06-08 20:23:10 +00:00
|
|
|
|
|
|
|
if item.btc_subscriberCount > last_btc:
|
|
|
|
social_btc.append(item.btc_subscriberCount)
|
|
|
|
last_btc = item.btc_subscriberCount
|
2022-05-29 14:03:17 +00:00
|
|
|
else:
|
2022-06-08 20:23:10 +00:00
|
|
|
social_btc.append(last_btc)
|
|
|
|
|
|
|
|
if item.xmr_subscriberCount > last_xmr:
|
|
|
|
social_xmr.append(item.xmr_subscriberCount)
|
|
|
|
last_xmr = item.xmr_subscriberCount
|
2022-05-29 14:03:17 +00:00
|
|
|
else:
|
|
|
|
social_xmr.append(last_xmr)
|
|
|
|
|
2022-06-08 20:23:10 +00:00
|
|
|
if item.crypto_subscriberCount > last_crypto:
|
|
|
|
social_crypto.append(item.crypto_subscriberCount)
|
|
|
|
last_crypto = item.crypto_subscriberCount
|
|
|
|
else:
|
|
|
|
social_crypto.append(last_crypto)
|
|
|
|
|
2024-11-12 13:09:33 +00:00
|
|
|
last_xmr = locale.format("%.0f", last_xmr, grouping=True)
|
|
|
|
last_btc = locale.format("%.0f", last_btc, grouping=True)
|
|
|
|
last_crypto = locale.format("%.0f", last_crypto, grouping=True)
|
|
|
|
|
|
|
|
context = {
|
|
|
|
"dates": dates,
|
|
|
|
"dates2": dates2,
|
|
|
|
"social_xmr": social_xmr,
|
|
|
|
"social_crypto": social_crypto,
|
|
|
|
"social_btc": social_btc,
|
|
|
|
"last_xmr": last_xmr,
|
|
|
|
"last_btc": last_btc,
|
|
|
|
"last_crypto": last_crypto,
|
|
|
|
}
|
|
|
|
return render(request, "charts/social.html", context)
|
|
|
|
|
|
|
|
|
|
|
|
def social2(request):
|
|
|
|
data = DailyData.objects.order_by("date")
|
2022-05-29 14:03:17 +00:00
|
|
|
dates = []
|
|
|
|
social_btc = []
|
|
|
|
last_btc = 0
|
|
|
|
dates2 = []
|
|
|
|
social_xmr = []
|
|
|
|
last_xmr = 0
|
|
|
|
N = 1
|
|
|
|
|
2022-06-08 20:23:10 +00:00
|
|
|
for item in data:
|
2024-11-12 13:09:33 +00:00
|
|
|
dates.append(datetime.datetime.strftime(item.date, "%Y-%m-%d"))
|
|
|
|
dates2.append(datetime.datetime.strftime(item.date, "%Y-%m-%d"))
|
2022-06-08 20:23:10 +00:00
|
|
|
|
|
|
|
if item.btc_subscriberCount > 0:
|
|
|
|
if item.btc_marketcap > 10000:
|
2024-11-12 13:09:33 +00:00
|
|
|
last_btc = ((item.btc_marketcap) ** N) / item.btc_subscriberCount
|
2022-06-08 20:23:10 +00:00
|
|
|
social_btc.append(last_btc)
|
|
|
|
else:
|
2024-11-12 13:09:33 +00:00
|
|
|
social_btc.append("")
|
2022-06-08 20:23:10 +00:00
|
|
|
else:
|
|
|
|
social_btc.append(last_btc)
|
|
|
|
|
|
|
|
if item.xmr_subscriberCount > 0:
|
|
|
|
if item.xmr_marketcap > 10000:
|
2024-11-12 13:09:33 +00:00
|
|
|
last_xmr = ((item.xmr_marketcap) ** N) / item.xmr_subscriberCount
|
2022-06-08 20:23:10 +00:00
|
|
|
social_xmr.append(last_xmr)
|
|
|
|
else:
|
2024-11-12 13:09:33 +00:00
|
|
|
social_xmr.append("")
|
2022-06-08 20:23:10 +00:00
|
|
|
|
|
|
|
else:
|
|
|
|
social_xmr.append(last_xmr)
|
|
|
|
|
2024-11-12 13:09:33 +00:00
|
|
|
last_xmr = "$" + locale.format("%.0f", last_xmr, grouping=True)
|
|
|
|
last_btc = "$" + locale.format("%.0f", last_btc, grouping=True)
|
|
|
|
|
|
|
|
context = {
|
|
|
|
"dates": dates,
|
|
|
|
"dates2": dates2,
|
|
|
|
"social_btc": social_btc,
|
|
|
|
"social_xmr": social_xmr,
|
|
|
|
"last_xmr": last_xmr,
|
|
|
|
"last_btc": last_btc,
|
|
|
|
}
|
|
|
|
return render(request, "charts/social2.html", context)
|
2022-09-19 02:38:30 +00:00
|
|
|
|
2022-05-29 14:03:17 +00:00
|
|
|
|
|
|
|
def social3(request):
|
2024-11-12 13:09:33 +00:00
|
|
|
data = DailyData.objects.order_by("date")
|
2022-06-08 20:23:10 +00:00
|
|
|
|
2022-05-29 14:03:17 +00:00
|
|
|
dates = []
|
|
|
|
social_xmr = []
|
|
|
|
social_crypto = []
|
2022-06-08 20:23:10 +00:00
|
|
|
last_xmr = 0
|
|
|
|
last_crypto = 0
|
2022-05-29 14:03:17 +00:00
|
|
|
|
2022-06-08 20:23:10 +00:00
|
|
|
for item in data:
|
2024-11-12 13:09:33 +00:00
|
|
|
dates.append(datetime.datetime.strftime(item.date, "%Y-%m-%d"))
|
2022-06-08 20:23:10 +00:00
|
|
|
|
|
|
|
if item.btc_subscriberCount > 0 and item.xmr_subscriberCount > 0:
|
2024-11-12 13:09:33 +00:00
|
|
|
last_xmr = 100 * (item.xmr_subscriberCount / item.btc_subscriberCount)
|
2022-06-08 20:23:10 +00:00
|
|
|
social_xmr.append(last_xmr)
|
2022-05-29 14:03:17 +00:00
|
|
|
else:
|
|
|
|
social_xmr.append(last_xmr)
|
2022-06-08 20:23:10 +00:00
|
|
|
|
|
|
|
if item.btc_subscriberCount > 0 and item.crypto_subscriberCount > 0:
|
2024-11-12 13:09:33 +00:00
|
|
|
last_crypto = 100 * (item.crypto_subscriberCount / item.btc_subscriberCount)
|
2022-06-08 20:23:10 +00:00
|
|
|
social_crypto.append(last_crypto)
|
2022-05-29 14:03:17 +00:00
|
|
|
else:
|
|
|
|
social_crypto.append(last_crypto)
|
|
|
|
|
2024-11-12 13:09:33 +00:00
|
|
|
last_xmr = locale.format("%.1f", last_xmr, grouping=True) + "%"
|
|
|
|
last_crypto = locale.format("%.1f", last_crypto, grouping=True) + "%"
|
|
|
|
|
|
|
|
context = {
|
|
|
|
"dates": dates,
|
|
|
|
"social_xmr": social_xmr,
|
|
|
|
"social_crypto": social_crypto,
|
|
|
|
"last_xmr": last_xmr,
|
|
|
|
"last_crypto": last_crypto,
|
|
|
|
}
|
|
|
|
return render(request, "charts/social3.html", context)
|
2022-09-19 02:38:30 +00:00
|
|
|
|
2022-05-29 14:03:17 +00:00
|
|
|
|
|
|
|
def social4(request):
|
2024-11-12 13:09:33 +00:00
|
|
|
data = DailyData.objects.order_by("date")
|
2022-05-29 14:03:17 +00:00
|
|
|
dates = []
|
2022-06-08 20:23:10 +00:00
|
|
|
dates2 = []
|
2022-05-29 14:03:17 +00:00
|
|
|
social_xmr = []
|
|
|
|
social_crypto = []
|
|
|
|
social_btc = []
|
|
|
|
last_xmr = 0
|
|
|
|
last_btc = 0
|
|
|
|
last_crypto = 0
|
2022-06-08 20:23:10 +00:00
|
|
|
|
|
|
|
for item in data:
|
2024-11-12 13:09:33 +00:00
|
|
|
dates.append(datetime.datetime.strftime(item.date, "%Y-%m-%d"))
|
|
|
|
dates2.append(datetime.datetime.strftime(item.date, "%Y-%m-%d"))
|
2022-06-08 20:23:10 +00:00
|
|
|
|
|
|
|
if item.btc_subscriberCount > last_btc:
|
|
|
|
social_btc.append(item.btc_subscriberCount)
|
|
|
|
last_btc = item.btc_subscriberCount
|
2022-05-29 14:03:17 +00:00
|
|
|
else:
|
2022-06-08 20:23:10 +00:00
|
|
|
social_btc.append(last_btc)
|
|
|
|
|
|
|
|
if item.xmr_subscriberCount > last_xmr:
|
|
|
|
social_xmr.append(item.xmr_subscriberCount)
|
|
|
|
last_xmr = item.xmr_subscriberCount
|
2022-05-29 14:03:17 +00:00
|
|
|
else:
|
|
|
|
social_xmr.append(last_xmr)
|
|
|
|
|
2022-06-08 20:23:10 +00:00
|
|
|
if item.crypto_subscriberCount > last_crypto:
|
|
|
|
social_crypto.append(item.crypto_subscriberCount)
|
|
|
|
last_crypto = item.crypto_subscriberCount
|
|
|
|
else:
|
|
|
|
social_crypto.append(last_crypto)
|
|
|
|
|
2022-05-29 14:03:17 +00:00
|
|
|
N = 30
|
2024-11-12 13:09:33 +00:00
|
|
|
last_btc = ""
|
2022-05-29 14:03:17 +00:00
|
|
|
speed_btc = []
|
|
|
|
for i in range(len(social_btc)):
|
|
|
|
if i < N:
|
|
|
|
speed_btc.append(last_btc)
|
|
|
|
else:
|
2024-11-12 13:09:33 +00:00
|
|
|
if social_btc[i - N] != 0 and social_btc[i] - social_btc[i - N] != 0:
|
|
|
|
last_btc = 100 * (social_btc[i] - social_btc[i - N]) / social_btc[i - N]
|
2022-05-29 14:03:17 +00:00
|
|
|
if last_btc < 0.2:
|
|
|
|
last_btc = 0.2
|
|
|
|
if last_btc > 1000:
|
2024-11-12 13:09:33 +00:00
|
|
|
last_btc = ""
|
2022-05-29 14:03:17 +00:00
|
|
|
else:
|
2024-11-12 13:09:33 +00:00
|
|
|
last_btc = ""
|
2022-05-29 14:03:17 +00:00
|
|
|
speed_btc.append(last_btc)
|
|
|
|
|
2024-11-12 13:09:33 +00:00
|
|
|
last_btc = ""
|
2022-05-29 14:03:17 +00:00
|
|
|
newcomers_btc = []
|
|
|
|
for i in range(len(social_btc)):
|
|
|
|
if i < N:
|
|
|
|
newcomers_btc.append(last_btc)
|
|
|
|
else:
|
2024-11-12 13:09:33 +00:00
|
|
|
last_btc = social_btc[i] - social_btc[i - N]
|
2022-05-29 14:03:17 +00:00
|
|
|
if last_btc < 10:
|
2024-11-12 13:09:33 +00:00
|
|
|
last_btc = ""
|
2022-05-29 14:03:17 +00:00
|
|
|
newcomers_btc.append(last_btc)
|
|
|
|
|
2024-11-12 13:09:33 +00:00
|
|
|
last_crypto = ""
|
2022-05-29 14:03:17 +00:00
|
|
|
speed_crypto = []
|
|
|
|
for i in range(len(social_crypto)):
|
|
|
|
if i < N:
|
|
|
|
speed_crypto.append(last_crypto)
|
|
|
|
else:
|
2024-11-12 13:09:33 +00:00
|
|
|
if (
|
|
|
|
social_crypto[i - N] != 0
|
|
|
|
and social_crypto[i] - social_crypto[i - N] != 0
|
|
|
|
):
|
|
|
|
last_crypto = (
|
|
|
|
100
|
|
|
|
* (social_crypto[i] - social_crypto[i - N])
|
|
|
|
/ social_crypto[i - N]
|
|
|
|
)
|
2022-05-29 14:03:17 +00:00
|
|
|
if last_crypto < 0.2:
|
|
|
|
last_crypto = 0.2
|
|
|
|
if last_crypto > 1000:
|
2024-11-12 13:09:33 +00:00
|
|
|
last_crypto = ""
|
2022-05-29 14:03:17 +00:00
|
|
|
else:
|
2024-11-12 13:09:33 +00:00
|
|
|
last_crypto = ""
|
2022-05-29 14:03:17 +00:00
|
|
|
speed_crypto.append(last_crypto)
|
|
|
|
|
2024-11-12 13:09:33 +00:00
|
|
|
last_crypto = ""
|
2022-05-29 14:03:17 +00:00
|
|
|
newcomers_crypto = []
|
|
|
|
for i in range(len(social_crypto)):
|
|
|
|
if i < N:
|
|
|
|
newcomers_crypto.append(last_crypto)
|
|
|
|
else:
|
2024-11-12 13:09:33 +00:00
|
|
|
last_crypto = social_crypto[i] - social_crypto[i - N]
|
2022-05-29 14:03:17 +00:00
|
|
|
if last_crypto < 2:
|
2024-11-12 13:09:33 +00:00
|
|
|
last_crypto = ""
|
2022-05-29 14:03:17 +00:00
|
|
|
newcomers_crypto.append(last_crypto)
|
|
|
|
|
2024-11-12 13:09:33 +00:00
|
|
|
last_xmr = ""
|
2022-05-29 14:03:17 +00:00
|
|
|
speed_xmr = []
|
|
|
|
for i in range(len(social_xmr)):
|
|
|
|
if i < N:
|
|
|
|
speed_xmr.append(last_xmr)
|
|
|
|
else:
|
2024-11-12 13:09:33 +00:00
|
|
|
if social_xmr[i - N] != 0 and social_xmr[i] - social_xmr[i - N] != 0:
|
|
|
|
last_xmr = 100 * (social_xmr[i] - social_xmr[i - N]) / social_xmr[i - N]
|
2022-05-29 14:03:17 +00:00
|
|
|
if last_xmr < 0.2:
|
|
|
|
last_xmr = 0.2
|
|
|
|
if last_xmr > 1000:
|
2024-11-12 13:09:33 +00:00
|
|
|
last_xmr = ""
|
2022-05-29 14:03:17 +00:00
|
|
|
else:
|
2024-11-12 13:09:33 +00:00
|
|
|
last_xmr = ""
|
2022-05-29 14:03:17 +00:00
|
|
|
speed_xmr.append(last_xmr)
|
|
|
|
|
2024-11-12 13:09:33 +00:00
|
|
|
last_xmr = ""
|
2022-05-29 14:03:17 +00:00
|
|
|
newcomers_xmr = []
|
|
|
|
for i in range(len(social_xmr)):
|
|
|
|
if i < N:
|
|
|
|
newcomers_xmr.append(last_xmr)
|
|
|
|
else:
|
2024-11-12 13:09:33 +00:00
|
|
|
last_xmr = social_xmr[i] - social_xmr[i - N]
|
2022-05-29 14:03:17 +00:00
|
|
|
if last_xmr < 0:
|
2024-11-12 13:09:33 +00:00
|
|
|
last_xmr = ""
|
2022-05-29 14:03:17 +00:00
|
|
|
newcomers_xmr.append(last_xmr)
|
|
|
|
|
2023-10-01 04:57:53 +00:00
|
|
|
try:
|
2024-11-12 13:09:33 +00:00
|
|
|
last_xmr = locale.format("%.0f", last_xmr, grouping=True)
|
|
|
|
last_btc = locale.format("%.0f", last_btc, grouping=True)
|
|
|
|
last_crypto = locale.format("%.0f", last_crypto, grouping=True)
|
|
|
|
except Exception:
|
2023-10-01 04:57:53 +00:00
|
|
|
last_xmr = 0
|
|
|
|
last_btc = 0
|
|
|
|
last_crypto = 0
|
2022-09-19 02:38:30 +00:00
|
|
|
|
2024-11-12 13:09:33 +00:00
|
|
|
context = {
|
|
|
|
"dates": dates,
|
|
|
|
"speed_xmr": speed_xmr,
|
|
|
|
"speed_crypto": speed_crypto,
|
|
|
|
"speed_btc": speed_btc,
|
|
|
|
"newcomers_xmr": newcomers_xmr,
|
|
|
|
"newcomers_btc": newcomers_btc,
|
|
|
|
"newcomers_crypto": newcomers_crypto,
|
|
|
|
"last_xmr": last_xmr,
|
|
|
|
"last_btc": last_btc,
|
|
|
|
"last_crypto": last_crypto,
|
|
|
|
}
|
|
|
|
return render(request, "charts/social4.html", context)
|
|
|
|
|
2022-05-29 14:03:17 +00:00
|
|
|
|
|
|
|
def social5(request):
|
2024-11-12 13:09:33 +00:00
|
|
|
data = DailyData.objects.order_by("date")
|
2022-05-29 14:03:17 +00:00
|
|
|
transactions = []
|
|
|
|
dates = []
|
|
|
|
social_xmr = []
|
2022-06-08 20:23:10 +00:00
|
|
|
now_transactions = 0
|
2022-05-29 14:03:17 +00:00
|
|
|
last_xmr = 0
|
2022-06-08 20:23:10 +00:00
|
|
|
|
2022-06-09 19:23:30 +00:00
|
|
|
for item in data:
|
2024-11-12 13:09:33 +00:00
|
|
|
dates.append(datetime.datetime.strftime(item.date, "%Y-%m-%d"))
|
2022-06-09 19:23:30 +00:00
|
|
|
|
|
|
|
if item.xmr_subscriberCount > last_xmr:
|
|
|
|
social_xmr.append(item.xmr_subscriberCount)
|
|
|
|
last_xmr = item.xmr_subscriberCount
|
|
|
|
else:
|
|
|
|
social_xmr.append(last_xmr)
|
|
|
|
|
|
|
|
if item.xmr_transactions > 300:
|
|
|
|
now_transactions = item.xmr_transactions
|
|
|
|
transactions.append(now_transactions)
|
|
|
|
else:
|
2024-11-12 13:09:33 +00:00
|
|
|
transactions.append("")
|
2022-06-09 19:23:30 +00:00
|
|
|
|
2024-11-12 13:09:33 +00:00
|
|
|
last_xmr = locale.format("%.0f", last_xmr, grouping=True)
|
|
|
|
now_transactions = locale.format("%.0f", now_transactions, grouping=True)
|
|
|
|
|
|
|
|
context = {
|
|
|
|
"dates": dates,
|
|
|
|
"social_xmr": social_xmr,
|
|
|
|
"last_xmr": last_xmr,
|
|
|
|
"now_transactions": now_transactions,
|
|
|
|
"transactions": transactions,
|
|
|
|
}
|
|
|
|
return render(request, "charts/social5.html", context)
|
2022-09-19 02:38:30 +00:00
|
|
|
|
2022-05-29 14:03:17 +00:00
|
|
|
|
|
|
|
def social6(request):
|
2024-11-12 13:09:33 +00:00
|
|
|
data = DailyData.objects.order_by("date")
|
2022-05-29 14:03:17 +00:00
|
|
|
dates = []
|
|
|
|
social_xmr = []
|
|
|
|
social_crypto = []
|
|
|
|
social_btc = []
|
|
|
|
last_xmr = 0
|
|
|
|
last_btc = 0
|
|
|
|
last_crypto = 0
|
2022-06-08 20:23:10 +00:00
|
|
|
|
|
|
|
for item in data:
|
2024-11-12 13:09:33 +00:00
|
|
|
dates.append(datetime.datetime.strftime(item.date, "%Y-%m-%d"))
|
2022-06-08 20:23:10 +00:00
|
|
|
|
2024-11-12 13:09:33 +00:00
|
|
|
if item.btc_commentsPerHour * 24 < last_btc / 4:
|
2022-05-29 14:03:17 +00:00
|
|
|
social_btc.append(last_btc)
|
|
|
|
else:
|
2024-11-12 13:09:33 +00:00
|
|
|
last_btc = item.btc_commentsPerHour * 24
|
2022-06-08 20:23:10 +00:00
|
|
|
social_btc.append(last_btc)
|
2022-05-29 14:03:17 +00:00
|
|
|
|
2024-11-12 13:09:33 +00:00
|
|
|
if item.xmr_commentsPerHour * 24 < last_xmr / 4:
|
2022-06-08 20:23:10 +00:00
|
|
|
social_xmr.append(last_xmr)
|
2022-05-29 14:03:17 +00:00
|
|
|
else:
|
2024-11-12 13:09:33 +00:00
|
|
|
last_xmr = item.xmr_commentsPerHour * 24
|
2022-05-29 14:03:17 +00:00
|
|
|
social_xmr.append(last_xmr)
|
|
|
|
|
2024-11-12 13:09:33 +00:00
|
|
|
if item.crypto_commentsPerHour * 24 < last_crypto / 4:
|
2022-06-08 20:23:10 +00:00
|
|
|
social_crypto.append(last_crypto)
|
|
|
|
else:
|
2024-11-12 13:09:33 +00:00
|
|
|
last_crypto = item.crypto_commentsPerHour * 24
|
2022-06-08 20:23:10 +00:00
|
|
|
social_crypto.append(last_crypto)
|
|
|
|
|
2024-11-12 13:09:33 +00:00
|
|
|
last_xmr = locale.format("%.0f", last_xmr, grouping=True)
|
|
|
|
last_btc = locale.format("%.0f", last_btc, grouping=True)
|
|
|
|
last_crypto = locale.format("%.0f", last_crypto, grouping=True)
|
|
|
|
|
|
|
|
context = {
|
|
|
|
"dates": dates,
|
|
|
|
"social_xmr": social_xmr,
|
|
|
|
"social_crypto": social_crypto,
|
|
|
|
"social_btc": social_btc,
|
|
|
|
"last_xmr": last_xmr,
|
|
|
|
"last_btc": last_btc,
|
|
|
|
"last_crypto": last_crypto,
|
|
|
|
}
|
|
|
|
return render(request, "charts/social6.html", context)
|
2022-09-19 02:38:30 +00:00
|
|
|
|
2022-05-29 14:03:17 +00:00
|
|
|
|
|
|
|
def social7(request):
|
2024-11-12 13:09:33 +00:00
|
|
|
data = DailyData.objects.order_by("date")
|
2022-05-29 14:03:17 +00:00
|
|
|
dates = []
|
|
|
|
social_xmr = []
|
|
|
|
social_crypto = []
|
|
|
|
social_btc = []
|
|
|
|
last_xmr = 0
|
|
|
|
last_btc = 0
|
|
|
|
last_crypto = 0
|
2022-06-08 20:23:10 +00:00
|
|
|
|
|
|
|
for item in data:
|
2024-11-12 13:09:33 +00:00
|
|
|
dates.append(datetime.datetime.strftime(item.date, "%Y-%m-%d"))
|
2022-06-08 20:23:10 +00:00
|
|
|
if item.btc_postsPerHour > 0:
|
2024-11-12 13:09:33 +00:00
|
|
|
last_btc = item.btc_postsPerHour * 24
|
2022-06-08 20:23:10 +00:00
|
|
|
social_btc.append(last_btc)
|
2022-05-29 14:03:17 +00:00
|
|
|
else:
|
2022-06-08 20:23:10 +00:00
|
|
|
social_btc.append(last_btc)
|
2022-05-29 14:03:17 +00:00
|
|
|
|
2022-06-08 20:23:10 +00:00
|
|
|
if item.xmr_postsPerHour > 0:
|
2024-11-12 13:09:33 +00:00
|
|
|
last_xmr = item.xmr_postsPerHour * 24
|
2022-06-08 20:23:10 +00:00
|
|
|
social_xmr.append(last_xmr)
|
2022-05-29 14:03:17 +00:00
|
|
|
else:
|
|
|
|
social_xmr.append(last_xmr)
|
|
|
|
|
2022-06-08 20:23:10 +00:00
|
|
|
if item.crypto_postsPerHour > 0:
|
2024-11-12 13:09:33 +00:00
|
|
|
last_crypto = item.crypto_postsPerHour * 24
|
2022-06-08 20:23:10 +00:00
|
|
|
social_crypto.append(last_crypto)
|
|
|
|
else:
|
|
|
|
social_crypto.append(last_crypto)
|
|
|
|
|
2024-11-12 13:09:33 +00:00
|
|
|
last_xmr = locale.format("%.0f", last_xmr, grouping=True)
|
|
|
|
last_btc = locale.format("%.0f", last_btc, grouping=True)
|
|
|
|
last_crypto = locale.format("%.0f", last_crypto, grouping=True)
|
|
|
|
|
|
|
|
context = {
|
|
|
|
"dates": dates,
|
|
|
|
"social_xmr": social_xmr,
|
|
|
|
"social_crypto": social_crypto,
|
|
|
|
"social_btc": social_btc,
|
|
|
|
"last_xmr": last_xmr,
|
|
|
|
"last_btc": last_btc,
|
|
|
|
"last_crypto": last_crypto,
|
|
|
|
}
|
|
|
|
return render(request, "charts/social7.html", context)
|
|
|
|
|
2022-05-29 14:03:17 +00:00
|
|
|
|
|
|
|
def pricelog(request):
|
2024-11-12 13:09:33 +00:00
|
|
|
symbol = "xmr"
|
2022-05-29 14:03:17 +00:00
|
|
|
now_price = 0
|
|
|
|
now_sf = 0
|
|
|
|
now_inflation = 0
|
|
|
|
v0 = 0.002
|
2024-11-12 13:09:33 +00:00
|
|
|
delta = (0.015 - 0.002) / (6 * 365)
|
2022-05-29 14:03:17 +00:00
|
|
|
count = 0
|
|
|
|
maximum = 0
|
|
|
|
supply = 0
|
|
|
|
dates = []
|
|
|
|
color = []
|
|
|
|
values = []
|
|
|
|
|
2024-11-12 13:09:33 +00:00
|
|
|
coins = Coin.objects.order_by("date").filter(name=symbol)
|
2022-05-29 14:03:17 +00:00
|
|
|
for coin in coins:
|
2024-11-12 13:09:33 +00:00
|
|
|
dates.append(datetime.datetime.strftime(coin.date, "%Y-%m-%d"))
|
2022-05-29 14:03:17 +00:00
|
|
|
values.append(coin.priceusd)
|
|
|
|
if coin.priceusd < 0.01:
|
|
|
|
coin.priceusd = 0.01
|
|
|
|
if coin.stocktoflow < 0.1:
|
|
|
|
coin.stocktoflow = 0.1
|
|
|
|
now_inflation = coin.inflation
|
|
|
|
now_price = coin.priceusd
|
|
|
|
now_sf = coin.stocktoflow
|
|
|
|
if now_price > maximum:
|
|
|
|
maximum = now_price
|
2024-11-12 13:09:33 +00:00
|
|
|
new_color = 30 * coin.pricebtc / (count * delta + v0)
|
2022-05-29 14:03:17 +00:00
|
|
|
color.append(new_color)
|
2024-11-12 13:09:33 +00:00
|
|
|
supply = int(coin.supply) * 10**12
|
2022-05-29 14:03:17 +00:00
|
|
|
count += 1
|
|
|
|
|
|
|
|
count = 0
|
|
|
|
for count in range(650):
|
|
|
|
date_now = date.today() + timedelta(count)
|
2024-11-12 13:09:33 +00:00
|
|
|
dates.append(datetime.datetime.strftime(date_now, "%Y-%m-%d"))
|
|
|
|
reward = (2**64 - 1 - supply) >> 19
|
|
|
|
if reward < 0.6 * (10**12):
|
|
|
|
reward = 0.6 * (10**12)
|
|
|
|
supply += int(720 * reward)
|
|
|
|
|
|
|
|
now_price = "$" + locale.format("%.2f", now_price, grouping=True)
|
|
|
|
now_sf = "$" + locale.format("%.2f", now_sf, grouping=True)
|
|
|
|
maximum = "$" + locale.format("%.2f", maximum, grouping=True)
|
|
|
|
now_inflation = locale.format("%.2f", now_inflation, grouping=True) + "%"
|
|
|
|
|
|
|
|
context = {
|
|
|
|
"values": values,
|
|
|
|
"dates": dates,
|
|
|
|
"maximum": maximum,
|
|
|
|
"now_price": now_price,
|
|
|
|
"now_inflation": now_inflation,
|
|
|
|
"now_sf": now_sf,
|
|
|
|
"color": color,
|
|
|
|
}
|
|
|
|
return render(request, "charts/pricelog.html", context)
|
2022-05-29 14:03:17 +00:00
|
|
|
|
|
|
|
|
|
|
|
def movingaverage(request):
|
2024-11-12 13:09:33 +00:00
|
|
|
symbol = "xmr"
|
|
|
|
v0 = 0.002 # TODO: Unused? # noqa: F841
|
|
|
|
delta = (0.015 - 0.002) / (6 * 365) # TODO # noqa: F841
|
2022-05-29 14:03:17 +00:00
|
|
|
count = 0
|
|
|
|
dates = []
|
|
|
|
color = []
|
|
|
|
values = []
|
|
|
|
average1 = []
|
|
|
|
average2 = []
|
|
|
|
total = 0
|
|
|
|
|
2024-11-12 13:09:33 +00:00
|
|
|
coins = Coin.objects.order_by("date").filter(name=symbol)
|
2022-05-29 14:03:17 +00:00
|
|
|
for coin in coins:
|
2024-11-12 13:09:33 +00:00
|
|
|
dates.append(datetime.datetime.strftime(coin.date, "%Y-%m-%d"))
|
2022-05-29 14:03:17 +00:00
|
|
|
if coin.priceusd < 0.2:
|
|
|
|
coin.priceusd = 0.2
|
|
|
|
total += coin.priceusd
|
|
|
|
values.append(coin.priceusd)
|
|
|
|
if count < 1460:
|
2024-11-12 13:09:33 +00:00
|
|
|
aux = total / (730 + count / 2)
|
2022-05-29 14:03:17 +00:00
|
|
|
if aux < 0.2:
|
|
|
|
aux = 0.2
|
|
|
|
average1.append(aux)
|
2024-11-12 13:09:33 +00:00
|
|
|
average2.append(aux * 5)
|
|
|
|
if coin.priceusd > 5 * aux:
|
2022-05-29 14:03:17 +00:00
|
|
|
new_color = 1
|
|
|
|
if coin.priceusd < aux:
|
|
|
|
new_color = 0
|
|
|
|
else:
|
2024-11-12 13:09:33 +00:00
|
|
|
new_color = coin.priceusd / (5 * aux)
|
2022-05-29 14:03:17 +00:00
|
|
|
color.append(new_color)
|
|
|
|
else:
|
|
|
|
color.append(new_color)
|
2024-11-12 13:09:33 +00:00
|
|
|
|
2022-05-29 14:03:17 +00:00
|
|
|
count += 1
|
2024-11-12 13:09:33 +00:00
|
|
|
|
2022-05-29 14:03:17 +00:00
|
|
|
n = 1460
|
2024-11-12 13:09:33 +00:00
|
|
|
median = pd.Series(values).rolling(window=n).mean().iloc[n - 1 :].values
|
2022-05-29 14:03:17 +00:00
|
|
|
|
2024-11-12 13:09:33 +00:00
|
|
|
# for count in range(1460):
|
2022-05-29 14:03:17 +00:00
|
|
|
# average1.append('')
|
|
|
|
# average2.append('')
|
|
|
|
for item in median:
|
|
|
|
average1.append(item)
|
2024-11-12 13:09:33 +00:00
|
|
|
average2.append(item * 5)
|
|
|
|
|
|
|
|
context = {
|
|
|
|
"values": values,
|
|
|
|
"dates": dates,
|
|
|
|
"color": color,
|
|
|
|
"average1": average1,
|
|
|
|
"average2": average2,
|
|
|
|
}
|
|
|
|
return render(request, "charts/movingaverage.html", context)
|
2022-09-19 02:38:30 +00:00
|
|
|
|
2022-05-29 14:03:17 +00:00
|
|
|
|
|
|
|
def powerlaw(request):
|
2024-11-12 13:09:33 +00:00
|
|
|
symbol = "xmr"
|
2022-05-29 14:03:17 +00:00
|
|
|
now_price = 0
|
|
|
|
now_sf = 0
|
|
|
|
now_inflation = 0
|
|
|
|
v0 = 0.002
|
2024-11-12 13:09:33 +00:00
|
|
|
delta = (0.015 - 0.002) / (6 * 365)
|
2022-05-29 14:03:17 +00:00
|
|
|
count = 0
|
|
|
|
maximum = 0
|
|
|
|
dates = []
|
|
|
|
counter = []
|
|
|
|
years = []
|
|
|
|
line3 = []
|
|
|
|
line2 = []
|
|
|
|
line1 = []
|
|
|
|
a3 = 0.00000000000000000009
|
|
|
|
a2 = 0.0000000000000000000000008
|
|
|
|
a1 = 0.00000000000000000000000002
|
2024-11-12 13:09:33 +00:00
|
|
|
b3 = (math.log(477, 10) - math.log(5.01, 10)) / (
|
|
|
|
math.log(2511, 10) - math.log(1231, 10)
|
|
|
|
)
|
|
|
|
b2 = (math.log(92, 10) - math.log(0.23, 10)) / (
|
|
|
|
math.log(3297, 10) - math.log(1468, 10)
|
|
|
|
)
|
|
|
|
b1 = (math.log(93, 10) - math.log(0.39, 10)) / (
|
|
|
|
math.log(3570, 10) - math.log(1755, 10)
|
|
|
|
)
|
2022-05-29 14:03:17 +00:00
|
|
|
color = []
|
|
|
|
values = []
|
|
|
|
|
|
|
|
yearnumber = 2014
|
|
|
|
days = 1200
|
2024-11-12 13:09:33 +00:00
|
|
|
coins = Coin.objects.order_by("date").filter(name=symbol)
|
2022-05-29 14:03:17 +00:00
|
|
|
for coin in coins:
|
|
|
|
if coin.priceusd < 0.01:
|
|
|
|
continue
|
|
|
|
days += 1
|
2024-11-12 13:09:33 +00:00
|
|
|
price3 = a3 * (days**b3)
|
|
|
|
price2 = a2 * (days**b2)
|
|
|
|
price1 = a1 * (days**b1)
|
2022-05-29 14:03:17 +00:00
|
|
|
line3.append(price3)
|
|
|
|
line2.append(price2)
|
|
|
|
line1.append(price1)
|
|
|
|
counter.append(days)
|
|
|
|
if coin.date.year > yearnumber:
|
|
|
|
yearnumber += 1
|
|
|
|
years.append(yearnumber)
|
|
|
|
dates.append(days)
|
|
|
|
values.append(coin.priceusd)
|
|
|
|
if coin.priceusd < 0.01:
|
|
|
|
coin.priceusd = 0.01
|
|
|
|
if coin.stocktoflow < 0.1:
|
|
|
|
coin.stocktoflow = 0.1
|
|
|
|
now_inflation = coin.inflation
|
|
|
|
now_price = coin.priceusd
|
|
|
|
now_sf = coin.stocktoflow
|
|
|
|
if now_price > maximum:
|
|
|
|
maximum = now_price
|
2024-11-12 13:09:33 +00:00
|
|
|
new_color = 30 * coin.pricebtc / (count * delta + v0)
|
2022-05-29 14:03:17 +00:00
|
|
|
color.append(new_color)
|
|
|
|
count += 1
|
|
|
|
|
|
|
|
for count in range(1, 3650):
|
2024-11-12 13:09:33 +00:00
|
|
|
date_now = date.today() + timedelta(count)
|
|
|
|
values.append("")
|
2022-05-29 14:03:17 +00:00
|
|
|
days += 1
|
2024-11-12 13:09:33 +00:00
|
|
|
price3 = a3 * (days**b3)
|
|
|
|
price2 = a2 * (days**b2)
|
|
|
|
price1 = a1 * (days**b1)
|
2022-05-29 14:03:17 +00:00
|
|
|
line3.append(price3)
|
|
|
|
line2.append(price2)
|
|
|
|
line1.append(price1)
|
|
|
|
counter.append(days)
|
|
|
|
if date_now.year > yearnumber:
|
|
|
|
yearnumber += 1
|
|
|
|
years.append(yearnumber)
|
2024-11-12 13:09:33 +00:00
|
|
|
dates.append(days)
|
2022-05-29 14:03:17 +00:00
|
|
|
|
2024-11-12 13:09:33 +00:00
|
|
|
now_price = "$" + locale.format("%.2f", now_price, grouping=True)
|
|
|
|
now_sf = "$" + locale.format("%.2f", now_sf, grouping=True)
|
|
|
|
maximum = "$" + locale.format("%.2f", maximum, grouping=True)
|
|
|
|
now_inflation = locale.format("%.2f", now_inflation, grouping=True) + "%"
|
|
|
|
|
|
|
|
context = {
|
|
|
|
"values": values,
|
|
|
|
"dates": dates,
|
|
|
|
"maximum": maximum,
|
|
|
|
"now_price": now_price,
|
|
|
|
"now_inflation": now_inflation,
|
|
|
|
"now_sf": now_sf,
|
|
|
|
"color": color,
|
|
|
|
"years": years,
|
|
|
|
"counter": counter,
|
|
|
|
"line1": line1,
|
|
|
|
"line2": line2,
|
|
|
|
"line3": line3,
|
|
|
|
}
|
|
|
|
return render(request, "charts/powerlaw.html", context)
|
2022-09-19 02:38:30 +00:00
|
|
|
|
2022-05-29 14:03:17 +00:00
|
|
|
|
|
|
|
def pricelin(request):
|
2024-11-12 13:09:33 +00:00
|
|
|
symbol = "xmr"
|
2022-05-29 14:03:17 +00:00
|
|
|
now_price = 0
|
|
|
|
now_sf = 0
|
|
|
|
now_inflation = 0
|
|
|
|
v0 = 0.002
|
2024-11-12 13:09:33 +00:00
|
|
|
delta = (0.015 - 0.002) / (6 * 365)
|
2022-05-29 14:03:17 +00:00
|
|
|
count = 0
|
|
|
|
maximum = 0
|
|
|
|
supply = 0
|
|
|
|
dates = []
|
|
|
|
color = []
|
|
|
|
values = []
|
|
|
|
|
2024-11-12 13:09:33 +00:00
|
|
|
coins = Coin.objects.order_by("date").filter(name=symbol)
|
2022-05-29 14:03:17 +00:00
|
|
|
for coin in coins:
|
2024-11-12 13:09:33 +00:00
|
|
|
dates.append(datetime.datetime.strftime(coin.date, "%Y-%m-%d"))
|
2022-05-29 14:03:17 +00:00
|
|
|
values.append(coin.priceusd)
|
|
|
|
if coin.priceusd < 0.01:
|
|
|
|
coin.priceusd = 0.01
|
|
|
|
if coin.stocktoflow < 0.1:
|
|
|
|
coin.stocktoflow = 0.1
|
|
|
|
now_inflation = coin.inflation
|
|
|
|
now_price = coin.priceusd
|
|
|
|
now_sf = coin.stocktoflow
|
|
|
|
if now_price > maximum:
|
|
|
|
maximum = now_price
|
2024-11-12 13:09:33 +00:00
|
|
|
new_color = 30 * coin.pricebtc / (count * delta + v0)
|
2022-05-29 14:03:17 +00:00
|
|
|
color.append(new_color)
|
2024-11-12 13:09:33 +00:00
|
|
|
supply = int(coin.supply) * 10**12
|
2022-05-29 14:03:17 +00:00
|
|
|
count += 1
|
|
|
|
|
|
|
|
count = 0
|
|
|
|
for count in range(650):
|
|
|
|
date_now = date.today() + timedelta(count)
|
2024-11-12 13:09:33 +00:00
|
|
|
dates.append(datetime.datetime.strftime(date_now, "%Y-%m-%d"))
|
|
|
|
reward = (2**64 - 1 - supply) >> 19
|
|
|
|
if reward < 0.6 * (10**12):
|
|
|
|
reward = 0.6 * (10**12)
|
|
|
|
supply += int(720 * reward)
|
2024-11-13 09:08:39 +00:00
|
|
|
stock = (
|
|
|
|
100 / (100 * reward * 720 * 365 / supply)
|
|
|
|
) ** 1.65 # TODO: Seems unused... # noqa: F841
|
2024-11-12 13:09:33 +00:00
|
|
|
|
|
|
|
now_price = "$" + locale.format("%.2f", now_price, grouping=True)
|
|
|
|
now_sf = "$" + locale.format("%.2f", now_sf, grouping=True)
|
|
|
|
maximum = "$" + locale.format("%.2f", maximum, grouping=True)
|
|
|
|
now_inflation = locale.format("%.2f", now_inflation, grouping=True) + "%"
|
|
|
|
|
|
|
|
context = {
|
|
|
|
"values": values,
|
|
|
|
"dates": dates,
|
|
|
|
"maximum": maximum,
|
|
|
|
"now_price": now_price,
|
|
|
|
"now_inflation": now_inflation,
|
|
|
|
"now_sf": now_sf,
|
|
|
|
"color": color,
|
|
|
|
}
|
|
|
|
return render(request, "charts/pricelin.html", context)
|
2022-05-29 14:03:17 +00:00
|
|
|
|
|
|
|
|
|
|
|
def pricesats(request):
|
2022-06-07 19:51:39 +00:00
|
|
|
dates = []
|
2022-05-29 14:03:17 +00:00
|
|
|
color = []
|
|
|
|
values = []
|
|
|
|
now_price = 0
|
|
|
|
maximum = 0
|
|
|
|
bottom = 1
|
|
|
|
|
2024-11-12 13:09:33 +00:00
|
|
|
data = Sfmodel.objects.order_by("date")
|
2022-06-07 19:51:39 +00:00
|
|
|
for item in data:
|
2024-11-12 13:09:33 +00:00
|
|
|
dates.append(datetime.datetime.strftime(item.date, "%Y-%m-%d"))
|
2022-06-07 19:51:39 +00:00
|
|
|
if item.color != 0:
|
|
|
|
color.append(item.color)
|
2022-05-29 14:03:17 +00:00
|
|
|
else:
|
2024-11-12 13:09:33 +00:00
|
|
|
color.append("")
|
2022-05-29 14:03:17 +00:00
|
|
|
|
2022-06-07 19:51:39 +00:00
|
|
|
if item.pricebtc > 0.0001:
|
|
|
|
values.append(item.pricebtc)
|
|
|
|
now_price = item.pricebtc
|
|
|
|
if bottom > item.pricebtc:
|
|
|
|
bottom = item.pricebtc
|
|
|
|
if maximum < item.pricebtc:
|
|
|
|
maximum = item.pricebtc
|
2022-05-29 14:03:17 +00:00
|
|
|
else:
|
2024-11-12 13:09:33 +00:00
|
|
|
values.append("")
|
|
|
|
|
|
|
|
now_price = locale.format("%.4f", now_price, grouping=True) + " BTC"
|
|
|
|
maximum = locale.format("%.4f", maximum, grouping=True) + " BTC"
|
|
|
|
bottom = locale.format("%.4f", bottom, grouping=True) + " BTC"
|
2022-06-07 19:51:39 +00:00
|
|
|
|
2024-11-12 13:09:33 +00:00
|
|
|
context = {
|
|
|
|
"values": values,
|
|
|
|
"dates": dates,
|
|
|
|
"maximum": maximum,
|
|
|
|
"now_price": now_price,
|
|
|
|
"color": color,
|
|
|
|
"bottom": bottom,
|
|
|
|
}
|
|
|
|
return render(request, "charts/pricesats.html", context)
|
2022-09-19 02:38:30 +00:00
|
|
|
|
2022-05-29 14:03:17 +00:00
|
|
|
|
2022-08-12 19:35:47 +00:00
|
|
|
def pricesatslog(request):
|
|
|
|
dates = []
|
|
|
|
color = []
|
|
|
|
values = []
|
|
|
|
now_price = 0
|
|
|
|
maximum = 0
|
|
|
|
bottom = 1
|
|
|
|
|
2024-11-12 13:09:33 +00:00
|
|
|
data = Sfmodel.objects.order_by("date")
|
2022-08-12 19:35:47 +00:00
|
|
|
for item in data:
|
2024-11-12 13:09:33 +00:00
|
|
|
dates.append(datetime.datetime.strftime(item.date, "%Y-%m-%d"))
|
2022-08-12 19:35:47 +00:00
|
|
|
if item.color != 0:
|
|
|
|
color.append(item.color)
|
|
|
|
else:
|
2024-11-12 13:09:33 +00:00
|
|
|
color.append("")
|
2022-08-12 19:35:47 +00:00
|
|
|
|
|
|
|
if item.pricebtc > 0.0001:
|
|
|
|
values.append(item.pricebtc)
|
|
|
|
now_price = item.pricebtc
|
|
|
|
if bottom > item.pricebtc:
|
|
|
|
bottom = item.pricebtc
|
|
|
|
if maximum < item.pricebtc:
|
|
|
|
maximum = item.pricebtc
|
|
|
|
else:
|
2024-11-12 13:09:33 +00:00
|
|
|
values.append("")
|
|
|
|
|
|
|
|
now_price = locale.format("%.4f", now_price, grouping=True) + " BTC"
|
|
|
|
maximum = locale.format("%.4f", maximum, grouping=True) + " BTC"
|
|
|
|
bottom = locale.format("%.4f", bottom, grouping=True) + " BTC"
|
2022-08-12 19:35:47 +00:00
|
|
|
|
2024-11-12 13:09:33 +00:00
|
|
|
context = {
|
|
|
|
"values": values,
|
|
|
|
"dates": dates,
|
|
|
|
"maximum": maximum,
|
|
|
|
"now_price": now_price,
|
|
|
|
"color": color,
|
|
|
|
"bottom": bottom,
|
|
|
|
}
|
|
|
|
return render(request, "charts/pricesatslog.html", context)
|
2022-09-19 02:38:30 +00:00
|
|
|
|
2022-08-12 19:35:47 +00:00
|
|
|
|
2022-05-29 14:03:17 +00:00
|
|
|
def fractal(request):
|
2024-11-12 13:09:33 +00:00
|
|
|
symbol = "xmr"
|
2022-05-29 14:03:17 +00:00
|
|
|
dates1 = []
|
|
|
|
dates2 = []
|
|
|
|
cycle1 = []
|
|
|
|
cycle2 = []
|
|
|
|
now_multiple = 0
|
|
|
|
maximum = 0
|
|
|
|
|
|
|
|
count1 = 1
|
|
|
|
count2 = 1
|
2024-11-12 13:09:33 +00:00
|
|
|
date1_aux = datetime.datetime(2017, 12, 29)
|
2022-05-29 14:03:17 +00:00
|
|
|
date2_aux = datetime.datetime(2014, 6, 21)
|
2024-11-12 13:09:33 +00:00
|
|
|
coins = Coin.objects.order_by("date").filter(name=symbol)
|
2022-05-29 14:03:17 +00:00
|
|
|
for coin in coins:
|
|
|
|
date3_aux = datetime.datetime.combine(coin.date, datetime.time(0, 0))
|
|
|
|
if date3_aux < date1_aux and date3_aux > date2_aux:
|
2024-11-12 13:09:33 +00:00
|
|
|
cycle1.append(coin.priceusd / 5)
|
|
|
|
dates1.append(count1 / 12.7)
|
|
|
|
if (coin.priceusd / 5) > maximum:
|
|
|
|
maximum = coin.priceusd / 5
|
2022-05-29 14:03:17 +00:00
|
|
|
count1 += 1
|
|
|
|
elif date3_aux > date1_aux:
|
2024-11-12 13:09:33 +00:00
|
|
|
cycle2.append(coin.priceusd / 477.12)
|
|
|
|
dates2.append(count2 / 20.7) # 24
|
|
|
|
now_multiple = coin.priceusd / 477.12
|
2022-05-29 14:03:17 +00:00
|
|
|
count2 += 0.86
|
|
|
|
|
2024-11-12 13:09:33 +00:00
|
|
|
now_multiple = locale.format("%.2f", now_multiple, grouping=True) + "x"
|
|
|
|
maximum = locale.format("%.2f", maximum, grouping=True) + "x"
|
|
|
|
|
|
|
|
context = {
|
|
|
|
"cycle1": cycle1,
|
|
|
|
"cycle2": cycle2,
|
|
|
|
"dates1": dates1,
|
|
|
|
"dates2": dates2,
|
|
|
|
"now_multiple": now_multiple,
|
|
|
|
"maximum": maximum,
|
|
|
|
}
|
|
|
|
return render(request, "charts/fractal.html", context)
|
2022-09-19 02:38:30 +00:00
|
|
|
|
2022-05-29 14:03:17 +00:00
|
|
|
|
|
|
|
def inflationfractal(request):
|
2024-11-12 13:09:33 +00:00
|
|
|
symbol = "xmr"
|
2022-05-29 14:03:17 +00:00
|
|
|
dates1 = []
|
|
|
|
dates2 = []
|
|
|
|
cycle1 = []
|
|
|
|
cycle2 = []
|
|
|
|
now_multiple = 0
|
|
|
|
maximum = 0
|
|
|
|
|
|
|
|
current_inflation = 0
|
|
|
|
start_inflation = 0
|
|
|
|
count1 = 1
|
|
|
|
count2 = 1
|
2024-11-12 13:09:33 +00:00
|
|
|
date1_aux = datetime.datetime(2017, 12, 29)
|
2022-05-29 14:03:17 +00:00
|
|
|
date2_aux = datetime.datetime(2014, 6, 21)
|
2024-11-12 13:09:33 +00:00
|
|
|
coins = Coin.objects.order_by("date").filter(name=symbol)
|
2022-05-29 14:03:17 +00:00
|
|
|
for coin in coins:
|
|
|
|
date3_aux = datetime.datetime.combine(coin.date, datetime.time(0, 0))
|
|
|
|
if date3_aux < date1_aux and date3_aux > date2_aux:
|
|
|
|
start_inflation = coin.inflation
|
|
|
|
current_inflation = start_inflation
|
2024-11-12 13:09:33 +00:00
|
|
|
cycle1.append(coin.priceusd / 5)
|
|
|
|
dates1.append(count1 / 12.7)
|
|
|
|
if (coin.priceusd / 5) > maximum:
|
|
|
|
maximum = coin.priceusd / 5
|
2022-05-29 14:03:17 +00:00
|
|
|
count1 += 1
|
|
|
|
elif date3_aux > date1_aux:
|
2024-11-12 13:09:33 +00:00
|
|
|
if (coin.inflation / current_inflation) > 1.15 or (
|
|
|
|
coin.inflation / current_inflation
|
|
|
|
) < 0.85:
|
2022-05-29 14:03:17 +00:00
|
|
|
coin.inflation = current_inflation
|
|
|
|
else:
|
|
|
|
current_inflation = coin.inflation
|
2024-11-12 13:09:33 +00:00
|
|
|
delta = math.sqrt(coin.inflation / start_inflation)
|
|
|
|
cycle2.append(delta * coin.priceusd / 477.12)
|
|
|
|
dates2.append(count2 / 20.55) # 24
|
|
|
|
now_multiple = delta * coin.priceusd / 477.12
|
2022-05-29 14:03:17 +00:00
|
|
|
count2 += 0.86
|
|
|
|
|
2024-11-12 13:09:33 +00:00
|
|
|
now_multiple = locale.format("%.2f", now_multiple, grouping=True) + "x"
|
|
|
|
maximum = locale.format("%.2f", maximum, grouping=True) + "x"
|
|
|
|
|
|
|
|
context = {
|
|
|
|
"cycle1": cycle1,
|
|
|
|
"cycle2": cycle2,
|
|
|
|
"dates1": dates1,
|
|
|
|
"dates2": dates2,
|
|
|
|
"now_multiple": now_multiple,
|
|
|
|
"maximum": maximum,
|
|
|
|
}
|
|
|
|
return render(request, "charts/inflationfractal.html", context)
|
2022-09-19 02:38:30 +00:00
|
|
|
|
2022-05-29 14:03:17 +00:00
|
|
|
|
|
|
|
def golden(request):
|
2024-11-12 13:09:33 +00:00
|
|
|
symbol = "xmr"
|
2022-05-29 14:03:17 +00:00
|
|
|
dates = []
|
|
|
|
prices = []
|
|
|
|
|
2024-11-12 13:09:33 +00:00
|
|
|
coins = Coin.objects.order_by("date").filter(name=symbol)
|
2022-05-29 14:03:17 +00:00
|
|
|
for coin in coins:
|
|
|
|
firstdate = coin.date
|
2024-11-12 13:09:33 +00:00
|
|
|
break
|
2022-05-29 14:03:17 +00:00
|
|
|
|
|
|
|
day = firstdate - timedelta(350)
|
|
|
|
for i in range(350):
|
2024-11-12 13:09:33 +00:00
|
|
|
dates.append(datetime.datetime.strftime(day, "%Y-%m-%d"))
|
2022-05-29 14:03:17 +00:00
|
|
|
prices.append(0.2)
|
|
|
|
|
|
|
|
for coin in coins:
|
2024-11-12 13:09:33 +00:00
|
|
|
dates.append(datetime.datetime.strftime(coin.date, "%Y-%m-%d"))
|
2022-05-29 14:03:17 +00:00
|
|
|
if coin.priceusd > 0.2:
|
|
|
|
prices.append(coin.priceusd)
|
|
|
|
else:
|
|
|
|
prices.append(0.2)
|
2024-11-12 13:09:33 +00:00
|
|
|
|
2022-05-29 14:03:17 +00:00
|
|
|
n = 350
|
2024-11-12 13:09:33 +00:00
|
|
|
median = pd.Series(prices).rolling(window=n).mean().iloc[n - 1 :].values
|
2022-05-29 14:03:17 +00:00
|
|
|
m_350 = []
|
|
|
|
m_350_0042 = []
|
|
|
|
m_350_0060 = []
|
|
|
|
m_350_0200 = []
|
|
|
|
m_350_0300 = []
|
|
|
|
m_350_0500 = []
|
|
|
|
m_350_0800 = []
|
|
|
|
m_350_1300 = []
|
|
|
|
for i in range(350):
|
2024-11-12 13:09:33 +00:00
|
|
|
m_350.append("")
|
|
|
|
m_350_0042.append("")
|
|
|
|
m_350_0060.append("")
|
|
|
|
m_350_0200.append("")
|
|
|
|
m_350_0300.append("")
|
|
|
|
m_350_0500.append("")
|
|
|
|
m_350_0800.append("")
|
|
|
|
m_350_1300.append("")
|
2022-05-29 14:03:17 +00:00
|
|
|
for item in median:
|
|
|
|
m_350.append(float(item))
|
2024-11-12 13:09:33 +00:00
|
|
|
m_350_0042.append(float(item) * 0.42)
|
|
|
|
m_350_0060.append(float(item) * 0.60)
|
|
|
|
m_350_0200.append(float(item) * 2.00)
|
|
|
|
m_350_0300.append(float(item) * 3.00)
|
|
|
|
m_350_0500.append(float(item) * 5.00)
|
|
|
|
m_350_0800.append(float(item) * 8.00)
|
|
|
|
m_350_1300.append(float(item) * 13.00)
|
2022-05-29 14:03:17 +00:00
|
|
|
|
|
|
|
n = 120
|
2024-11-12 13:09:33 +00:00
|
|
|
median = pd.Series(prices).rolling(window=n).mean().iloc[n - 1 :].values
|
2022-05-29 14:03:17 +00:00
|
|
|
m_111 = []
|
|
|
|
for i in range(120):
|
2024-11-12 13:09:33 +00:00
|
|
|
m_111.append("")
|
2022-05-29 14:03:17 +00:00
|
|
|
for item in median:
|
|
|
|
m_111.append(float(item))
|
|
|
|
|
|
|
|
i = 0
|
|
|
|
down = True
|
|
|
|
price_cross = []
|
|
|
|
for price in prices:
|
2024-11-12 13:09:33 +00:00
|
|
|
if m_111[i] != "" and m_350_0200[i] != "":
|
|
|
|
if down and m_111[i] > m_350_0200[i]:
|
2022-05-29 14:03:17 +00:00
|
|
|
down = False
|
|
|
|
price_cross.append(price)
|
|
|
|
elif price > m_350_0500[i]:
|
|
|
|
price_cross.append(price)
|
2024-11-12 13:09:33 +00:00
|
|
|
elif not down and m_111[i] < m_350_0200[i]:
|
2022-05-29 14:03:17 +00:00
|
|
|
down = True
|
|
|
|
else:
|
2024-11-12 13:09:33 +00:00
|
|
|
price_cross.append("")
|
2022-05-29 14:03:17 +00:00
|
|
|
else:
|
2024-11-12 13:09:33 +00:00
|
|
|
price_cross.append("")
|
2022-05-29 14:03:17 +00:00
|
|
|
i += 1
|
2022-09-19 02:38:30 +00:00
|
|
|
|
2024-11-12 13:09:33 +00:00
|
|
|
context = {
|
|
|
|
"dates": dates,
|
|
|
|
"prices": prices,
|
|
|
|
"m_350": m_350,
|
|
|
|
"m_350_0042": m_350_0042,
|
|
|
|
"m_350_0060": m_350_0060,
|
|
|
|
"m_350_0200": m_350_0200,
|
|
|
|
"m_350_0300": m_350_0300,
|
|
|
|
"m_350_0500": m_350_0500,
|
|
|
|
"m_350_0800": m_350_0800,
|
|
|
|
"m_350_1300": m_350_1300,
|
|
|
|
"median": median,
|
|
|
|
"m_111": m_111,
|
|
|
|
"price_cross": price_cross,
|
|
|
|
}
|
|
|
|
return render(request, "charts/golden.html", context)
|
|
|
|
|
2022-05-29 14:03:17 +00:00
|
|
|
|
|
|
|
def competitors(request):
|
|
|
|
dates = []
|
|
|
|
xmr = []
|
|
|
|
dash = []
|
|
|
|
grin = []
|
|
|
|
zcash = []
|
|
|
|
count = 0
|
|
|
|
now_xmr = 0
|
|
|
|
now_dash = 0
|
|
|
|
now_grin = 0
|
|
|
|
now_zcash = 0
|
|
|
|
|
|
|
|
count = 0
|
2024-11-12 13:09:33 +00:00
|
|
|
coins_xmr = Coin.objects.order_by("date").filter(name="xmr")
|
2022-05-29 14:03:17 +00:00
|
|
|
for coin_xmr in coins_xmr:
|
|
|
|
if coin_xmr.priceusd:
|
|
|
|
if count > 30:
|
2024-11-12 13:09:33 +00:00
|
|
|
xmr.append(coin_xmr.priceusd / 5.01)
|
|
|
|
now_xmr = coin_xmr.priceusd / 5.01
|
2022-05-29 14:03:17 +00:00
|
|
|
dates.append(count)
|
|
|
|
count += 1
|
|
|
|
elif count <= 63:
|
|
|
|
continue
|
|
|
|
else:
|
2024-11-12 13:09:33 +00:00
|
|
|
xmr.append("")
|
2022-05-29 14:03:17 +00:00
|
|
|
|
|
|
|
count = 0
|
2024-11-12 13:09:33 +00:00
|
|
|
coins_dash = Coin.objects.order_by("date").filter(name="dash")
|
2022-05-29 14:03:17 +00:00
|
|
|
for coin_dash in coins_dash:
|
|
|
|
count += 1
|
|
|
|
if coin_dash.priceusd and count > 130:
|
2024-11-12 13:09:33 +00:00
|
|
|
dash.append(coin_dash.priceusd / 14.7)
|
|
|
|
now_dash = coin_dash.priceusd / 14.7
|
2022-05-29 14:03:17 +00:00
|
|
|
elif count <= 130:
|
|
|
|
continue
|
|
|
|
else:
|
2024-11-12 13:09:33 +00:00
|
|
|
dash.append("")
|
2022-05-29 14:03:17 +00:00
|
|
|
dates.append(count)
|
|
|
|
|
|
|
|
count = 0
|
2024-11-12 13:09:33 +00:00
|
|
|
coins_grin = Coin.objects.order_by("date").filter(name="grin")
|
2022-05-29 14:03:17 +00:00
|
|
|
for coin_grin in coins_grin:
|
|
|
|
count += 1
|
|
|
|
if coin_grin.priceusd and count > 155:
|
2024-11-12 13:09:33 +00:00
|
|
|
grin.append(coin_grin.priceusd / 6.37)
|
|
|
|
now_grin = coin_grin.priceusd / 6.37
|
2022-05-29 14:03:17 +00:00
|
|
|
elif count <= 155:
|
|
|
|
continue
|
|
|
|
else:
|
2024-11-12 13:09:33 +00:00
|
|
|
grin.append("")
|
2022-05-29 14:03:17 +00:00
|
|
|
dates.append(count)
|
|
|
|
|
|
|
|
count = 0
|
2024-11-12 13:09:33 +00:00
|
|
|
coins_zcash = Coin.objects.order_by("date").filter(name="zec")
|
2022-05-29 14:03:17 +00:00
|
|
|
for coin_zcash in coins_zcash:
|
|
|
|
count += 1
|
|
|
|
if coin_zcash.priceusd and count > 434:
|
2024-11-12 13:09:33 +00:00
|
|
|
zcash.append(coin_zcash.priceusd / 750)
|
|
|
|
now_zcash = coin_zcash.priceusd / 750
|
2022-05-29 14:03:17 +00:00
|
|
|
elif count <= 434:
|
|
|
|
continue
|
|
|
|
else:
|
2024-11-12 13:09:33 +00:00
|
|
|
zcash.append("")
|
2022-05-29 14:03:17 +00:00
|
|
|
dates.append(count)
|
|
|
|
|
2024-11-12 13:09:33 +00:00
|
|
|
now_dash = locale.format("%.2f", now_dash, grouping=True)
|
|
|
|
now_grin = locale.format("%.2f", now_grin, grouping=True)
|
|
|
|
now_zcash = locale.format("%.2f", now_zcash, grouping=True)
|
|
|
|
now_xmr = locale.format("%.2f", now_xmr, grouping=True)
|
|
|
|
|
|
|
|
context = {
|
|
|
|
"xmr": xmr,
|
|
|
|
"dash": dash,
|
|
|
|
"grin": grin,
|
|
|
|
"zcash": zcash,
|
|
|
|
"now_xmr": now_xmr,
|
|
|
|
"now_dash": now_dash,
|
|
|
|
"now_grin": now_grin,
|
|
|
|
"now_zcash": now_zcash,
|
|
|
|
"dates": dates,
|
|
|
|
}
|
|
|
|
return render(request, "charts/competitors.html", context)
|
2022-09-19 02:38:30 +00:00
|
|
|
|
2022-05-29 14:03:17 +00:00
|
|
|
|
2022-06-13 01:28:59 +00:00
|
|
|
def competitorslin(request):
|
|
|
|
dates = []
|
|
|
|
xmr = []
|
|
|
|
dash = []
|
|
|
|
grin = []
|
|
|
|
zcash = []
|
|
|
|
count = 0
|
|
|
|
now_xmr = 0
|
|
|
|
now_dash = 0
|
|
|
|
now_grin = 0
|
|
|
|
now_zcash = 0
|
|
|
|
|
|
|
|
count = 0
|
2024-11-12 13:09:33 +00:00
|
|
|
coins_xmr = Coin.objects.order_by("date").filter(name="xmr")
|
2022-06-13 01:28:59 +00:00
|
|
|
for coin_xmr in coins_xmr:
|
|
|
|
if coin_xmr.priceusd:
|
|
|
|
if count > 30:
|
2024-11-12 13:09:33 +00:00
|
|
|
xmr.append(coin_xmr.priceusd / 5.01)
|
|
|
|
now_xmr = coin_xmr.priceusd / 5.01
|
2022-06-13 01:28:59 +00:00
|
|
|
dates.append(count)
|
|
|
|
count += 1
|
|
|
|
elif count <= 63:
|
|
|
|
continue
|
|
|
|
else:
|
2024-11-12 13:09:33 +00:00
|
|
|
xmr.append("")
|
2022-06-13 01:28:59 +00:00
|
|
|
|
|
|
|
count = 0
|
2024-11-12 13:09:33 +00:00
|
|
|
coins_dash = Coin.objects.order_by("date").filter(name="dash")
|
2022-06-13 01:28:59 +00:00
|
|
|
for coin_dash in coins_dash:
|
|
|
|
count += 1
|
|
|
|
if coin_dash.priceusd and count > 130:
|
2024-11-12 13:09:33 +00:00
|
|
|
dash.append(coin_dash.priceusd / 14.7)
|
|
|
|
now_dash = coin_dash.priceusd / 14.7
|
2022-06-13 01:28:59 +00:00
|
|
|
elif count <= 130:
|
|
|
|
continue
|
|
|
|
else:
|
2024-11-12 13:09:33 +00:00
|
|
|
dash.append("")
|
2022-06-13 01:28:59 +00:00
|
|
|
dates.append(count)
|
|
|
|
|
|
|
|
count = 0
|
2024-11-12 13:09:33 +00:00
|
|
|
coins_grin = Coin.objects.order_by("date").filter(name="grin")
|
2022-06-13 01:28:59 +00:00
|
|
|
for coin_grin in coins_grin:
|
|
|
|
count += 1
|
|
|
|
if coin_grin.priceusd and count > 155:
|
2024-11-12 13:09:33 +00:00
|
|
|
grin.append(coin_grin.priceusd / 6.37)
|
|
|
|
now_grin = coin_grin.priceusd / 6.37
|
2022-06-13 01:28:59 +00:00
|
|
|
elif count <= 155:
|
|
|
|
continue
|
|
|
|
else:
|
2024-11-12 13:09:33 +00:00
|
|
|
grin.append("")
|
2022-06-13 01:28:59 +00:00
|
|
|
dates.append(count)
|
|
|
|
|
|
|
|
count = 0
|
2024-11-12 13:09:33 +00:00
|
|
|
coins_zcash = Coin.objects.order_by("date").filter(name="zec")
|
2022-06-13 01:28:59 +00:00
|
|
|
for coin_zcash in coins_zcash:
|
|
|
|
count += 1
|
|
|
|
if coin_zcash.priceusd and count > 434:
|
2024-11-12 13:09:33 +00:00
|
|
|
zcash.append(coin_zcash.priceusd / 750)
|
|
|
|
now_zcash = coin_zcash.priceusd / 750
|
2022-06-13 01:28:59 +00:00
|
|
|
elif count <= 434:
|
|
|
|
continue
|
|
|
|
else:
|
2024-11-12 13:09:33 +00:00
|
|
|
zcash.append("")
|
2022-06-13 01:28:59 +00:00
|
|
|
dates.append(count)
|
|
|
|
|
2024-11-12 13:09:33 +00:00
|
|
|
now_dash = locale.format("%.2f", now_dash, grouping=True)
|
|
|
|
now_grin = locale.format("%.2f", now_grin, grouping=True)
|
|
|
|
now_zcash = locale.format("%.2f", now_zcash, grouping=True)
|
|
|
|
now_xmr = locale.format("%.2f", now_xmr, grouping=True)
|
|
|
|
|
|
|
|
context = {
|
|
|
|
"xmr": xmr,
|
|
|
|
"dash": dash,
|
|
|
|
"grin": grin,
|
|
|
|
"zcash": zcash,
|
|
|
|
"now_xmr": now_xmr,
|
|
|
|
"now_dash": now_dash,
|
|
|
|
"now_grin": now_grin,
|
|
|
|
"now_zcash": now_zcash,
|
|
|
|
"dates": dates,
|
|
|
|
}
|
|
|
|
return render(request, "charts/competitorslin.html", context)
|
2022-09-19 02:38:30 +00:00
|
|
|
|
2022-06-13 01:28:59 +00:00
|
|
|
|
2022-05-29 14:03:17 +00:00
|
|
|
def marketcap(request):
|
2024-11-12 13:09:33 +00:00
|
|
|
data = DailyData.objects.order_by("date")
|
2022-06-07 19:51:39 +00:00
|
|
|
|
2022-05-29 14:03:17 +00:00
|
|
|
dates = []
|
|
|
|
xmr = []
|
|
|
|
dash = []
|
|
|
|
grin = []
|
|
|
|
zcash = []
|
|
|
|
now_xmr = 0
|
|
|
|
now_dash = 0
|
|
|
|
now_grin = 0
|
|
|
|
now_zcash = 0
|
2024-11-12 13:09:33 +00:00
|
|
|
|
2022-06-07 19:51:39 +00:00
|
|
|
for item in data:
|
2024-11-12 13:09:33 +00:00
|
|
|
dates.append(datetime.datetime.strftime(item.date, "%Y-%m-%d"))
|
2022-05-29 14:03:17 +00:00
|
|
|
|
2022-06-07 19:51:39 +00:00
|
|
|
if item.zcash_marketcap > 1000000:
|
|
|
|
zcash.append(item.zcash_marketcap)
|
|
|
|
now_zcash = item.zcash_marketcap
|
2022-05-29 14:03:17 +00:00
|
|
|
else:
|
2024-11-12 13:09:33 +00:00
|
|
|
zcash.append("")
|
2022-05-29 14:03:17 +00:00
|
|
|
|
2022-06-07 19:51:39 +00:00
|
|
|
if item.dash_marketcap > 1000000:
|
|
|
|
dash.append(item.dash_marketcap)
|
|
|
|
now_dash = item.dash_marketcap
|
|
|
|
else:
|
2024-11-12 13:09:33 +00:00
|
|
|
dash.append("")
|
2022-05-29 14:03:17 +00:00
|
|
|
|
2022-06-07 19:51:39 +00:00
|
|
|
if item.xmr_marketcap > 1000000:
|
|
|
|
xmr.append(item.xmr_marketcap)
|
|
|
|
now_xmr = item.xmr_marketcap
|
|
|
|
else:
|
2024-11-12 13:09:33 +00:00
|
|
|
xmr.append("")
|
2022-05-29 14:03:17 +00:00
|
|
|
|
2022-06-07 19:51:39 +00:00
|
|
|
if item.grin_marketcap > 1000000:
|
|
|
|
grin.append(item.grin_marketcap)
|
|
|
|
now_grin = item.grin_marketcap
|
|
|
|
else:
|
2024-11-12 13:09:33 +00:00
|
|
|
grin.append("")
|
|
|
|
|
|
|
|
now_dash = "$" + locale.format("%.0f", now_dash, grouping=True)
|
|
|
|
now_grin = "$" + locale.format("%.0f", now_grin, grouping=True)
|
|
|
|
now_zcash = "$" + locale.format("%.0f", now_zcash, grouping=True)
|
|
|
|
now_xmr = "$" + locale.format("%.0f", now_xmr, grouping=True)
|
2022-05-29 14:03:17 +00:00
|
|
|
|
2024-11-12 13:09:33 +00:00
|
|
|
context = {
|
|
|
|
"xmr": xmr,
|
|
|
|
"dash": dash,
|
|
|
|
"grin": grin,
|
|
|
|
"zcash": zcash,
|
|
|
|
"now_xmr": now_xmr,
|
|
|
|
"now_dash": now_dash,
|
|
|
|
"now_grin": now_grin,
|
|
|
|
"now_zcash": now_zcash,
|
|
|
|
"dates": dates,
|
|
|
|
}
|
|
|
|
return render(request, "charts/marketcap.html", context)
|
2022-09-19 02:38:30 +00:00
|
|
|
|
2022-05-29 14:03:17 +00:00
|
|
|
|
|
|
|
def inflationreturn(request):
|
|
|
|
count = 0
|
|
|
|
xmr = []
|
|
|
|
dash = []
|
|
|
|
grin = []
|
|
|
|
zcash = []
|
|
|
|
btc = []
|
|
|
|
now_xmr = 0
|
|
|
|
now_dash = 0
|
|
|
|
now_grin = 0
|
|
|
|
now_zcash = 0
|
|
|
|
now_btc = 0
|
|
|
|
inflation_xmr = []
|
|
|
|
inflation_dash = []
|
|
|
|
inflation_grin = []
|
|
|
|
inflation_zcash = []
|
|
|
|
inflation_btc = []
|
|
|
|
|
|
|
|
lastxmrA = 0
|
|
|
|
lastxmrB = 0
|
|
|
|
|
|
|
|
count = 0
|
2024-11-12 13:09:33 +00:00
|
|
|
coins = Coin.objects.order_by("date").filter(name="xmr")
|
2022-05-29 14:03:17 +00:00
|
|
|
for coin in coins:
|
|
|
|
count += 1
|
2022-06-20 03:10:53 +00:00
|
|
|
if coin.priceusd and count > 30 and coin.inflation > 0:
|
2024-11-12 13:09:33 +00:00
|
|
|
now_xmr = coin.priceusd / 5.01
|
|
|
|
# correcao de um erro nos dados
|
|
|
|
if 100 / coin.inflation > 110 and now_xmr < 10:
|
2022-05-29 14:03:17 +00:00
|
|
|
xmr.append(lastxmrA)
|
|
|
|
inflation_xmr.append(lastxmrB)
|
|
|
|
else:
|
|
|
|
xmr.append(now_xmr)
|
2024-11-12 13:09:33 +00:00
|
|
|
inflation_xmr.append(100 / coin.inflation)
|
2022-05-29 14:03:17 +00:00
|
|
|
lastxmrA = now_xmr
|
2024-11-12 13:09:33 +00:00
|
|
|
lastxmrB = 100 / coin.inflation
|
2022-05-29 14:03:17 +00:00
|
|
|
|
|
|
|
count = 0
|
2024-11-12 13:09:33 +00:00
|
|
|
coins = Coin.objects.order_by("date").filter(name="dash")
|
2022-05-29 14:03:17 +00:00
|
|
|
for coin in coins:
|
|
|
|
count += 1
|
2022-06-20 03:10:53 +00:00
|
|
|
if coin.priceusd and count > 130 and coin.inflation > 0:
|
2024-11-12 13:09:33 +00:00
|
|
|
now_dash = coin.priceusd / 14.7
|
2022-05-29 14:03:17 +00:00
|
|
|
dash.append(now_dash)
|
2024-11-12 13:09:33 +00:00
|
|
|
inflation_dash.append(100 / coin.inflation)
|
2022-05-29 14:03:17 +00:00
|
|
|
|
|
|
|
count = 0
|
2024-11-12 13:09:33 +00:00
|
|
|
coins = Coin.objects.order_by("date").filter(name="grin")
|
2022-05-29 14:03:17 +00:00
|
|
|
for coin in coins:
|
|
|
|
count += 1
|
2022-06-20 03:10:53 +00:00
|
|
|
if coin.priceusd and count > 155 and coin.inflation > 0:
|
2024-11-12 13:09:33 +00:00
|
|
|
now_grin = coin.priceusd / 6.37
|
2022-05-29 14:03:17 +00:00
|
|
|
grin.append(now_grin)
|
2024-11-12 13:09:33 +00:00
|
|
|
inflation_grin.append(100 / coin.inflation)
|
2022-05-29 14:03:17 +00:00
|
|
|
|
|
|
|
count = 0
|
2024-11-12 13:09:33 +00:00
|
|
|
coins = Coin.objects.order_by("date").filter(name="zec")
|
2022-05-29 14:03:17 +00:00
|
|
|
for coin in coins:
|
|
|
|
count += 1
|
2022-06-20 03:10:53 +00:00
|
|
|
if coin.priceusd and count > 434 and coin.inflation > 0:
|
2024-11-12 13:09:33 +00:00
|
|
|
now_zcash = coin.priceusd / 750
|
2022-05-29 14:03:17 +00:00
|
|
|
zcash.append(now_zcash)
|
2024-11-12 13:09:33 +00:00
|
|
|
inflation_zcash.append(100 / coin.inflation)
|
2022-05-29 14:03:17 +00:00
|
|
|
|
|
|
|
count = 0
|
2024-11-12 13:09:33 +00:00
|
|
|
coins = Coin.objects.order_by("date").filter(name="btc")
|
2022-05-29 14:03:17 +00:00
|
|
|
for coin in coins:
|
|
|
|
count += 1
|
2022-06-20 03:10:53 +00:00
|
|
|
if coin.priceusd and count > 325 and coin.inflation > 0:
|
2024-11-12 13:09:33 +00:00
|
|
|
now_btc = coin.priceusd / 30
|
2022-05-29 14:03:17 +00:00
|
|
|
btc.append(now_btc)
|
2024-11-12 13:09:33 +00:00
|
|
|
inflation_btc.append(100 / coin.inflation)
|
|
|
|
|
|
|
|
now_dash = locale.format("%.2f", now_dash, grouping=True)
|
|
|
|
now_grin = locale.format("%.2f", now_grin, grouping=True)
|
|
|
|
now_zcash = locale.format("%.2f", now_zcash, grouping=True)
|
|
|
|
now_xmr = locale.format("%.2f", now_xmr, grouping=True)
|
|
|
|
now_btc = locale.format("%.2f", now_btc, grouping=True)
|
|
|
|
|
|
|
|
context = {
|
|
|
|
"inflation_btc": inflation_btc,
|
|
|
|
"inflation_xmr": inflation_xmr,
|
|
|
|
"inflation_dash": inflation_dash,
|
|
|
|
"inflation_grin": inflation_grin,
|
|
|
|
"inflation_zcash": inflation_zcash,
|
|
|
|
"now_xmr": now_xmr,
|
|
|
|
"now_dash": now_dash,
|
|
|
|
"now_grin": now_grin,
|
|
|
|
"now_zcash": now_zcash,
|
|
|
|
"now_btc": now_btc,
|
|
|
|
"btc": btc,
|
|
|
|
"xmr": xmr,
|
|
|
|
"dash": dash,
|
|
|
|
"zcash": zcash,
|
|
|
|
"grin": grin,
|
|
|
|
}
|
|
|
|
return render(request, "charts/inflationreturn.html", context)
|
2022-09-19 02:38:30 +00:00
|
|
|
|
2022-05-29 14:03:17 +00:00
|
|
|
|
|
|
|
def bitcoin(request):
|
|
|
|
dates = []
|
|
|
|
dates3 = []
|
|
|
|
dates4 = []
|
|
|
|
btc = []
|
|
|
|
xmr3 = []
|
|
|
|
count1 = 0
|
|
|
|
count3 = 0
|
|
|
|
now_xmr = 0
|
|
|
|
now_btc = 0
|
|
|
|
|
2024-11-12 13:09:33 +00:00
|
|
|
coins_btc = Coin.objects.order_by("date").filter(name="btc")
|
2022-05-29 14:03:17 +00:00
|
|
|
for coin_btc in coins_btc:
|
|
|
|
if coin_btc.priceusd:
|
2024-11-12 13:09:33 +00:00
|
|
|
if count1 > 890: # 450
|
|
|
|
btc.append(coin_btc.priceusd / 30)
|
|
|
|
now_btc = coin_btc.priceusd / 30
|
2022-05-29 14:03:17 +00:00
|
|
|
dates.append(count1)
|
2024-11-12 13:09:33 +00:00
|
|
|
count1 += 1 # 1.4
|
|
|
|
elif count1 <= 890: # 450
|
2022-05-29 14:03:17 +00:00
|
|
|
continue
|
|
|
|
else:
|
2024-11-12 13:09:33 +00:00
|
|
|
btc.append("")
|
2022-05-29 14:03:17 +00:00
|
|
|
|
2024-11-12 13:09:33 +00:00
|
|
|
coins_xmr = Coin.objects.order_by("date").filter(name="xmr")
|
2022-05-29 14:03:17 +00:00
|
|
|
|
|
|
|
for coin_xmr in coins_xmr:
|
|
|
|
if coin_xmr.priceusd:
|
|
|
|
if count3 > 30:
|
2024-11-12 13:09:33 +00:00
|
|
|
xmr3.append(coin_xmr.priceusd / 5.01)
|
2022-05-29 14:03:17 +00:00
|
|
|
dates4.append(count3)
|
2022-06-20 03:10:53 +00:00
|
|
|
count3 += 0.92
|
2022-05-29 14:03:17 +00:00
|
|
|
elif count3 <= 30:
|
|
|
|
continue
|
|
|
|
else:
|
2024-11-12 13:09:33 +00:00
|
|
|
xmr3.append("")
|
2022-05-29 14:03:17 +00:00
|
|
|
|
2024-11-12 13:09:33 +00:00
|
|
|
data = DailyData.objects.order_by("date")
|
2022-06-05 18:36:57 +00:00
|
|
|
|
2022-05-29 14:03:17 +00:00
|
|
|
dates2 = []
|
|
|
|
xmr2 = []
|
|
|
|
btc2 = []
|
2024-11-12 13:09:33 +00:00
|
|
|
|
2022-06-05 18:36:57 +00:00
|
|
|
for item in data:
|
2024-11-12 13:09:33 +00:00
|
|
|
dates2.append(datetime.datetime.strftime(item.date, "%Y-%m-%d"))
|
2022-05-29 14:03:17 +00:00
|
|
|
|
2022-06-05 18:36:57 +00:00
|
|
|
if item.btc_return > 0.0001:
|
|
|
|
btc2.append(item.btc_return)
|
2022-05-29 14:03:17 +00:00
|
|
|
else:
|
2024-11-12 13:09:33 +00:00
|
|
|
btc2.append("")
|
2022-06-05 18:36:57 +00:00
|
|
|
|
|
|
|
if item.xmr_return > 0.0001:
|
|
|
|
xmr2.append(item.xmr_return)
|
2022-05-29 14:03:17 +00:00
|
|
|
else:
|
2024-11-12 13:09:33 +00:00
|
|
|
xmr2.append("")
|
|
|
|
|
|
|
|
now_btc = locale.format("%.2f", now_btc, grouping=True)
|
|
|
|
now_xmr = locale.format("%.2f", now_xmr, grouping=True)
|
2022-05-29 14:03:17 +00:00
|
|
|
|
2024-11-12 13:09:33 +00:00
|
|
|
context = {
|
|
|
|
"btc": btc,
|
|
|
|
"xmr2": xmr2,
|
|
|
|
"btc2": btc2,
|
|
|
|
"xmr3": xmr3,
|
|
|
|
"dates": dates,
|
|
|
|
"dates2": dates2,
|
|
|
|
"dates3": dates3,
|
|
|
|
"dates4": dates4,
|
|
|
|
}
|
|
|
|
return render(request, "charts/bitcoin.html", context)
|
2022-09-19 02:38:30 +00:00
|
|
|
|
2022-05-29 14:03:17 +00:00
|
|
|
|
|
|
|
def translin(request):
|
2024-11-12 13:09:33 +00:00
|
|
|
symbol = "xmr"
|
2022-05-29 14:03:17 +00:00
|
|
|
transactions = []
|
|
|
|
pricexmr = []
|
|
|
|
dates = []
|
|
|
|
now_transactions = 0
|
|
|
|
maximum = 0
|
|
|
|
|
2024-11-12 13:09:33 +00:00
|
|
|
coins = Coin.objects.order_by("date")
|
2022-08-21 20:07:44 +00:00
|
|
|
for coin in coins:
|
2024-11-12 13:09:33 +00:00
|
|
|
print(str(coin.name) + " " + str(coin.date))
|
|
|
|
coins = Coin.objects.order_by("date").filter(name=symbol)
|
2022-05-29 14:03:17 +00:00
|
|
|
for coin in coins:
|
|
|
|
if coin.transactions > 200:
|
|
|
|
transactions.append(coin.transactions)
|
|
|
|
now_transactions = coin.transactions
|
|
|
|
if now_transactions > maximum:
|
2024-11-12 13:09:33 +00:00
|
|
|
maximum = now_transactions
|
2022-05-29 14:03:17 +00:00
|
|
|
else:
|
2024-11-12 13:09:33 +00:00
|
|
|
transactions.append("")
|
|
|
|
|
2022-05-29 14:03:17 +00:00
|
|
|
if coin.priceusd > 0.001:
|
|
|
|
pricexmr.append(coin.priceusd)
|
|
|
|
else:
|
2024-11-12 13:09:33 +00:00
|
|
|
pricexmr.append("")
|
2022-05-29 14:03:17 +00:00
|
|
|
|
2024-11-12 13:09:33 +00:00
|
|
|
coin.date = datetime.datetime.strftime(coin.date, "%Y-%m-%d")
|
2022-05-29 14:03:17 +00:00
|
|
|
dates.append(coin.date)
|
2024-11-12 13:09:33 +00:00
|
|
|
|
2022-05-29 14:03:17 +00:00
|
|
|
now_transactions = int(now_transactions)
|
|
|
|
maximum = int(maximum)
|
2022-09-19 02:38:30 +00:00
|
|
|
|
2024-11-12 13:09:33 +00:00
|
|
|
context = {
|
|
|
|
"transactions": transactions,
|
|
|
|
"dates": dates,
|
|
|
|
"maximum": maximum,
|
|
|
|
"now_transactions": now_transactions,
|
|
|
|
"pricexmr": pricexmr,
|
|
|
|
}
|
|
|
|
return render(request, "charts/translin.html", context)
|
|
|
|
|
2022-05-29 14:03:17 +00:00
|
|
|
|
2022-06-20 03:10:53 +00:00
|
|
|
def transmonth(request):
|
2024-11-12 13:09:33 +00:00
|
|
|
symbol = "xmr"
|
2022-06-20 03:10:53 +00:00
|
|
|
transactions = []
|
|
|
|
pricexmr = []
|
|
|
|
dates = []
|
|
|
|
now_transactions = 0
|
|
|
|
maximum = 0
|
|
|
|
|
2024-11-12 13:09:33 +00:00
|
|
|
month_previous = "2014-01"
|
2022-06-20 03:10:53 +00:00
|
|
|
month = 0
|
|
|
|
total = 0
|
2024-11-12 13:09:33 +00:00
|
|
|
coins = Coin.objects.order_by("date").filter(name=symbol)
|
2022-06-20 03:10:53 +00:00
|
|
|
for coin in coins:
|
|
|
|
aux = str(coin.date)
|
2024-11-12 13:09:33 +00:00
|
|
|
month = aux.split("-")[0] + "-" + aux.split("-")[1]
|
2022-06-20 03:10:53 +00:00
|
|
|
if month != month_previous:
|
|
|
|
dates.append(month_previous)
|
|
|
|
transactions.append(total)
|
|
|
|
if total > maximum:
|
|
|
|
maximum = total
|
|
|
|
total = 0
|
|
|
|
month_previous = month
|
|
|
|
|
|
|
|
if coin.transactions > 0:
|
2024-11-12 13:09:33 +00:00
|
|
|
total += coin.transactions
|
2022-06-20 03:10:53 +00:00
|
|
|
|
|
|
|
now_transactions = int(total)
|
|
|
|
maximum = int(maximum)
|
|
|
|
|
2024-11-12 13:09:33 +00:00
|
|
|
now_transactions = locale.format("%.0f", now_transactions, grouping=True)
|
|
|
|
maximum = locale.format("%.0f", maximum, grouping=True)
|
|
|
|
|
|
|
|
context = {
|
|
|
|
"transactions": transactions,
|
|
|
|
"dates": dates,
|
|
|
|
"maximum": maximum,
|
|
|
|
"now_transactions": now_transactions,
|
|
|
|
"pricexmr": pricexmr,
|
|
|
|
}
|
|
|
|
return render(request, "charts/transmonth.html", context)
|
2022-09-19 02:38:30 +00:00
|
|
|
|
2022-07-19 17:01:52 +00:00
|
|
|
|
|
|
|
def percentmonth(request):
|
2024-11-12 13:09:33 +00:00
|
|
|
symbol = "xmr"
|
2022-07-19 17:01:52 +00:00
|
|
|
transactions = []
|
|
|
|
pricexmr = []
|
|
|
|
dates = []
|
|
|
|
now_transactions = 0
|
|
|
|
maximum = 0
|
|
|
|
|
2024-11-12 13:09:33 +00:00
|
|
|
month_previous = "2014-01"
|
2022-07-19 17:01:52 +00:00
|
|
|
month = 0
|
|
|
|
total = 0
|
|
|
|
total_btc = 0
|
|
|
|
total_xmr = 0
|
2024-11-12 13:09:33 +00:00
|
|
|
coins = Coin.objects.order_by("date").filter(name=symbol)
|
2022-07-19 17:01:52 +00:00
|
|
|
for coin in coins:
|
|
|
|
aux = str(coin.date)
|
2024-11-12 13:09:33 +00:00
|
|
|
month = aux.split("-")[0] + "-" + aux.split("-")[1]
|
2022-07-19 17:01:52 +00:00
|
|
|
try:
|
2024-11-12 13:09:33 +00:00
|
|
|
coin_btc = Coin.objects.filter(name="btc").get(date=coin.date)
|
|
|
|
except Coin.DoesNotExist:
|
2022-07-19 17:01:52 +00:00
|
|
|
pass
|
|
|
|
if month != month_previous:
|
|
|
|
dates.append(month_previous)
|
|
|
|
if total_btc > 0:
|
2024-11-12 13:09:33 +00:00
|
|
|
total = 100 * total_xmr / total_btc
|
2022-07-19 17:01:52 +00:00
|
|
|
else:
|
|
|
|
total = 0
|
|
|
|
transactions.append(total)
|
|
|
|
if total > maximum:
|
|
|
|
maximum = total
|
|
|
|
total_xmr = 0
|
|
|
|
total_btc = 0
|
|
|
|
month_previous = month
|
|
|
|
|
|
|
|
if coin.transactions > 0:
|
2024-11-12 13:09:33 +00:00
|
|
|
total_xmr += coin.transactions
|
2022-07-19 17:01:52 +00:00
|
|
|
if coin_btc.transactions > 0:
|
2024-11-12 13:09:33 +00:00
|
|
|
total_btc += coin_btc.transactions
|
|
|
|
|
2022-07-19 17:01:52 +00:00
|
|
|
if total_btc > 0:
|
2024-11-12 13:09:33 +00:00
|
|
|
total = 100 * total_xmr / total_btc
|
2022-07-19 17:01:52 +00:00
|
|
|
else:
|
2024-11-12 13:09:33 +00:00
|
|
|
total = 0
|
|
|
|
|
|
|
|
now_transactions = locale.format("%.1f", total, grouping=True) + " %"
|
|
|
|
maximum = locale.format("%.1f", maximum, grouping=True) + " %"
|
2022-07-19 17:01:52 +00:00
|
|
|
|
2024-11-12 13:09:33 +00:00
|
|
|
context = {
|
|
|
|
"transactions": transactions,
|
|
|
|
"dates": dates,
|
|
|
|
"maximum": maximum,
|
|
|
|
"now_transactions": now_transactions,
|
|
|
|
"pricexmr": pricexmr,
|
|
|
|
}
|
|
|
|
return render(request, "charts/percentmonth.html", context)
|
2022-09-19 02:38:30 +00:00
|
|
|
|
2022-06-20 03:10:53 +00:00
|
|
|
|
2022-06-21 14:12:13 +00:00
|
|
|
def deviation(request):
|
2024-11-12 13:09:33 +00:00
|
|
|
symbol = "xmr"
|
2022-06-21 14:12:13 +00:00
|
|
|
pricexmr = []
|
|
|
|
dates = []
|
|
|
|
|
2024-11-12 13:09:33 +00:00
|
|
|
coins = Coin.objects.order_by("date").filter(name=symbol)
|
|
|
|
for coin in coins:
|
2022-06-21 14:12:13 +00:00
|
|
|
if coin.priceusd > 0.001:
|
|
|
|
pricexmr.append(coin.priceusd)
|
|
|
|
else:
|
|
|
|
pricexmr.append(0.20)
|
|
|
|
|
2024-11-12 13:09:33 +00:00
|
|
|
coin.date = datetime.datetime.strftime(coin.date, "%Y-%m-%d")
|
2022-06-21 14:12:13 +00:00
|
|
|
dates.append(coin.date)
|
|
|
|
|
|
|
|
n = 180
|
2024-11-12 13:09:33 +00:00
|
|
|
median_long_price = (
|
|
|
|
pd.Series(pricexmr).rolling(window=n).mean().iloc[n - 1 :].values
|
|
|
|
)
|
2022-06-21 14:12:13 +00:00
|
|
|
m_long_price = []
|
|
|
|
for i in range(n):
|
|
|
|
m_long_price.append(0)
|
|
|
|
for item in median_long_price:
|
|
|
|
m_long_price.append(float(item))
|
|
|
|
|
|
|
|
n = 3
|
2024-11-12 13:09:33 +00:00
|
|
|
median_short_price = (
|
|
|
|
pd.Series(pricexmr).rolling(window=n).mean().iloc[n - 1 :].values
|
|
|
|
)
|
2022-06-21 14:12:13 +00:00
|
|
|
m_short_price = []
|
|
|
|
for i in range(n):
|
|
|
|
m_short_price.append(0)
|
|
|
|
for item in median_short_price:
|
|
|
|
m_short_price.append(float(item))
|
|
|
|
|
|
|
|
deviation_percentage = []
|
|
|
|
deviation_price = []
|
|
|
|
for count in range(0, len(m_short_price)):
|
|
|
|
if float(m_long_price[count]) < 0.001:
|
2024-11-12 13:09:33 +00:00
|
|
|
deviation_price.append("")
|
|
|
|
deviation_percentage.append("")
|
|
|
|
else:
|
|
|
|
deviation_price.append(
|
|
|
|
(float(m_short_price[count]) - float(m_long_price[count])) / (1)
|
|
|
|
)
|
|
|
|
deviation_percentage.append(
|
|
|
|
100
|
|
|
|
* (float(m_short_price[count]) - float(m_long_price[count]))
|
|
|
|
/ (float(m_long_price[count]))
|
|
|
|
)
|
|
|
|
|
|
|
|
context = {
|
|
|
|
"deviation_percentage": deviation_percentage,
|
|
|
|
"deviation_price": deviation_price,
|
|
|
|
"dates": dates,
|
|
|
|
"pricexmr": pricexmr,
|
|
|
|
}
|
|
|
|
return render(request, "charts/deviation.html", context)
|
2022-06-21 14:12:13 +00:00
|
|
|
|
|
|
|
|
|
|
|
def deviation_tx(request):
|
2024-11-12 13:09:33 +00:00
|
|
|
symbol = "xmr"
|
2022-06-21 14:12:13 +00:00
|
|
|
transactions = []
|
|
|
|
pricexmr = []
|
|
|
|
dates = []
|
|
|
|
|
2024-11-12 13:09:33 +00:00
|
|
|
coins = Coin.objects.order_by("date").filter(name=symbol)
|
2022-06-21 14:12:13 +00:00
|
|
|
for coin in coins:
|
2024-11-12 13:09:33 +00:00
|
|
|
transactions.append(coin.transactions)
|
2022-06-21 14:12:13 +00:00
|
|
|
if coin.priceusd > 0.001:
|
|
|
|
pricexmr.append(coin.priceusd)
|
|
|
|
else:
|
|
|
|
pricexmr.append(0.20)
|
|
|
|
|
2024-11-12 13:09:33 +00:00
|
|
|
coin.date = datetime.datetime.strftime(coin.date, "%Y-%m-%d")
|
2022-06-21 14:12:13 +00:00
|
|
|
dates.append(coin.date)
|
|
|
|
|
|
|
|
n = 180
|
2024-11-12 13:09:33 +00:00
|
|
|
median_long = pd.Series(transactions).rolling(window=n).mean().iloc[n - 1 :].values
|
2022-06-21 14:12:13 +00:00
|
|
|
m_long = []
|
|
|
|
for i in range(n):
|
|
|
|
m_long.append(0)
|
|
|
|
for item in median_long:
|
|
|
|
m_long.append(float(item))
|
|
|
|
|
2022-06-23 02:08:50 +00:00
|
|
|
n = 3
|
2024-11-12 13:09:33 +00:00
|
|
|
median_short = pd.Series(transactions).rolling(window=n).mean().iloc[n - 1 :].values
|
2022-06-21 14:12:13 +00:00
|
|
|
m_short = []
|
|
|
|
for i in range(n):
|
|
|
|
m_short.append(0)
|
|
|
|
for item in median_short:
|
|
|
|
m_short.append(float(item))
|
|
|
|
|
|
|
|
n = 180
|
2024-11-12 13:09:33 +00:00
|
|
|
median_long_price = (
|
|
|
|
pd.Series(pricexmr).rolling(window=n).mean().iloc[n - 1 :].values
|
|
|
|
)
|
2022-06-21 14:12:13 +00:00
|
|
|
m_long_price = []
|
|
|
|
for i in range(n):
|
|
|
|
m_long_price.append(0)
|
|
|
|
for item in median_long_price:
|
|
|
|
m_long_price.append(float(item))
|
|
|
|
|
|
|
|
n = 3
|
2024-11-12 13:09:33 +00:00
|
|
|
median_short_price = (
|
|
|
|
pd.Series(pricexmr).rolling(window=n).mean().iloc[n - 1 :].values
|
|
|
|
)
|
2022-06-21 14:12:13 +00:00
|
|
|
m_short_price = []
|
|
|
|
for i in range(n):
|
|
|
|
m_short_price.append(0)
|
|
|
|
for item in median_short_price:
|
|
|
|
m_short_price.append(float(item))
|
|
|
|
|
|
|
|
deviation_percentage = []
|
|
|
|
for count in range(0, len(m_short)):
|
2022-06-23 19:26:10 +00:00
|
|
|
if float(m_long[count]) < 0.001 or float(m_long_price[count]) < 0.001:
|
2024-11-12 13:09:33 +00:00
|
|
|
deviation_percentage.append("")
|
2022-06-21 14:12:13 +00:00
|
|
|
else:
|
2024-11-12 13:09:33 +00:00
|
|
|
calculation = (
|
|
|
|
(float(m_short_price[count]) - float(m_long_price[count]))
|
|
|
|
* abs(float(m_short[count]) - float(m_long[count]))
|
|
|
|
/ (float(m_long[count]))
|
|
|
|
)
|
2022-06-23 19:26:10 +00:00
|
|
|
if calculation > 100:
|
|
|
|
calculation = 100
|
|
|
|
if calculation < -100:
|
|
|
|
calculation = -100
|
|
|
|
deviation_percentage.append(calculation)
|
2022-06-21 14:12:13 +00:00
|
|
|
|
2024-11-12 13:09:33 +00:00
|
|
|
context = {
|
|
|
|
"deviation_percentage": deviation_percentage,
|
|
|
|
"dates": dates,
|
|
|
|
"pricexmr": pricexmr,
|
|
|
|
}
|
|
|
|
return render(request, "charts/deviation_tx.html", context)
|
|
|
|
|
2022-06-21 14:12:13 +00:00
|
|
|
|
2022-05-29 14:03:17 +00:00
|
|
|
def percentage(request):
|
2024-11-12 13:09:33 +00:00
|
|
|
data = DailyData.objects.order_by("date")
|
2022-06-05 18:36:57 +00:00
|
|
|
|
2022-05-29 14:03:17 +00:00
|
|
|
transactions = []
|
|
|
|
dates = []
|
|
|
|
now_transactions = 0
|
|
|
|
maximum = 0
|
2024-11-12 13:09:33 +00:00
|
|
|
|
2022-06-05 18:36:57 +00:00
|
|
|
for item in data:
|
2024-11-12 13:09:33 +00:00
|
|
|
dates.append(datetime.datetime.strftime(item.date, "%Y-%m-%d"))
|
2022-06-05 18:36:57 +00:00
|
|
|
if item.xmr_transacpercentage > 0.00001:
|
2024-11-12 13:09:33 +00:00
|
|
|
transactions.append(100 * item.xmr_transacpercentage)
|
|
|
|
now_transactions = 100 * item.xmr_transacpercentage
|
2022-06-05 18:36:57 +00:00
|
|
|
if now_transactions > maximum:
|
|
|
|
maximum = now_transactions
|
|
|
|
else:
|
2024-11-12 13:09:33 +00:00
|
|
|
transactions.append("")
|
|
|
|
|
|
|
|
now_transactions = locale.format("%.1f", now_transactions, grouping=True) + "%"
|
|
|
|
maximum = locale.format("%.1f", maximum, grouping=True) + "%"
|
|
|
|
|
|
|
|
context = {
|
|
|
|
"transactions": transactions,
|
|
|
|
"dates": dates,
|
|
|
|
"now_transactions": now_transactions,
|
|
|
|
"maximum": maximum,
|
|
|
|
}
|
|
|
|
return render(request, "charts/percentage.html", context)
|
2022-09-19 02:38:30 +00:00
|
|
|
|
2022-05-29 14:03:17 +00:00
|
|
|
|
|
|
|
def translog(request):
|
2024-11-12 13:09:33 +00:00
|
|
|
symbol = "xmr"
|
2022-05-29 14:03:17 +00:00
|
|
|
transactions = []
|
|
|
|
pricexmr = []
|
|
|
|
dates = []
|
|
|
|
now_transactions = 0
|
|
|
|
maximum = 0
|
|
|
|
|
2024-11-12 13:09:33 +00:00
|
|
|
coins = Coin.objects.order_by("date").filter(name=symbol)
|
2022-05-29 14:03:17 +00:00
|
|
|
for coin in coins:
|
|
|
|
if coin.transactions > 200:
|
|
|
|
transactions.append(coin.transactions)
|
|
|
|
now_transactions = coin.transactions
|
|
|
|
if now_transactions > maximum:
|
2024-11-12 13:09:33 +00:00
|
|
|
maximum = now_transactions
|
2022-05-29 14:03:17 +00:00
|
|
|
else:
|
2024-11-12 13:09:33 +00:00
|
|
|
transactions.append("")
|
|
|
|
|
2022-05-29 14:03:17 +00:00
|
|
|
if coin.priceusd > 0.001:
|
|
|
|
pricexmr.append(coin.priceusd)
|
|
|
|
else:
|
2024-11-12 13:09:33 +00:00
|
|
|
pricexmr.append("")
|
2022-05-29 14:03:17 +00:00
|
|
|
|
2024-11-12 13:09:33 +00:00
|
|
|
coin.date = datetime.datetime.strftime(coin.date, "%Y-%m-%d")
|
2022-05-29 14:03:17 +00:00
|
|
|
dates.append(coin.date)
|
2024-11-12 13:09:33 +00:00
|
|
|
|
2022-05-29 14:03:17 +00:00
|
|
|
now_transactions = int(now_transactions)
|
|
|
|
maximum = int(maximum)
|
2022-09-19 02:38:30 +00:00
|
|
|
|
2024-11-12 13:09:33 +00:00
|
|
|
context = {
|
|
|
|
"transactions": transactions,
|
|
|
|
"dates": dates,
|
|
|
|
"maximum": maximum,
|
|
|
|
"now_transactions": now_transactions,
|
|
|
|
"pricexmr": pricexmr,
|
|
|
|
}
|
|
|
|
return render(request, "charts/translog.html", context)
|
|
|
|
|
2022-05-29 14:03:17 +00:00
|
|
|
|
|
|
|
def hashrate(request):
|
2024-11-12 13:09:33 +00:00
|
|
|
symbol = "xmr"
|
2022-05-29 14:03:17 +00:00
|
|
|
hashrate = []
|
|
|
|
dates = []
|
|
|
|
now_hashrate = 0
|
|
|
|
|
2024-11-12 13:09:33 +00:00
|
|
|
coins = Coin.objects.order_by("date").filter(name=symbol)
|
2022-05-29 14:03:17 +00:00
|
|
|
for coin in coins:
|
2024-11-12 13:09:33 +00:00
|
|
|
coin.date = datetime.datetime.strftime(coin.date, "%Y-%m-%d")
|
2022-05-29 14:03:17 +00:00
|
|
|
dates.append(coin.date)
|
|
|
|
if coin.hashrate > 0:
|
|
|
|
now_hashrate = coin.hashrate
|
2022-06-20 03:10:53 +00:00
|
|
|
hashrate.append(coin.hashrate)
|
|
|
|
else:
|
2024-11-12 13:09:33 +00:00
|
|
|
hashrate.append("")
|
|
|
|
|
|
|
|
now_hashrate = locale.format("%.0f", now_hashrate, grouping=True)
|
2022-06-20 03:10:53 +00:00
|
|
|
|
2024-11-12 13:09:33 +00:00
|
|
|
context = {"hashrate": hashrate, "dates": dates, "now_hashrate": now_hashrate}
|
|
|
|
return render(request, "charts/hashrate.html", context)
|
2022-09-19 02:38:30 +00:00
|
|
|
|
2022-05-29 14:03:17 +00:00
|
|
|
|
|
|
|
def hashprice(request):
|
2024-11-12 13:09:33 +00:00
|
|
|
symbol = "xmr"
|
2022-05-29 14:03:17 +00:00
|
|
|
hashrate = []
|
|
|
|
dates = []
|
|
|
|
buy = []
|
|
|
|
sell = []
|
|
|
|
now_hashrate = 0
|
|
|
|
color = []
|
|
|
|
v0 = 0.002
|
2024-11-12 13:09:33 +00:00
|
|
|
delta = (0.015 - 0.002) / (6 * 365)
|
2022-05-29 14:03:17 +00:00
|
|
|
count = 0
|
|
|
|
|
2024-11-12 13:09:33 +00:00
|
|
|
coins = Coin.objects.order_by("date").filter(name=symbol)
|
2022-05-29 14:03:17 +00:00
|
|
|
for coin in coins:
|
|
|
|
if count > 50:
|
|
|
|
buy.append(0.00000003)
|
|
|
|
sell.append(0.00000100)
|
2024-11-12 13:09:33 +00:00
|
|
|
coin.date = datetime.datetime.strftime(coin.date, "%Y-%m-%d")
|
2022-05-29 14:03:17 +00:00
|
|
|
dates.append(coin.date)
|
|
|
|
if coin.hashrate > 0 and coin.priceusd > 0:
|
2024-11-12 13:09:33 +00:00
|
|
|
now_hashrate = coin.priceusd / coin.hashrate
|
2022-05-29 14:03:17 +00:00
|
|
|
hashrate.append(now_hashrate)
|
|
|
|
else:
|
2024-11-12 13:09:33 +00:00
|
|
|
hashrate.append("")
|
|
|
|
new_color = 30 * coin.pricebtc / (count * delta + v0)
|
2022-05-29 14:03:17 +00:00
|
|
|
color.append(new_color)
|
|
|
|
count += 1
|
2022-09-19 02:38:30 +00:00
|
|
|
|
2024-11-12 13:09:33 +00:00
|
|
|
now_hashrate = locale.format("%.8f", now_hashrate, grouping=True)
|
|
|
|
|
|
|
|
context = {
|
|
|
|
"hashrate": hashrate,
|
|
|
|
"dates": dates,
|
|
|
|
"now_hashrate": now_hashrate,
|
|
|
|
"color": color,
|
|
|
|
"buy": buy,
|
|
|
|
"sell": sell,
|
|
|
|
}
|
|
|
|
return render(request, "charts/hashprice.html", context)
|
|
|
|
|
2022-05-29 14:03:17 +00:00
|
|
|
|
|
|
|
def hashvsprice(request):
|
2024-11-12 13:09:33 +00:00
|
|
|
symbol = "xmr"
|
2022-05-29 14:03:17 +00:00
|
|
|
hashrate = []
|
|
|
|
prices = []
|
|
|
|
dates = []
|
|
|
|
now_hashrate = 0
|
|
|
|
now_priceusd = 0
|
|
|
|
now_pricebtc = 0
|
|
|
|
color = []
|
|
|
|
v0 = 0.002
|
2024-11-12 13:09:33 +00:00
|
|
|
delta = (0.015 - 0.002) / (6 * 365)
|
2022-05-29 14:03:17 +00:00
|
|
|
count = 0
|
|
|
|
|
2024-11-12 13:09:33 +00:00
|
|
|
coins = Coin.objects.order_by("date").filter(name=symbol)
|
2022-05-29 14:03:17 +00:00
|
|
|
for coin in coins:
|
|
|
|
if count > 55:
|
2024-11-12 13:09:33 +00:00
|
|
|
coin.date = datetime.datetime.strftime(coin.date, "%Y-%m-%d")
|
2022-05-29 14:03:17 +00:00
|
|
|
dates.append(coin.date)
|
2022-06-20 03:10:53 +00:00
|
|
|
if coin.priceusd > 0 and coin.hashrate:
|
2022-05-29 14:03:17 +00:00
|
|
|
now_hashrate = coin.hashrate
|
|
|
|
now_priceusd = coin.priceusd
|
|
|
|
now_pricebtc = coin.pricebtc
|
|
|
|
hashrate.append(now_hashrate)
|
|
|
|
prices.append(now_priceusd)
|
|
|
|
else:
|
2024-11-12 13:09:33 +00:00
|
|
|
hashrate.append("")
|
|
|
|
prices.append("")
|
|
|
|
new_color = 30 * coin.pricebtc / (count * delta + v0)
|
2022-05-29 14:03:17 +00:00
|
|
|
color.append(new_color)
|
|
|
|
count += 1
|
2022-09-19 02:38:30 +00:00
|
|
|
|
2024-11-12 13:09:33 +00:00
|
|
|
now_hashrate = locale.format("%.0f", now_hashrate, grouping=True)
|
|
|
|
now_priceusd = "$" + locale.format("%.2f", now_priceusd, grouping=True)
|
|
|
|
now_pricebtc = locale.format("%.5f", now_pricebtc, grouping=True) + " BTC"
|
|
|
|
|
|
|
|
context = {
|
|
|
|
"hashrate": hashrate,
|
|
|
|
"dates": dates,
|
|
|
|
"now_hashrate": now_hashrate,
|
|
|
|
"color": color,
|
|
|
|
"prices": prices,
|
|
|
|
"now_pricebtc": now_pricebtc,
|
|
|
|
"now_priceusd": now_priceusd,
|
|
|
|
}
|
|
|
|
return render(request, "charts/hashvsprice.html", context)
|
|
|
|
|
2022-05-29 14:03:17 +00:00
|
|
|
|
|
|
|
def metcalfesats(request):
|
2024-11-12 13:09:33 +00:00
|
|
|
data = DailyData.objects.order_by("date")
|
|
|
|
|
2022-05-29 14:03:17 +00:00
|
|
|
color = []
|
|
|
|
metcalfe = []
|
|
|
|
prices = []
|
|
|
|
dates = []
|
|
|
|
now_metcalfe = 0
|
|
|
|
now_price = 0
|
|
|
|
maximum = 0
|
|
|
|
v0 = 0.002
|
2024-11-12 13:09:33 +00:00
|
|
|
delta = (0.015 - 0.002) / (6 * 365)
|
2022-05-29 14:03:17 +00:00
|
|
|
count = 0
|
|
|
|
|
2022-06-05 18:36:57 +00:00
|
|
|
for item in data:
|
2024-11-12 13:09:33 +00:00
|
|
|
dates.append(datetime.datetime.strftime(item.date, "%Y-%m-%d"))
|
2022-06-05 18:36:57 +00:00
|
|
|
if item.xmr_metcalfebtc < 0.0007:
|
2024-11-12 13:09:33 +00:00
|
|
|
metcalfe.append("")
|
|
|
|
color.append("")
|
|
|
|
prices.append("")
|
2022-06-05 18:36:57 +00:00
|
|
|
else:
|
|
|
|
metcalfe.append(item.xmr_metcalfebtc)
|
|
|
|
now_price = item.xmr_pricebtc
|
|
|
|
now_metcalfe = item.xmr_metcalfebtc
|
|
|
|
if now_metcalfe > maximum:
|
|
|
|
maximum = now_metcalfe
|
2024-11-12 13:09:33 +00:00
|
|
|
color.append(30 * item.xmr_pricebtc / (count * delta + v0))
|
2022-06-05 18:36:57 +00:00
|
|
|
prices.append(now_price)
|
|
|
|
count += 1
|
2022-09-19 02:38:30 +00:00
|
|
|
|
2024-11-12 13:09:33 +00:00
|
|
|
now_price = locale.format("%.4f", now_price, grouping=True) + " BTC"
|
|
|
|
now_metcalfe = locale.format("%.4f", now_metcalfe, grouping=True) + " BTC"
|
|
|
|
maximum = locale.format("%.4f", maximum, grouping=True) + " BTC"
|
|
|
|
|
|
|
|
context = {
|
|
|
|
"metcalfe": metcalfe,
|
|
|
|
"dates": dates,
|
|
|
|
"maximum": maximum,
|
|
|
|
"now_metcalfe": now_metcalfe,
|
|
|
|
"color": color,
|
|
|
|
"prices": prices,
|
|
|
|
"now_price": now_price,
|
|
|
|
}
|
|
|
|
return render(request, "charts/metcalfesats.html", context)
|
|
|
|
|
2022-05-29 14:03:17 +00:00
|
|
|
|
2022-08-11 02:51:20 +00:00
|
|
|
def metcalfesats_deviation(request):
|
2024-11-12 13:09:33 +00:00
|
|
|
data = DailyData.objects.order_by("date")
|
|
|
|
|
2022-08-11 02:51:20 +00:00
|
|
|
metcalfe_percentage = []
|
|
|
|
metcalfe = []
|
|
|
|
dates = []
|
|
|
|
now_metcalfe = 0
|
|
|
|
now_metcalfe_percentage = 0
|
|
|
|
|
|
|
|
for item in data:
|
2024-11-12 13:09:33 +00:00
|
|
|
dates.append(datetime.datetime.strftime(item.date, "%Y-%m-%d"))
|
2022-08-11 02:51:20 +00:00
|
|
|
if item.xmr_metcalfebtc < 0.0007 and item.xmr_pricebtc <= 0:
|
2024-11-12 13:09:33 +00:00
|
|
|
metcalfe.append("")
|
|
|
|
metcalfe_percentage.append("")
|
2022-08-11 02:51:20 +00:00
|
|
|
else:
|
|
|
|
now_metcalfe = item.xmr_metcalfebtc - item.xmr_pricebtc
|
2024-11-12 13:09:33 +00:00
|
|
|
now_metcalfe_percentage = 100 * (
|
|
|
|
(item.xmr_metcalfebtc / item.xmr_pricebtc) - 1
|
|
|
|
)
|
2022-08-11 02:51:20 +00:00
|
|
|
metcalfe.append(now_metcalfe)
|
|
|
|
metcalfe_percentage.append(now_metcalfe_percentage)
|
2022-09-19 02:38:30 +00:00
|
|
|
|
2024-11-12 13:09:33 +00:00
|
|
|
now_metcalfe = locale.format("%.4f", now_metcalfe, grouping=True)
|
|
|
|
now_metcalfe_percentage = locale.format(
|
|
|
|
"%.0f", now_metcalfe_percentage, grouping=True
|
|
|
|
)
|
|
|
|
|
|
|
|
context = {
|
|
|
|
"metcalfe": metcalfe,
|
|
|
|
"dates": dates,
|
|
|
|
"now_metcalfe": now_metcalfe,
|
|
|
|
"now_metcalfe_percentage": now_metcalfe_percentage,
|
|
|
|
"metcalfe_percentage": metcalfe_percentage,
|
|
|
|
}
|
|
|
|
return render(request, "charts/metcalfesats_deviation.html", context)
|
|
|
|
|
2022-08-11 02:51:20 +00:00
|
|
|
|
|
|
|
def metcalfe_deviation(request):
|
2024-11-12 13:09:33 +00:00
|
|
|
data = DailyData.objects.order_by("date")
|
|
|
|
|
2022-08-11 02:51:20 +00:00
|
|
|
metcalfe_percentage = []
|
|
|
|
metcalfe = []
|
|
|
|
dates = []
|
|
|
|
now_metcalfe = 0
|
|
|
|
now_metcalfe_percentage = 0
|
|
|
|
|
|
|
|
for item in data:
|
2024-11-12 13:09:33 +00:00
|
|
|
dates.append(datetime.datetime.strftime(item.date, "%Y-%m-%d"))
|
2022-08-11 02:51:20 +00:00
|
|
|
if item.xmr_metcalfeusd < 0.0007 and item.xmr_priceusd <= 0:
|
2024-11-12 13:09:33 +00:00
|
|
|
metcalfe.append("")
|
|
|
|
metcalfe_percentage.append("")
|
2022-08-11 02:51:20 +00:00
|
|
|
else:
|
|
|
|
now_metcalfe = item.xmr_metcalfeusd - item.xmr_priceusd
|
2024-11-12 13:09:33 +00:00
|
|
|
now_metcalfe_percentage = 100 * (
|
|
|
|
(item.xmr_metcalfeusd / item.xmr_priceusd) - 1
|
|
|
|
)
|
2022-08-11 02:51:20 +00:00
|
|
|
metcalfe.append(now_metcalfe)
|
|
|
|
metcalfe_percentage.append(now_metcalfe_percentage)
|
2022-09-19 02:38:30 +00:00
|
|
|
|
2024-11-12 13:09:33 +00:00
|
|
|
now_metcalfe = locale.format("%.0f", now_metcalfe, grouping=True)
|
|
|
|
now_metcalfe_percentage = locale.format(
|
|
|
|
"%.0f", now_metcalfe_percentage, grouping=True
|
|
|
|
)
|
|
|
|
|
|
|
|
context = {
|
|
|
|
"metcalfe": metcalfe,
|
|
|
|
"dates": dates,
|
|
|
|
"now_metcalfe": now_metcalfe,
|
|
|
|
"now_metcalfe_percentage": now_metcalfe_percentage,
|
|
|
|
"metcalfe_percentage": metcalfe_percentage,
|
|
|
|
}
|
|
|
|
return render(request, "charts/metcalfe_deviation.html", context)
|
|
|
|
|
2022-08-11 02:51:20 +00:00
|
|
|
|
2022-05-29 14:03:17 +00:00
|
|
|
def metcalfeusd(request):
|
2024-11-12 13:09:33 +00:00
|
|
|
data = DailyData.objects.order_by("date")
|
|
|
|
|
2022-05-29 14:03:17 +00:00
|
|
|
color = []
|
|
|
|
metcalfe = []
|
|
|
|
prices = []
|
|
|
|
dates = []
|
|
|
|
now_metcalfe = 0
|
|
|
|
now_price = 0
|
|
|
|
maximum = 0
|
|
|
|
v0 = 0.002
|
2024-11-12 13:09:33 +00:00
|
|
|
delta = (0.015 - 0.002) / (6 * 365)
|
2022-05-29 14:03:17 +00:00
|
|
|
count = 0
|
|
|
|
|
2022-06-05 18:36:57 +00:00
|
|
|
for item in data:
|
2024-11-12 13:09:33 +00:00
|
|
|
dates.append(datetime.datetime.strftime(item.date, "%Y-%m-%d"))
|
2022-06-05 18:36:57 +00:00
|
|
|
if item.xmr_metcalfeusd < 0.001:
|
2024-11-12 13:09:33 +00:00
|
|
|
metcalfe.append("")
|
|
|
|
color.append("")
|
|
|
|
prices.append("")
|
2022-06-05 18:36:57 +00:00
|
|
|
else:
|
|
|
|
metcalfe.append(item.xmr_metcalfeusd)
|
|
|
|
now_price = item.xmr_priceusd
|
|
|
|
now_metcalfe = item.xmr_metcalfeusd
|
|
|
|
if now_metcalfe > maximum:
|
|
|
|
maximum = now_metcalfe
|
2024-11-12 13:09:33 +00:00
|
|
|
color.append(30 * item.xmr_pricebtc / (count * delta + v0))
|
2022-06-05 18:36:57 +00:00
|
|
|
prices.append(now_price)
|
|
|
|
count += 1
|
2022-05-29 14:03:17 +00:00
|
|
|
|
2024-11-12 13:09:33 +00:00
|
|
|
now_price = "$" + locale.format("%.2f", now_price, grouping=True)
|
|
|
|
now_metcalfe = "$" + locale.format("%.2f", now_metcalfe, grouping=True)
|
|
|
|
maximum = "$" + locale.format("%.2f", maximum, grouping=True)
|
|
|
|
|
|
|
|
context = {
|
|
|
|
"metcalfe": metcalfe,
|
|
|
|
"dates": dates,
|
|
|
|
"maximum": maximum,
|
|
|
|
"now_metcalfe": now_metcalfe,
|
|
|
|
"color": color,
|
|
|
|
"prices": prices,
|
|
|
|
"now_price": now_price,
|
|
|
|
}
|
|
|
|
return render(request, "charts/metcalfeusd.html", context)
|
2022-09-19 02:38:30 +00:00
|
|
|
|
2022-05-29 14:03:17 +00:00
|
|
|
|
|
|
|
def coins(request):
|
2024-11-12 13:09:33 +00:00
|
|
|
data = DailyData.objects.order_by("date")
|
2022-05-29 14:03:17 +00:00
|
|
|
|
|
|
|
supplyxmr = []
|
|
|
|
supplybtc = []
|
|
|
|
fsupplyxmr = []
|
|
|
|
fsupplybtc = []
|
|
|
|
dates = []
|
|
|
|
now_xmr = 0
|
|
|
|
now_btc = 0
|
2024-11-12 13:09:33 +00:00
|
|
|
|
2022-06-05 18:36:57 +00:00
|
|
|
for item in data:
|
2024-11-12 13:09:33 +00:00
|
|
|
dates.append(datetime.datetime.strftime(item.date, "%Y-%m-%d"))
|
2022-06-05 18:36:57 +00:00
|
|
|
|
|
|
|
if item.btc_supply > 0.1:
|
|
|
|
supplybtc.append(item.btc_supply)
|
|
|
|
now_btc = item.btc_supply
|
|
|
|
else:
|
2024-11-12 13:09:33 +00:00
|
|
|
supplybtc.append("")
|
2022-06-05 18:36:57 +00:00
|
|
|
|
|
|
|
if item.xmr_inflation > 0.1:
|
|
|
|
supplyxmr.append(item.xmr_supply)
|
|
|
|
now_xmr = item.xmr_supply
|
2022-05-29 14:03:17 +00:00
|
|
|
else:
|
2024-11-12 13:09:33 +00:00
|
|
|
supplyxmr.append("")
|
2022-06-05 18:36:57 +00:00
|
|
|
|
2024-11-12 13:09:33 +00:00
|
|
|
fsupplyxmr.append("")
|
|
|
|
fsupplybtc.append("")
|
2022-05-29 14:03:17 +00:00
|
|
|
|
|
|
|
rewardbtc = 900
|
2022-06-05 18:36:57 +00:00
|
|
|
supplybitcoin = item.btc_supply
|
2024-11-12 13:09:33 +00:00
|
|
|
supply = int(item.xmr_supply) * 10**12
|
|
|
|
for i in range(365 * (2060 - 2020)):
|
2022-05-29 14:03:17 +00:00
|
|
|
supply = int(supply)
|
2024-11-12 13:09:33 +00:00
|
|
|
reward = (2**64 - 1 - supply) >> 19
|
|
|
|
if reward < 0.6 * (10**12):
|
|
|
|
reward = 0.6 * (10**12)
|
|
|
|
supply += int(720 * reward)
|
|
|
|
fsupplyxmr.append(supply / (10**12))
|
2022-06-05 18:36:57 +00:00
|
|
|
date_aux = item.date + timedelta(i)
|
2024-11-12 13:09:33 +00:00
|
|
|
dates.append(datetime.datetime.strftime(date_aux, "%Y-%m-%d"))
|
2022-05-29 14:03:17 +00:00
|
|
|
supplybitcoin += rewardbtc
|
|
|
|
if supplybitcoin > 21000000:
|
|
|
|
supplybitcoin = 21000000
|
|
|
|
fsupplybtc.append(supplybitcoin)
|
2024-11-12 13:09:33 +00:00
|
|
|
date_aux2 = datetime.datetime.strftime(date_aux, "%Y-%m-%d")
|
|
|
|
if date_aux2 == "2024-04-23":
|
|
|
|
rewardbtc = rewardbtc / 2
|
|
|
|
if date_aux2 == "2028-05-05":
|
|
|
|
rewardbtc = rewardbtc / 2
|
|
|
|
if date_aux2 == "2032-05-03":
|
|
|
|
rewardbtc = rewardbtc / 2
|
|
|
|
if date_aux2 == "2036-04-30":
|
|
|
|
rewardbtc = rewardbtc / 2
|
|
|
|
if date_aux2 == "2040-04-27":
|
|
|
|
rewardbtc = rewardbtc / 2
|
|
|
|
if date_aux2 == "2044-04-25":
|
|
|
|
rewardbtc = rewardbtc / 2
|
|
|
|
if date_aux2 == "2048-04-22":
|
|
|
|
rewardbtc = rewardbtc / 2
|
|
|
|
if date_aux2 == "2052-04-19":
|
|
|
|
rewardbtc = rewardbtc / 2
|
|
|
|
if date_aux2 == "2056-04-30":
|
|
|
|
rewardbtc = rewardbtc / 2
|
|
|
|
if date_aux2 == "2060-04-27":
|
|
|
|
rewardbtc = rewardbtc / 2
|
|
|
|
if date_aux2 == "2064-04-25":
|
|
|
|
rewardbtc = rewardbtc / 2
|
|
|
|
if date_aux2 == "2068-04-22":
|
|
|
|
rewardbtc = rewardbtc / 2
|
|
|
|
if date_aux2 == "2072-04-19":
|
|
|
|
rewardbtc = rewardbtc / 2
|
|
|
|
if date_aux2 == "2076-04-30":
|
|
|
|
rewardbtc = rewardbtc / 2
|
|
|
|
if date_aux2 == "2080-04-27":
|
|
|
|
rewardbtc = rewardbtc / 2
|
|
|
|
if date_aux2 == "2084-04-25":
|
|
|
|
rewardbtc = rewardbtc / 2
|
|
|
|
if date_aux2 == "2088-04-22":
|
|
|
|
rewardbtc = rewardbtc / 2
|
|
|
|
if date_aux2 == "2140-01-01":
|
2022-05-29 14:03:17 +00:00
|
|
|
rewardbtc = 0
|
|
|
|
supplybitcoin = 21000000
|
2024-11-12 13:09:33 +00:00
|
|
|
supplyxmr.append("")
|
|
|
|
supplybtc.append("")
|
|
|
|
|
|
|
|
now_btc = locale.format("%.0f", now_btc, grouping=True)
|
|
|
|
now_xmr = locale.format("%.0f", now_xmr, grouping=True)
|
|
|
|
|
|
|
|
context = {
|
|
|
|
"supplyxmr": supplyxmr,
|
|
|
|
"supplybtc": supplybtc,
|
|
|
|
"fsupplyxmr": fsupplyxmr,
|
|
|
|
"fsupplybtc": fsupplybtc,
|
|
|
|
"now_xmr": now_xmr,
|
|
|
|
"now_btc": now_btc,
|
|
|
|
"dates": dates,
|
|
|
|
}
|
|
|
|
return render(request, "charts/coins.html", context)
|
2022-09-19 02:38:30 +00:00
|
|
|
|
2022-05-29 14:03:17 +00:00
|
|
|
|
|
|
|
def dailyemission(request):
|
2024-11-12 13:09:33 +00:00
|
|
|
data = DailyData.objects.order_by("date")
|
2022-05-29 14:03:17 +00:00
|
|
|
|
|
|
|
emissionbtc = []
|
|
|
|
emissionxmr = []
|
|
|
|
dates = []
|
|
|
|
now_btc = 0
|
|
|
|
now_xmr = 0
|
|
|
|
high_btc = 0
|
|
|
|
high_xmr = 0
|
|
|
|
|
2022-06-05 18:36:57 +00:00
|
|
|
for item in data:
|
2022-06-09 19:23:30 +00:00
|
|
|
if item.btc_emissionusd == 0:
|
2024-11-12 13:09:33 +00:00
|
|
|
emissionbtc.append("")
|
2022-05-29 14:03:17 +00:00
|
|
|
else:
|
2022-06-09 19:23:30 +00:00
|
|
|
emissionbtc.append(item.btc_emissionusd)
|
|
|
|
now_btc = item.btc_emissionusd
|
|
|
|
if item.btc_emissionusd > high_btc:
|
|
|
|
high_btc = item.btc_emissionusd
|
2024-11-12 13:09:33 +00:00
|
|
|
|
2022-06-09 19:23:30 +00:00
|
|
|
if item.xmr_emissionusd == 0:
|
2024-11-12 13:09:33 +00:00
|
|
|
emissionxmr.append("")
|
2022-06-05 18:36:57 +00:00
|
|
|
else:
|
2022-06-09 19:23:30 +00:00
|
|
|
emissionxmr.append(item.xmr_emissionusd)
|
|
|
|
now_xmr = item.xmr_emissionusd
|
|
|
|
if item.xmr_emissionusd > high_xmr:
|
|
|
|
high_xmr = item.xmr_emissionusd
|
2024-11-12 13:09:33 +00:00
|
|
|
dates.append(datetime.datetime.strftime(item.date, "%Y-%m-%d"))
|
2022-05-29 14:03:17 +00:00
|
|
|
|
|
|
|
for i in range(500):
|
2022-06-05 18:36:57 +00:00
|
|
|
date_aux = item.date + timedelta(i)
|
2024-11-12 13:09:33 +00:00
|
|
|
dates.append(datetime.datetime.strftime(date_aux, "%Y-%m-%d"))
|
|
|
|
emissionxmr.append("")
|
|
|
|
emissionbtc.append("")
|
|
|
|
|
|
|
|
now_btc = "$" + locale.format("%.0f", now_btc, grouping=True)
|
|
|
|
now_xmr = "$" + locale.format("%.0f", now_xmr, grouping=True)
|
|
|
|
high_btc = "$" + locale.format("%.0f", high_btc, grouping=True)
|
|
|
|
high_xmr = "$" + locale.format("%.0f", high_xmr, grouping=True)
|
|
|
|
|
|
|
|
context = {
|
|
|
|
"emissionxmr": emissionxmr,
|
|
|
|
"emissionbtc": emissionbtc,
|
|
|
|
"high_xmr": high_xmr,
|
|
|
|
"high_btc": high_btc,
|
|
|
|
"now_xmr": now_xmr,
|
|
|
|
"now_btc": now_btc,
|
|
|
|
"dates": dates,
|
|
|
|
}
|
|
|
|
return render(request, "charts/dailyemission.html", context)
|
|
|
|
|
2022-05-29 14:03:17 +00:00
|
|
|
|
|
|
|
def extracoins(request):
|
2024-11-12 13:09:33 +00:00
|
|
|
data = DailyData.objects.order_by("date")
|
2022-05-29 14:03:17 +00:00
|
|
|
|
|
|
|
nsupply = []
|
|
|
|
fsupply = []
|
|
|
|
dates = []
|
|
|
|
now_diff = 0
|
2024-11-12 13:09:33 +00:00
|
|
|
|
2022-06-05 18:36:57 +00:00
|
|
|
for item in data:
|
2024-11-12 13:09:33 +00:00
|
|
|
dates.append(datetime.datetime.strftime(item.date, "%Y-%m-%d"))
|
2022-06-05 18:36:57 +00:00
|
|
|
|
|
|
|
if item.btc_supply - item.xmr_supply > 0:
|
|
|
|
nsupply.append(item.btc_supply - item.xmr_supply)
|
2022-05-29 14:03:17 +00:00
|
|
|
else:
|
2024-11-12 13:09:33 +00:00
|
|
|
nsupply.append("")
|
2022-06-05 18:36:57 +00:00
|
|
|
|
2024-11-12 13:09:33 +00:00
|
|
|
fsupply.append("")
|
2022-05-29 14:03:17 +00:00
|
|
|
|
|
|
|
rewardbtc = 900
|
2022-06-05 18:36:57 +00:00
|
|
|
supplybitcoin = item.btc_supply
|
2024-11-12 13:09:33 +00:00
|
|
|
supply = int(item.xmr_supply) * 10**12
|
|
|
|
for i in range(365 * (2060 - 2020)):
|
2022-05-29 14:03:17 +00:00
|
|
|
supply = int(supply)
|
2024-11-12 13:09:33 +00:00
|
|
|
reward = (2**64 - 1 - supply) >> 19
|
|
|
|
if reward < 0.6 * (10**12):
|
|
|
|
reward = 0.6 * (10**12)
|
|
|
|
supply += int(720 * reward)
|
2022-06-05 18:36:57 +00:00
|
|
|
date_aux = item.date + timedelta(i)
|
2024-11-12 13:09:33 +00:00
|
|
|
dates.append(datetime.datetime.strftime(date_aux, "%Y-%m-%d"))
|
2022-05-29 14:03:17 +00:00
|
|
|
supplybitcoin += rewardbtc
|
|
|
|
if supplybitcoin > 21000000:
|
|
|
|
supplybitcoin = 21000000
|
2024-11-12 13:09:33 +00:00
|
|
|
fsupply.append(-supply / (10**12) + supplybitcoin)
|
|
|
|
date_aux2 = datetime.datetime.strftime(date_aux, "%Y-%m-%d")
|
|
|
|
if date_aux2 == "2024-04-23":
|
|
|
|
rewardbtc = rewardbtc / 2
|
|
|
|
if date_aux2 == "2028-05-05":
|
|
|
|
rewardbtc = rewardbtc / 2
|
|
|
|
if date_aux2 == "2032-05-03":
|
|
|
|
rewardbtc = rewardbtc / 2
|
|
|
|
if date_aux2 == "2036-04-30":
|
|
|
|
rewardbtc = rewardbtc / 2
|
|
|
|
if date_aux2 == "2040-04-27":
|
|
|
|
rewardbtc = rewardbtc / 2
|
|
|
|
if date_aux2 == "2044-04-25":
|
|
|
|
rewardbtc = rewardbtc / 2
|
|
|
|
if date_aux2 == "2048-04-22":
|
|
|
|
rewardbtc = rewardbtc / 2
|
|
|
|
if date_aux2 == "2052-04-19":
|
|
|
|
rewardbtc = rewardbtc / 2
|
|
|
|
if date_aux2 == "2056-04-30":
|
|
|
|
rewardbtc = rewardbtc / 2
|
|
|
|
if date_aux2 == "2060-04-27":
|
|
|
|
rewardbtc = rewardbtc / 2
|
|
|
|
if date_aux2 == "2064-04-25":
|
|
|
|
rewardbtc = rewardbtc / 2
|
|
|
|
if date_aux2 == "2068-04-22":
|
|
|
|
rewardbtc = rewardbtc / 2
|
|
|
|
if date_aux2 == "2072-04-19":
|
|
|
|
rewardbtc = rewardbtc / 2
|
|
|
|
if date_aux2 == "2076-04-30":
|
|
|
|
rewardbtc = rewardbtc / 2
|
|
|
|
if date_aux2 == "2080-04-27":
|
|
|
|
rewardbtc = rewardbtc / 2
|
|
|
|
if date_aux2 == "2084-04-25":
|
|
|
|
rewardbtc = rewardbtc / 2
|
|
|
|
if date_aux2 == "2088-04-22":
|
|
|
|
rewardbtc = rewardbtc / 2
|
|
|
|
if date_aux2 == "2140-01-01":
|
2022-05-29 14:03:17 +00:00
|
|
|
rewardbtc = 0
|
|
|
|
supplybitcoin = 21000000
|
2024-11-12 13:09:33 +00:00
|
|
|
nsupply.append("")
|
|
|
|
|
|
|
|
now_diff = locale.format("%.0f", now_diff, grouping=True)
|
|
|
|
|
|
|
|
context = {
|
|
|
|
"nsupply": nsupply,
|
|
|
|
"fsupply": fsupply,
|
|
|
|
"dates": dates,
|
|
|
|
"now_diff": now_diff,
|
|
|
|
}
|
|
|
|
return render(request, "charts/extracoins.html", context)
|
2022-09-19 02:38:30 +00:00
|
|
|
|
2022-05-29 14:03:17 +00:00
|
|
|
|
|
|
|
def inflation(request):
|
2024-11-12 13:09:33 +00:00
|
|
|
data = DailyData.objects.order_by("date")
|
2022-05-29 14:03:17 +00:00
|
|
|
|
|
|
|
inflationxmr = []
|
|
|
|
inflationbtc = []
|
|
|
|
finflationxmr = []
|
|
|
|
finflationbtc = []
|
|
|
|
dates = []
|
|
|
|
now_xmr = 999999
|
|
|
|
now_btc = 999999
|
2024-11-12 13:09:33 +00:00
|
|
|
|
2022-06-05 18:36:57 +00:00
|
|
|
for item in data:
|
2024-11-12 13:09:33 +00:00
|
|
|
dates.append(datetime.datetime.strftime(item.date, "%Y-%m-%d"))
|
2022-06-05 18:36:57 +00:00
|
|
|
|
|
|
|
if item.btc_inflation > 0.1:
|
|
|
|
inflationbtc.append(item.btc_inflation)
|
|
|
|
now_btc = item.btc_inflation
|
2022-05-29 14:03:17 +00:00
|
|
|
else:
|
2024-11-12 13:09:33 +00:00
|
|
|
inflationbtc.append("")
|
2022-06-05 18:36:57 +00:00
|
|
|
|
|
|
|
if item.xmr_inflation > 0.1:
|
|
|
|
inflationxmr.append(item.xmr_inflation)
|
|
|
|
now_xmr = item.xmr_inflation
|
2022-05-29 14:03:17 +00:00
|
|
|
else:
|
2024-11-12 13:09:33 +00:00
|
|
|
inflationxmr.append("")
|
|
|
|
|
|
|
|
finflationxmr.append("")
|
|
|
|
finflationbtc.append("")
|
2022-05-29 14:03:17 +00:00
|
|
|
|
|
|
|
inflationbitcoin = 1.75
|
2024-11-12 13:09:33 +00:00
|
|
|
supply = int(item.xmr_supply) * 10**12
|
2022-05-29 14:03:17 +00:00
|
|
|
for i in range(2000):
|
|
|
|
supply = int(supply)
|
2024-11-12 13:09:33 +00:00
|
|
|
reward = (2**64 - 1 - supply) >> 19
|
|
|
|
if reward < 0.6 * (10**12):
|
|
|
|
reward = 0.6 * (10**12)
|
|
|
|
supply += int(720 * reward)
|
|
|
|
finflationxmr.append(100 * reward * 720 * 365 / supply)
|
2022-06-05 18:36:57 +00:00
|
|
|
date_aux = item.date + timedelta(i)
|
2024-11-12 13:09:33 +00:00
|
|
|
dates.append(datetime.datetime.strftime(date_aux, "%Y-%m-%d"))
|
2022-05-29 14:03:17 +00:00
|
|
|
finflationbtc.append(inflationbitcoin)
|
2024-11-12 13:09:33 +00:00
|
|
|
date_aux2 = datetime.datetime.strftime(date_aux, "%Y-%m-%d")
|
|
|
|
if date_aux2 == "2024-04-23":
|
2022-05-29 14:03:17 +00:00
|
|
|
inflationbitcoin = 0.65
|
2024-11-12 13:09:33 +00:00
|
|
|
inflationxmr.append("")
|
|
|
|
inflationbtc.append("")
|
|
|
|
|
|
|
|
now_btc = locale.format("%.2f", now_btc, grouping=True) + "%"
|
|
|
|
now_xmr = locale.format("%.2f", now_xmr, grouping=True) + "%"
|
|
|
|
|
|
|
|
context = {
|
|
|
|
"inflationxmr": inflationxmr,
|
|
|
|
"inflationbtc": inflationbtc,
|
|
|
|
"finflationxmr": finflationxmr,
|
|
|
|
"finflationbtc": finflationbtc,
|
|
|
|
"now_xmr": now_xmr,
|
|
|
|
"now_btc": now_btc,
|
|
|
|
"dates": dates,
|
|
|
|
}
|
|
|
|
return render(request, "charts/inflation.html", context)
|
2022-09-19 02:38:30 +00:00
|
|
|
|
2022-05-29 14:03:17 +00:00
|
|
|
|
2022-06-13 01:28:59 +00:00
|
|
|
def blocksize(request):
|
2024-11-12 13:09:33 +00:00
|
|
|
data = DailyData.objects.order_by("date")
|
2022-06-13 01:28:59 +00:00
|
|
|
|
|
|
|
xmr_blocksize = []
|
|
|
|
btc_blocksize = []
|
|
|
|
dates = []
|
|
|
|
now_xmr = 0
|
|
|
|
now_btc = 0
|
2024-11-12 13:09:33 +00:00
|
|
|
|
2022-06-13 01:28:59 +00:00
|
|
|
for item in data:
|
2024-11-12 13:09:33 +00:00
|
|
|
dates.append(datetime.datetime.strftime(item.date, "%Y-%m-%d"))
|
2022-06-13 01:28:59 +00:00
|
|
|
if item.btc_blocksize > 0.001:
|
2024-11-12 13:09:33 +00:00
|
|
|
btc_blocksize.append(item.btc_blocksize / 1024)
|
2022-06-13 01:28:59 +00:00
|
|
|
now_btc = item.btc_blocksize
|
|
|
|
else:
|
2024-11-12 13:09:33 +00:00
|
|
|
btc_blocksize.append("")
|
2022-06-13 01:28:59 +00:00
|
|
|
|
|
|
|
if item.xmr_blocksize > 0.001:
|
2024-11-12 13:09:33 +00:00
|
|
|
xmr_blocksize.append(item.xmr_blocksize / 1024)
|
2022-06-13 01:28:59 +00:00
|
|
|
now_xmr = item.xmr_blocksize
|
|
|
|
else:
|
2024-11-12 13:09:33 +00:00
|
|
|
xmr_blocksize.append("")
|
|
|
|
|
|
|
|
now_btc = locale.format("%.2f", now_btc, grouping=True) + " bytes"
|
|
|
|
now_xmr = locale.format("%.2f", now_xmr, grouping=True) + " bytes"
|
|
|
|
|
|
|
|
context = {
|
|
|
|
"xmr_blocksize": xmr_blocksize,
|
|
|
|
"btc_blocksize": btc_blocksize,
|
|
|
|
"now_xmr": now_xmr,
|
|
|
|
"now_btc": now_btc,
|
|
|
|
"dates": dates,
|
|
|
|
}
|
|
|
|
return render(request, "charts/blocksize.html", context)
|
2022-09-19 02:38:30 +00:00
|
|
|
|
2022-06-13 01:28:59 +00:00
|
|
|
|
|
|
|
def transactionsize(request):
|
2024-11-12 13:09:33 +00:00
|
|
|
data = DailyData.objects.order_by("date")
|
2022-06-13 01:28:59 +00:00
|
|
|
|
|
|
|
xmr_blocksize = []
|
|
|
|
btc_blocksize = []
|
|
|
|
dates = []
|
|
|
|
now_xmr = 0
|
|
|
|
now_btc = 0
|
2024-11-12 13:09:33 +00:00
|
|
|
|
2022-06-13 01:28:59 +00:00
|
|
|
for item in data:
|
2024-11-12 13:09:33 +00:00
|
|
|
dates.append(datetime.datetime.strftime(item.date, "%Y-%m-%d"))
|
2022-06-13 01:28:59 +00:00
|
|
|
|
|
|
|
if item.btc_blocksize > 0.001 and item.btc_transactions > 0:
|
2024-11-12 13:09:33 +00:00
|
|
|
now_btc = 144 * item.btc_blocksize / (1024 * item.btc_transactions)
|
|
|
|
btc_blocksize.append(
|
|
|
|
144 * item.btc_blocksize / (1024 * item.btc_transactions)
|
|
|
|
)
|
2022-06-13 01:28:59 +00:00
|
|
|
else:
|
2024-11-12 13:09:33 +00:00
|
|
|
btc_blocksize.append("")
|
2022-06-13 01:28:59 +00:00
|
|
|
|
|
|
|
if item.xmr_blocksize > 0.001 and item.xmr_transactions > 0:
|
2024-11-12 13:09:33 +00:00
|
|
|
now_xmr = 720 * item.xmr_blocksize / (1024 * item.xmr_transactions)
|
|
|
|
xmr_blocksize.append(
|
|
|
|
720 * item.xmr_blocksize / (1024 * item.xmr_transactions)
|
|
|
|
)
|
2022-06-13 01:28:59 +00:00
|
|
|
else:
|
2024-11-12 13:09:33 +00:00
|
|
|
xmr_blocksize.append("")
|
|
|
|
|
|
|
|
now_btc = locale.format("%.2f", now_btc, grouping=True) + " bytes"
|
|
|
|
now_xmr = locale.format("%.2f", now_xmr, grouping=True) + " bytes"
|
2022-09-19 02:38:30 +00:00
|
|
|
|
2024-11-12 13:09:33 +00:00
|
|
|
context = {
|
|
|
|
"xmr_blocksize": xmr_blocksize,
|
|
|
|
"btc_blocksize": btc_blocksize,
|
|
|
|
"now_xmr": now_xmr,
|
|
|
|
"now_btc": now_btc,
|
|
|
|
"dates": dates,
|
|
|
|
}
|
|
|
|
return render(request, "charts/transactionsize.html", context)
|
2022-06-13 01:28:59 +00:00
|
|
|
|
2024-11-12 13:09:33 +00:00
|
|
|
|
|
|
|
def transactiondominance(request):
|
|
|
|
data = DailyData.objects.order_by("date")
|
2022-06-23 19:26:10 +00:00
|
|
|
|
|
|
|
xmr_dominance = []
|
|
|
|
dates = []
|
|
|
|
now_xmr = 0
|
|
|
|
maximum = 0
|
2024-11-12 13:09:33 +00:00
|
|
|
|
2022-06-23 19:26:10 +00:00
|
|
|
for item in data:
|
2024-11-12 13:09:33 +00:00
|
|
|
dates.append(datetime.datetime.strftime(item.date, "%Y-%m-%d"))
|
2022-06-23 19:26:10 +00:00
|
|
|
if item.xmr_transactions > 0:
|
2024-11-12 13:09:33 +00:00
|
|
|
now_xmr = (
|
|
|
|
100
|
|
|
|
* item.xmr_transactions
|
|
|
|
/ (
|
|
|
|
item.xmr_transactions
|
|
|
|
+ item.dash_transactions
|
|
|
|
+ item.zcash_transactions
|
|
|
|
+ item.grin_transactions
|
|
|
|
)
|
|
|
|
)
|
2022-06-23 19:26:10 +00:00
|
|
|
else:
|
|
|
|
now_xmr = 0
|
|
|
|
if now_xmr > maximum:
|
|
|
|
maximum = now_xmr
|
|
|
|
xmr_dominance.append(now_xmr)
|
2022-09-19 02:38:30 +00:00
|
|
|
|
2024-11-12 13:09:33 +00:00
|
|
|
now_xmr = locale.format("%.1f", now_xmr, grouping=True) + "%"
|
|
|
|
maximum = locale.format("%.1f", maximum, grouping=True) + "%"
|
|
|
|
|
|
|
|
context = {
|
|
|
|
"xmr_dominance": xmr_dominance,
|
|
|
|
"now_xmr": now_xmr,
|
|
|
|
"maximum": maximum,
|
|
|
|
"dates": dates,
|
|
|
|
}
|
|
|
|
return render(request, "charts/transactiondominance.html", context)
|
|
|
|
|
2022-06-23 19:26:10 +00:00
|
|
|
|
2022-06-13 01:28:59 +00:00
|
|
|
def difficulty(request):
|
2024-11-12 13:09:33 +00:00
|
|
|
data = DailyData.objects.order_by("date")
|
2022-06-13 01:28:59 +00:00
|
|
|
|
|
|
|
xmr_difficulty = []
|
|
|
|
btc_difficulty = []
|
|
|
|
dates = []
|
|
|
|
now_xmr = 0
|
|
|
|
now_btc = 0
|
2024-11-12 13:09:33 +00:00
|
|
|
|
2022-06-13 01:28:59 +00:00
|
|
|
for item in data:
|
2024-11-12 13:09:33 +00:00
|
|
|
dates.append(datetime.datetime.strftime(item.date, "%Y-%m-%d"))
|
2022-06-13 01:28:59 +00:00
|
|
|
|
|
|
|
if item.btc_difficulty > 0.001:
|
|
|
|
now_btc = item.btc_difficulty
|
|
|
|
btc_difficulty.append(now_btc)
|
|
|
|
else:
|
2024-11-12 13:09:33 +00:00
|
|
|
btc_difficulty.append("")
|
2022-06-13 01:28:59 +00:00
|
|
|
|
|
|
|
if item.xmr_difficulty > 0.001:
|
|
|
|
now_xmr = item.xmr_difficulty
|
|
|
|
xmr_difficulty.append(now_xmr)
|
|
|
|
else:
|
2024-11-12 13:09:33 +00:00
|
|
|
xmr_difficulty.append("")
|
|
|
|
|
|
|
|
now_btc = locale.format("%.0f", now_btc, grouping=True)
|
|
|
|
now_xmr = locale.format("%.0f", now_xmr, grouping=True)
|
|
|
|
|
|
|
|
context = {
|
|
|
|
"xmr_difficulty": xmr_difficulty,
|
|
|
|
"btc_difficulty": btc_difficulty,
|
|
|
|
"now_xmr": now_xmr,
|
|
|
|
"now_btc": now_btc,
|
|
|
|
"dates": dates,
|
|
|
|
}
|
|
|
|
return render(request, "charts/difficulty.html", context)
|
2022-09-19 02:38:30 +00:00
|
|
|
|
2022-06-13 01:28:59 +00:00
|
|
|
|
|
|
|
def blockchainsize(request):
|
2024-11-12 13:09:33 +00:00
|
|
|
data = DailyData.objects.order_by("date")
|
2022-06-13 01:28:59 +00:00
|
|
|
|
|
|
|
xmr_blocksize = []
|
|
|
|
btc_blocksize = []
|
|
|
|
dates = []
|
|
|
|
now_xmr = 0
|
|
|
|
now_btc = 0
|
2024-11-12 13:09:33 +00:00
|
|
|
hardfork = datetime.datetime.strptime(
|
|
|
|
"2016-03-23", "%Y-%m-%d"
|
|
|
|
) # block time changed here
|
2022-07-20 18:38:54 +00:00
|
|
|
|
2022-06-13 01:28:59 +00:00
|
|
|
for item in data:
|
2024-11-12 13:09:33 +00:00
|
|
|
date = datetime.datetime.strftime(item.date, "%Y-%m-%d")
|
2022-07-20 18:38:54 +00:00
|
|
|
dates.append(date)
|
2024-11-12 13:09:33 +00:00
|
|
|
date = datetime.datetime.strptime(date, "%Y-%m-%d")
|
2022-06-13 01:28:59 +00:00
|
|
|
|
|
|
|
if item.btc_blocksize > 0.001 and item.btc_transactions > 0:
|
2024-11-12 13:09:33 +00:00
|
|
|
now_btc += 144 * item.btc_blocksize / 1024
|
2022-06-13 01:28:59 +00:00
|
|
|
if now_btc < 200:
|
2024-11-12 13:09:33 +00:00
|
|
|
btc_blocksize.append("")
|
2022-06-13 01:28:59 +00:00
|
|
|
else:
|
|
|
|
btc_blocksize.append(now_btc)
|
|
|
|
else:
|
2024-11-12 13:09:33 +00:00
|
|
|
btc_blocksize.append("")
|
2022-06-13 01:28:59 +00:00
|
|
|
|
2024-11-12 13:09:33 +00:00
|
|
|
if item.xmr_blocksize > 0.001 and item.xmr_transactions > 0:
|
|
|
|
if date < hardfork:
|
|
|
|
now_xmr += 1440 * item.xmr_blocksize / 1024
|
2022-07-20 18:38:54 +00:00
|
|
|
else:
|
2024-11-12 13:09:33 +00:00
|
|
|
now_xmr += 720 * item.xmr_blocksize / 1024
|
2022-07-20 18:38:54 +00:00
|
|
|
|
|
|
|
if now_xmr < 200:
|
2024-11-12 13:09:33 +00:00
|
|
|
xmr_blocksize.append("")
|
2022-06-13 01:28:59 +00:00
|
|
|
else:
|
|
|
|
xmr_blocksize.append(now_xmr)
|
|
|
|
else:
|
2024-11-12 13:09:33 +00:00
|
|
|
xmr_blocksize.append("")
|
|
|
|
|
|
|
|
now_btc = locale.format("%.2f", now_btc / (1024 * 1024), grouping=True) + " Gb"
|
|
|
|
now_xmr = locale.format("%.2f", now_xmr / (1024 * 1024), grouping=True) + " Gb"
|
|
|
|
|
|
|
|
context = {
|
|
|
|
"xmr_blocksize": xmr_blocksize,
|
|
|
|
"btc_blocksize": btc_blocksize,
|
|
|
|
"now_xmr": now_xmr,
|
|
|
|
"now_btc": now_btc,
|
|
|
|
"dates": dates,
|
|
|
|
}
|
|
|
|
return render(request, "charts/blockchainsize.html", context)
|
2022-09-19 02:38:30 +00:00
|
|
|
|
2022-06-13 01:28:59 +00:00
|
|
|
|
2022-07-20 18:38:54 +00:00
|
|
|
def securitybudget(request):
|
2024-11-12 13:09:33 +00:00
|
|
|
data = DailyData.objects.order_by("date")
|
2022-07-20 18:38:54 +00:00
|
|
|
|
|
|
|
xmr_security = []
|
|
|
|
btc_security = []
|
|
|
|
dates = []
|
|
|
|
now_xmr = 0
|
|
|
|
now_btc = 0
|
|
|
|
|
|
|
|
for item in data:
|
2024-11-12 13:09:33 +00:00
|
|
|
date = datetime.datetime.strftime(item.date, "%Y-%m-%d")
|
2022-07-20 18:38:54 +00:00
|
|
|
dates.append(date)
|
2022-07-20 22:55:20 +00:00
|
|
|
if item.btc_minerrevusd > 0.001:
|
2024-11-12 13:09:33 +00:00
|
|
|
now_btc = item.btc_minerrevusd / 86400
|
2022-07-20 18:38:54 +00:00
|
|
|
btc_security.append(now_btc)
|
|
|
|
else:
|
2024-11-12 13:09:33 +00:00
|
|
|
btc_security.append("")
|
2022-07-20 18:38:54 +00:00
|
|
|
|
2024-11-12 13:09:33 +00:00
|
|
|
if item.xmr_minerrevusd > 0.001:
|
|
|
|
now_xmr = item.xmr_minerrevusd / 86400
|
2022-07-20 18:38:54 +00:00
|
|
|
xmr_security.append(now_xmr)
|
|
|
|
else:
|
2024-11-12 13:09:33 +00:00
|
|
|
xmr_security.append("")
|
|
|
|
|
|
|
|
now_btc = "$" + locale.format("%.2f", now_btc, grouping=True)
|
|
|
|
now_xmr = "$" + locale.format("%.2f", now_xmr, grouping=True)
|
|
|
|
|
|
|
|
context = {
|
|
|
|
"xmr_security": xmr_security,
|
|
|
|
"btc_security": btc_security,
|
|
|
|
"now_xmr": now_xmr,
|
|
|
|
"now_btc": now_btc,
|
|
|
|
"dates": dates,
|
|
|
|
}
|
|
|
|
return render(request, "charts/securitybudget.html", context)
|
2022-09-19 02:38:30 +00:00
|
|
|
|
2022-07-20 18:38:54 +00:00
|
|
|
|
2022-07-20 22:55:20 +00:00
|
|
|
def efficiency(request):
|
2024-11-12 13:09:33 +00:00
|
|
|
data = DailyData.objects.order_by("date")
|
2022-07-20 22:55:20 +00:00
|
|
|
|
|
|
|
xmr_efficiency = []
|
|
|
|
btc_efficiency = []
|
|
|
|
dates = []
|
|
|
|
now_xmr = 0
|
|
|
|
now_btc = 0
|
|
|
|
|
|
|
|
for item in data:
|
2024-11-12 13:09:33 +00:00
|
|
|
date = datetime.datetime.strftime(item.date, "%Y-%m-%d")
|
2022-07-20 22:55:20 +00:00
|
|
|
dates.append(date)
|
2024-11-12 13:09:33 +00:00
|
|
|
if item.btc_minerrevusd != 0 and item.btc_inflation > 0:
|
|
|
|
if (2**32) * item.btc_difficulty * 0.10 / (
|
|
|
|
item.btc_minerrevusd * 24000
|
|
|
|
) > 10:
|
|
|
|
now_btc = (
|
|
|
|
(2**32)
|
|
|
|
* item.btc_difficulty
|
|
|
|
* 0.10
|
|
|
|
/ (item.btc_minerrevusd * 24000)
|
|
|
|
)
|
2022-07-20 22:55:20 +00:00
|
|
|
if now_btc > 0.01:
|
|
|
|
btc_efficiency.append(now_btc)
|
|
|
|
else:
|
2024-11-12 13:09:33 +00:00
|
|
|
btc_efficiency.append("")
|
2022-07-20 22:55:20 +00:00
|
|
|
else:
|
2024-11-12 13:09:33 +00:00
|
|
|
btc_efficiency.append("")
|
2022-07-20 22:55:20 +00:00
|
|
|
|
2024-11-12 13:09:33 +00:00
|
|
|
if item.xmr_minerrevusd != 0 and item.xmr_inflation > 0:
|
|
|
|
if item.xmr_difficulty * 0.10 / (item.xmr_minerrevusd * 5000) > 0.01:
|
|
|
|
now_xmr = item.xmr_difficulty * 0.10 / (item.xmr_minerrevusd * 5000)
|
2022-07-20 22:55:20 +00:00
|
|
|
if now_xmr > 0.01:
|
|
|
|
xmr_efficiency.append(now_xmr)
|
|
|
|
else:
|
2024-11-12 13:09:33 +00:00
|
|
|
xmr_efficiency.append("")
|
2022-07-20 22:55:20 +00:00
|
|
|
else:
|
2024-11-12 13:09:33 +00:00
|
|
|
xmr_efficiency.append("")
|
|
|
|
|
|
|
|
now_btc = locale.format("%.0f", now_btc, grouping=True)
|
|
|
|
now_xmr = locale.format("%.0f", now_xmr, grouping=True)
|
|
|
|
|
|
|
|
context = {
|
|
|
|
"xmr_efficiency": xmr_efficiency,
|
|
|
|
"btc_efficiency": btc_efficiency,
|
|
|
|
"now_xmr": now_xmr,
|
|
|
|
"now_btc": now_btc,
|
|
|
|
"dates": dates,
|
|
|
|
}
|
|
|
|
return render(request, "charts/efficiency.html", context)
|
2022-09-19 02:38:30 +00:00
|
|
|
|
2022-07-20 22:55:20 +00:00
|
|
|
|
2022-05-29 14:03:17 +00:00
|
|
|
def compinflation(request):
|
2024-11-12 13:09:33 +00:00
|
|
|
data = DailyData.objects.order_by("date")
|
2022-05-29 14:03:17 +00:00
|
|
|
|
|
|
|
dates = []
|
|
|
|
inflationxmr = []
|
|
|
|
inflationdash = []
|
|
|
|
inflationgrin = []
|
|
|
|
inflationzcash = []
|
|
|
|
inflationbtc = []
|
|
|
|
now_xmr = 999999
|
|
|
|
now_dash = 999999
|
|
|
|
now_grin = 999999
|
|
|
|
now_zcash = 999999
|
|
|
|
now_btc = 999999
|
2024-11-12 13:09:33 +00:00
|
|
|
|
2022-06-05 18:36:57 +00:00
|
|
|
for item in data:
|
2024-11-12 13:09:33 +00:00
|
|
|
dates.append(datetime.datetime.strftime(item.date, "%Y-%m-%d"))
|
2022-06-05 18:36:57 +00:00
|
|
|
|
|
|
|
if item.btc_inflation > 0.1:
|
|
|
|
inflationbtc.append(item.btc_inflation)
|
|
|
|
now_btc = item.btc_inflation
|
2022-05-29 14:03:17 +00:00
|
|
|
else:
|
2024-11-12 13:09:33 +00:00
|
|
|
inflationbtc.append("")
|
2022-05-29 14:03:17 +00:00
|
|
|
|
2022-06-05 18:36:57 +00:00
|
|
|
if item.zcash_inflation > 0.1:
|
|
|
|
inflationzcash.append(item.zcash_inflation)
|
|
|
|
now_zcash = item.zcash_inflation
|
|
|
|
else:
|
2024-11-12 13:09:33 +00:00
|
|
|
inflationzcash.append("")
|
2022-06-05 18:36:57 +00:00
|
|
|
|
|
|
|
if item.dash_inflation > 0.1:
|
|
|
|
inflationdash.append(item.dash_inflation)
|
|
|
|
now_dash = item.dash_inflation
|
2022-05-29 14:03:17 +00:00
|
|
|
else:
|
2024-11-12 13:09:33 +00:00
|
|
|
inflationdash.append("")
|
2022-05-29 14:03:17 +00:00
|
|
|
|
2022-06-05 18:36:57 +00:00
|
|
|
if item.xmr_inflation > 0.1:
|
|
|
|
inflationxmr.append(item.xmr_inflation)
|
|
|
|
now_xmr = item.xmr_inflation
|
2022-05-29 14:03:17 +00:00
|
|
|
else:
|
2024-11-12 13:09:33 +00:00
|
|
|
inflationxmr.append("")
|
2022-05-29 14:03:17 +00:00
|
|
|
|
2022-06-05 18:36:57 +00:00
|
|
|
if item.grin_inflation > 0.1:
|
|
|
|
inflationgrin.append(item.grin_inflation)
|
|
|
|
now_grin = item.grin_inflation
|
|
|
|
else:
|
2024-11-12 13:09:33 +00:00
|
|
|
inflationgrin.append("")
|
|
|
|
|
|
|
|
now_dash = locale.format("%.2f", now_dash, grouping=True) + "%"
|
|
|
|
now_grin = locale.format("%.2f", now_grin, grouping=True) + "%"
|
|
|
|
now_zcash = locale.format("%.2f", now_zcash, grouping=True) + "%"
|
|
|
|
now_xmr = locale.format("%.2f", now_xmr, grouping=True) + "%"
|
|
|
|
now_btc = locale.format("%.2f", now_btc, grouping=True) + "%"
|
|
|
|
|
|
|
|
context = {
|
|
|
|
"inflationxmr": inflationxmr,
|
|
|
|
"inflationdash": inflationdash,
|
|
|
|
"inflationgrin": inflationgrin,
|
|
|
|
"inflationzcash": inflationzcash,
|
|
|
|
"inflationbtc": inflationbtc,
|
|
|
|
"now_xmr": now_xmr,
|
|
|
|
"now_btc": now_btc,
|
|
|
|
"now_dash": now_dash,
|
|
|
|
"now_grin": now_grin,
|
|
|
|
"now_zcash": now_zcash,
|
|
|
|
"dates": dates,
|
|
|
|
}
|
|
|
|
return render(request, "charts/compinflation.html", context)
|
|
|
|
|
|
|
|
|
|
|
|
def comptransactions(request):
|
|
|
|
data = DailyData.objects.order_by("date")
|
2022-08-12 19:35:47 +00:00
|
|
|
|
|
|
|
dates = []
|
|
|
|
xmr = []
|
|
|
|
dash = []
|
|
|
|
grin = []
|
|
|
|
zcash = []
|
|
|
|
btc = []
|
|
|
|
now_xmr = 999999
|
|
|
|
now_dash = 999999
|
|
|
|
now_grin = 999999
|
|
|
|
now_zcash = 999999
|
|
|
|
now_btc = 999999
|
2024-11-12 13:09:33 +00:00
|
|
|
|
2022-08-12 19:35:47 +00:00
|
|
|
for item in data:
|
2024-11-12 13:09:33 +00:00
|
|
|
dates.append(datetime.datetime.strftime(item.date, "%Y-%m-%d"))
|
2022-08-12 19:35:47 +00:00
|
|
|
|
|
|
|
if item.btc_transactions > 10:
|
|
|
|
btc.append(item.btc_transactions)
|
|
|
|
now_btc = item.btc_transactions
|
|
|
|
else:
|
2024-11-12 13:09:33 +00:00
|
|
|
btc.append("")
|
2022-08-12 19:35:47 +00:00
|
|
|
|
|
|
|
if item.zcash_transactions > 10:
|
|
|
|
zcash.append(item.zcash_transactions)
|
|
|
|
now_zcash = item.zcash_transactions
|
|
|
|
else:
|
2024-11-12 13:09:33 +00:00
|
|
|
zcash.append("")
|
2022-08-12 19:35:47 +00:00
|
|
|
|
|
|
|
if item.dash_transactions > 10:
|
|
|
|
dash.append(item.dash_transactions)
|
|
|
|
now_dash = item.dash_transactions
|
|
|
|
else:
|
2024-11-12 13:09:33 +00:00
|
|
|
dash.append("")
|
2022-08-12 19:35:47 +00:00
|
|
|
|
|
|
|
if item.xmr_transactions > 10:
|
|
|
|
xmr.append(item.xmr_transactions)
|
|
|
|
now_xmr = item.xmr_transactions
|
|
|
|
else:
|
2024-11-12 13:09:33 +00:00
|
|
|
xmr.append("")
|
2022-08-12 19:35:47 +00:00
|
|
|
|
|
|
|
if item.grin_transactions > 10:
|
|
|
|
grin.append(item.grin_transactions)
|
|
|
|
now_grin = item.grin_transactions
|
|
|
|
else:
|
2024-11-12 13:09:33 +00:00
|
|
|
grin.append("")
|
|
|
|
|
|
|
|
now_dash = locale.format("%.0f", now_dash, grouping=True)
|
|
|
|
now_grin = locale.format("%.0f", now_grin, grouping=True)
|
|
|
|
now_zcash = locale.format("%.0f", now_zcash, grouping=True)
|
|
|
|
now_xmr = locale.format("%.0f", now_xmr, grouping=True)
|
|
|
|
now_btc = locale.format("%.0f", now_btc, grouping=True)
|
|
|
|
|
|
|
|
context = {
|
|
|
|
"xmr": xmr,
|
|
|
|
"dash": dash,
|
|
|
|
"grin": grin,
|
|
|
|
"zcash": zcash,
|
|
|
|
"btc": btc,
|
|
|
|
"now_xmr": now_xmr,
|
|
|
|
"now_btc": now_btc,
|
|
|
|
"now_dash": now_dash,
|
|
|
|
"now_grin": now_grin,
|
|
|
|
"now_zcash": now_zcash,
|
|
|
|
"dates": dates,
|
|
|
|
}
|
|
|
|
return render(request, "charts/comptransactions.html", context)
|
2022-09-19 02:38:30 +00:00
|
|
|
|
2022-08-12 19:35:47 +00:00
|
|
|
|
2022-05-29 14:03:17 +00:00
|
|
|
def sfmodel(request):
|
|
|
|
dates = []
|
|
|
|
stock_to_flow = []
|
|
|
|
projection = []
|
|
|
|
color = []
|
|
|
|
values = []
|
2022-06-05 18:36:57 +00:00
|
|
|
now_price = 0
|
|
|
|
now_sf = 0
|
|
|
|
now_inflation = 0
|
2022-05-29 14:03:17 +00:00
|
|
|
|
2024-11-12 13:09:33 +00:00
|
|
|
data = Sfmodel.objects.order_by("date")
|
2022-06-05 18:36:57 +00:00
|
|
|
count_aux = 0
|
|
|
|
for item in data:
|
|
|
|
if item.color != 0:
|
|
|
|
color.append(item.color)
|
2022-05-29 14:03:17 +00:00
|
|
|
else:
|
2024-11-12 13:09:33 +00:00
|
|
|
color.append("")
|
2022-05-29 14:03:17 +00:00
|
|
|
|
2022-06-05 18:36:57 +00:00
|
|
|
if item.greyline != 0:
|
|
|
|
projection.append(item.greyline)
|
|
|
|
if count_aux > 25:
|
|
|
|
count_aux = 0
|
|
|
|
else:
|
|
|
|
projection.append(item.greyline)
|
|
|
|
else:
|
2024-11-12 13:09:33 +00:00
|
|
|
projection.append("")
|
2022-05-29 14:03:17 +00:00
|
|
|
|
2022-06-05 18:36:57 +00:00
|
|
|
if item.stocktoflow > 0.2:
|
|
|
|
stock_to_flow.append(item.stocktoflow)
|
|
|
|
else:
|
2024-11-12 13:09:33 +00:00
|
|
|
stock_to_flow.append("")
|
2022-06-05 18:36:57 +00:00
|
|
|
|
|
|
|
if item.priceusd > 0.1:
|
|
|
|
values.append(item.priceusd)
|
|
|
|
now_price = item.priceusd
|
|
|
|
now_sf = item.stocktoflow
|
|
|
|
if item.date > date.today() - timedelta(4):
|
2024-11-12 13:09:33 +00:00
|
|
|
coins = Coin.objects.filter(name="xmr").filter(date=item.date)
|
2022-06-05 18:36:57 +00:00
|
|
|
if coins:
|
|
|
|
for coin in coins:
|
|
|
|
now_inflation = coin.inflation
|
|
|
|
else:
|
2024-11-12 13:09:33 +00:00
|
|
|
values.append("")
|
2022-06-05 18:36:57 +00:00
|
|
|
count_aux += 1
|
2022-05-29 14:03:17 +00:00
|
|
|
|
2024-11-12 13:09:33 +00:00
|
|
|
dates.append(datetime.datetime.strftime(item.date, "%Y-%m-%d"))
|
|
|
|
|
|
|
|
now_price = "$" + locale.format("%.2f", now_price, grouping=True)
|
|
|
|
now_sf = "$" + locale.format("%.2f", now_sf, grouping=True)
|
|
|
|
now_inflation = locale.format("%.2f", now_inflation, grouping=True) + "%"
|
|
|
|
|
|
|
|
context = {
|
|
|
|
"values": values,
|
|
|
|
"dates": dates,
|
|
|
|
"stock_to_flow": stock_to_flow,
|
|
|
|
"projection": projection,
|
|
|
|
"now_price": now_price,
|
|
|
|
"now_inflation": now_inflation,
|
|
|
|
"now_sf": now_sf,
|
|
|
|
"color": color,
|
|
|
|
}
|
|
|
|
return render(request, "charts/sfmodel.html", context)
|
2022-06-05 18:36:57 +00:00
|
|
|
|
2022-05-29 14:03:17 +00:00
|
|
|
|
|
|
|
def sfmodellin(request):
|
|
|
|
dates = []
|
|
|
|
stock_to_flow = []
|
2022-06-05 18:36:57 +00:00
|
|
|
projection = []
|
2022-05-29 14:03:17 +00:00
|
|
|
color = []
|
|
|
|
values = []
|
2022-06-05 18:36:57 +00:00
|
|
|
now_price = 0
|
|
|
|
now_sf = 0
|
|
|
|
now_inflation = 0
|
2022-05-29 14:03:17 +00:00
|
|
|
|
2024-11-12 13:09:33 +00:00
|
|
|
data = Sfmodel.objects.order_by("date")
|
2022-06-05 18:36:57 +00:00
|
|
|
count_aux = 0
|
|
|
|
for item in data:
|
|
|
|
if item.color != 0:
|
|
|
|
color.append(item.color)
|
|
|
|
else:
|
2024-11-12 13:09:33 +00:00
|
|
|
color.append("")
|
2022-05-29 14:03:17 +00:00
|
|
|
|
2022-06-05 18:36:57 +00:00
|
|
|
if item.greyline != 0:
|
|
|
|
projection.append(item.greyline)
|
|
|
|
if count_aux > 25:
|
|
|
|
count_aux = 0
|
|
|
|
else:
|
|
|
|
projection.append(item.greyline)
|
|
|
|
else:
|
2024-11-12 13:09:33 +00:00
|
|
|
projection.append("")
|
2022-06-05 18:36:57 +00:00
|
|
|
|
|
|
|
if item.stocktoflow > 0.2:
|
|
|
|
stock_to_flow.append(item.stocktoflow)
|
|
|
|
else:
|
2024-11-12 13:09:33 +00:00
|
|
|
stock_to_flow.append("")
|
2022-06-05 18:36:57 +00:00
|
|
|
|
|
|
|
if item.priceusd > 0.1:
|
|
|
|
values.append(item.priceusd)
|
|
|
|
now_price = item.priceusd
|
|
|
|
now_sf = item.stocktoflow
|
|
|
|
if item.date > date.today() - timedelta(4):
|
2024-11-12 13:09:33 +00:00
|
|
|
coins = Coin.objects.filter(name="xmr").filter(date=item.date)
|
2022-06-05 18:36:57 +00:00
|
|
|
if coins:
|
|
|
|
for coin in coins:
|
|
|
|
now_inflation = coin.inflation
|
|
|
|
else:
|
2024-11-12 13:09:33 +00:00
|
|
|
values.append("")
|
2022-06-05 18:36:57 +00:00
|
|
|
count_aux += 1
|
2022-05-29 14:03:17 +00:00
|
|
|
|
2024-11-12 13:09:33 +00:00
|
|
|
dates.append(datetime.datetime.strftime(item.date, "%Y-%m-%d"))
|
|
|
|
|
|
|
|
now_price = "$" + locale.format("%.2f", now_price, grouping=True)
|
|
|
|
now_sf = "$" + locale.format("%.2f", now_sf, grouping=True)
|
|
|
|
now_inflation = locale.format("%.2f", now_inflation, grouping=True) + "%"
|
|
|
|
|
|
|
|
context = {
|
|
|
|
"values": values,
|
|
|
|
"dates": dates,
|
|
|
|
"stock_to_flow": stock_to_flow,
|
|
|
|
"now_price": now_price,
|
|
|
|
"now_inflation": now_inflation,
|
|
|
|
"now_sf": now_sf,
|
|
|
|
"color": color,
|
|
|
|
}
|
|
|
|
return render(request, "charts/sfmodellin.html", context)
|
2022-09-19 02:38:30 +00:00
|
|
|
|
2022-05-29 14:03:17 +00:00
|
|
|
|
|
|
|
def sfmultiple(request):
|
2024-11-12 13:09:33 +00:00
|
|
|
symbol = "xmr"
|
2022-05-29 14:03:17 +00:00
|
|
|
now_sf = 0
|
|
|
|
maximum = 0
|
|
|
|
dates = []
|
|
|
|
stock_to_flow = []
|
|
|
|
buy = []
|
|
|
|
sell = []
|
|
|
|
color = []
|
|
|
|
v0 = 0.002
|
2024-11-12 13:09:33 +00:00
|
|
|
delta = (0.015 - 0.002) / (6 * 365)
|
2022-05-29 14:03:17 +00:00
|
|
|
count = 0
|
2024-11-12 13:09:33 +00:00
|
|
|
sf_aux = 0
|
|
|
|
coins = Coin.objects.order_by("date").filter(name=symbol)
|
2022-05-29 14:03:17 +00:00
|
|
|
for coin in coins:
|
2024-11-12 13:09:33 +00:00
|
|
|
dates.append(datetime.datetime.strftime(coin.date, "%Y-%m-%d"))
|
2022-05-29 14:03:17 +00:00
|
|
|
buy.append(1)
|
|
|
|
sell.append(100)
|
2024-11-12 13:09:33 +00:00
|
|
|
if coin.stocktoflow > sf_aux * 2 + 250:
|
2022-05-29 14:03:17 +00:00
|
|
|
coin.stocktoflow = sf_aux
|
|
|
|
sf_aux = coin.stocktoflow
|
|
|
|
if coin.priceusd < 1:
|
|
|
|
coin.priceusd = 1
|
|
|
|
if coin.stocktoflow != 0:
|
2024-11-12 13:09:33 +00:00
|
|
|
now_sf = coin.supply * coin.priceusd / (coin.stocktoflow * 1500000)
|
2022-05-29 14:03:17 +00:00
|
|
|
stock_to_flow.append(now_sf)
|
|
|
|
buy.append(1)
|
|
|
|
sell.append(100)
|
|
|
|
if now_sf > maximum:
|
|
|
|
maximum = now_sf
|
2024-11-12 13:09:33 +00:00
|
|
|
new_color = 30 * coin.pricebtc / (count * delta + v0)
|
2022-05-29 14:03:17 +00:00
|
|
|
color.append(new_color)
|
2024-11-12 13:09:33 +00:00
|
|
|
count += 1
|
2022-05-29 14:03:17 +00:00
|
|
|
|
2024-11-12 13:09:33 +00:00
|
|
|
now_sf = locale.format("%.2f", now_sf, grouping=True)
|
|
|
|
maximum = locale.format("%.2f", maximum, grouping=True)
|
|
|
|
|
|
|
|
context = {
|
|
|
|
"dates": dates,
|
|
|
|
"maximum": maximum,
|
|
|
|
"stock_to_flow": stock_to_flow,
|
|
|
|
"now_sf": now_sf,
|
|
|
|
"buy": buy,
|
|
|
|
"sell": sell,
|
|
|
|
"color": color,
|
|
|
|
}
|
|
|
|
return render(request, "charts/sfmultiple.html", context)
|
2022-09-19 02:38:30 +00:00
|
|
|
|
2022-05-29 14:03:17 +00:00
|
|
|
|
2022-08-11 19:09:48 +00:00
|
|
|
def marketcycle(request):
|
|
|
|
dates = []
|
|
|
|
color = []
|
|
|
|
sell = []
|
|
|
|
buy = []
|
2024-11-12 13:09:33 +00:00
|
|
|
data = Sfmodel.objects.order_by("date")
|
2022-08-11 19:09:48 +00:00
|
|
|
for item in data:
|
|
|
|
if item.color > 0:
|
2022-08-12 12:05:11 +00:00
|
|
|
color.append(item.color - 5)
|
2022-08-11 19:09:48 +00:00
|
|
|
else:
|
2024-11-12 13:09:33 +00:00
|
|
|
color.append("")
|
2022-08-11 19:09:48 +00:00
|
|
|
|
|
|
|
sell.append(100)
|
|
|
|
buy.append(0)
|
2024-11-12 13:09:33 +00:00
|
|
|
dates.append(datetime.datetime.strftime(item.date, "%Y-%m-%d"))
|
|
|
|
|
|
|
|
now_cycle = locale.format("%.2f", item.color, grouping=True)
|
2022-08-11 19:09:48 +00:00
|
|
|
|
2024-11-12 13:09:33 +00:00
|
|
|
context = {
|
|
|
|
"dates": dates,
|
|
|
|
"color": color,
|
|
|
|
"sell": sell,
|
|
|
|
"buy": buy,
|
|
|
|
"now_cycle": now_cycle,
|
|
|
|
}
|
|
|
|
return render(request, "charts/marketcycle.html", context)
|
2022-09-19 02:38:30 +00:00
|
|
|
|
2022-08-11 19:09:48 +00:00
|
|
|
|
2022-08-12 12:05:11 +00:00
|
|
|
def shielded(request):
|
|
|
|
dates = []
|
|
|
|
values = []
|
|
|
|
values2 = []
|
|
|
|
values3 = []
|
2024-11-13 09:08:39 +00:00
|
|
|
|
|
|
|
df = pd.read_excel(DATA_FILE, sheet_name="Sheet1", engine="odf")
|
|
|
|
start_row, end_row = 2, 9999
|
|
|
|
start_col, end_col = 0, 5
|
|
|
|
values_mat = df.iloc[start_row:end_row, start_col:end_col].to_numpy()
|
|
|
|
|
2022-08-12 12:05:11 +00:00
|
|
|
dominance = 0
|
2024-11-12 13:09:33 +00:00
|
|
|
monthly = 0
|
2022-08-12 12:05:11 +00:00
|
|
|
|
2024-11-12 13:09:33 +00:00
|
|
|
for k in range(0, len(values_mat)):
|
2022-08-12 12:05:11 +00:00
|
|
|
if values_mat[k][0] and values_mat[k][3]:
|
|
|
|
date = values_mat[k][0]
|
|
|
|
value = values_mat[k][3]
|
|
|
|
value3 = values_mat[k][4]
|
2024-11-12 13:09:33 +00:00
|
|
|
if not (value) or not (value):
|
2022-08-12 12:05:11 +00:00
|
|
|
break
|
|
|
|
else:
|
|
|
|
dates.append(date)
|
|
|
|
values.append(int(value))
|
|
|
|
values3.append(int(value3))
|
|
|
|
else:
|
|
|
|
break
|
2024-11-12 13:09:33 +00:00
|
|
|
|
2022-08-12 12:05:11 +00:00
|
|
|
previous_date = 0
|
2024-11-12 13:09:33 +00:00
|
|
|
coins = Coin.objects.order_by("date").filter(name="xmr")
|
2022-08-12 12:05:11 +00:00
|
|
|
for date in dates:
|
|
|
|
value2 = 0
|
|
|
|
for coin in coins:
|
|
|
|
aux = str(coin.date)
|
2024-11-12 13:09:33 +00:00
|
|
|
month = aux.split("-")[0] + "-" + aux.split("-")[1]
|
2022-08-12 12:05:11 +00:00
|
|
|
if month == date:
|
|
|
|
if previous_date != coin.date:
|
|
|
|
value2 += coin.transactions
|
|
|
|
previous_date = coin.date
|
2024-11-12 13:09:33 +00:00
|
|
|
|
2022-08-12 12:05:11 +00:00
|
|
|
values2.append(int(value2))
|
2024-11-12 13:09:33 +00:00
|
|
|
|
|
|
|
dominance = 100 * int(value2) / (int(value2) + int(value) + int(value3))
|
2022-08-12 12:05:11 +00:00
|
|
|
monthly = int(value2)
|
2024-11-12 13:09:33 +00:00
|
|
|
|
|
|
|
monthly = format(int(monthly), ",")
|
|
|
|
dominance = locale.format("%.2f", dominance, grouping=True)
|
|
|
|
|
|
|
|
context = {
|
|
|
|
"dates": dates,
|
|
|
|
"values": values,
|
|
|
|
"values2": values2,
|
|
|
|
"values3": values3,
|
|
|
|
"monthly": monthly,
|
|
|
|
"dominance": dominance,
|
|
|
|
}
|
|
|
|
return render(request, "charts/shielded.html", context)
|
|
|
|
|
2022-08-12 12:05:11 +00:00
|
|
|
|
2022-05-29 14:03:17 +00:00
|
|
|
def thermocap(request):
|
2024-11-12 13:09:33 +00:00
|
|
|
symbol = "xmr"
|
2022-05-29 14:03:17 +00:00
|
|
|
dates = []
|
|
|
|
values = []
|
|
|
|
thermocap = []
|
|
|
|
color = []
|
|
|
|
v0 = 0.002
|
2024-11-12 13:09:33 +00:00
|
|
|
delta = (0.015 - 0.002) / (6 * 365)
|
2022-05-29 14:03:17 +00:00
|
|
|
count = 0
|
2024-11-12 13:09:33 +00:00
|
|
|
sf_aux = 0
|
2022-05-29 14:03:17 +00:00
|
|
|
supply = 0
|
|
|
|
calorie = 1
|
|
|
|
calories = []
|
|
|
|
calories2 = []
|
|
|
|
calories3 = []
|
2024-11-12 13:09:33 +00:00
|
|
|
coins = Coin.objects.order_by("date").filter(name=symbol)
|
2022-05-29 14:03:17 +00:00
|
|
|
for coin in coins:
|
2024-11-12 13:09:33 +00:00
|
|
|
dates.append(datetime.datetime.strftime(coin.date, "%Y-%m-%d"))
|
|
|
|
if coin.stocktoflow > sf_aux * 2 + 250:
|
2022-05-29 14:03:17 +00:00
|
|
|
coin.stocktoflow = sf_aux
|
|
|
|
sf_aux = coin.stocktoflow
|
|
|
|
values.append(coin.priceusd)
|
2024-11-12 13:09:33 +00:00
|
|
|
new_color = 30 * coin.pricebtc / (count * delta + v0)
|
2022-05-29 14:03:17 +00:00
|
|
|
color.append(new_color)
|
|
|
|
|
2024-11-12 13:09:33 +00:00
|
|
|
calorie += (coin.supply - supply) * coin.priceusd
|
2022-07-20 03:28:38 +00:00
|
|
|
if coin.inflation != 0:
|
2024-11-12 13:09:33 +00:00
|
|
|
if calorie / (4200000 * math.sqrt(coin.inflation)) < 0.1:
|
|
|
|
calories.append("")
|
2022-07-20 03:28:38 +00:00
|
|
|
else:
|
2024-11-12 13:09:33 +00:00
|
|
|
calories.append(calorie / (4200000 * math.sqrt(coin.inflation)))
|
|
|
|
if calorie / (1000000 * math.sqrt(coin.inflation)) < 0.1:
|
|
|
|
calories2.append("")
|
2022-07-20 03:28:38 +00:00
|
|
|
else:
|
2024-11-12 13:09:33 +00:00
|
|
|
calories2.append(calorie / (1000000 * math.sqrt(coin.inflation)))
|
|
|
|
if 28 * calorie / (2500000 * math.sqrt(coin.inflation)) < 0.1:
|
|
|
|
calories3.append("")
|
2022-07-20 03:28:38 +00:00
|
|
|
else:
|
2024-11-12 13:09:33 +00:00
|
|
|
calories3.append(28 * calorie / (2500000 * math.sqrt(coin.inflation)))
|
2022-05-29 14:03:17 +00:00
|
|
|
else:
|
2024-11-12 13:09:33 +00:00
|
|
|
calories.append("")
|
|
|
|
temperature = coin.priceusd / calorie
|
2022-05-29 14:03:17 +00:00
|
|
|
if temperature > 0.000004:
|
|
|
|
temperature = 0.000004
|
|
|
|
thermocap.append(temperature)
|
|
|
|
supply = coin.supply
|
2024-11-12 13:09:33 +00:00
|
|
|
count += 1
|
2022-05-29 14:03:17 +00:00
|
|
|
|
2024-11-12 13:09:33 +00:00
|
|
|
temperature = locale.format("%.2f", temperature, grouping=True)
|
|
|
|
|
|
|
|
context = {
|
|
|
|
"dates": dates,
|
|
|
|
"temperature": temperature,
|
|
|
|
"values": values,
|
|
|
|
"thermocap": thermocap,
|
|
|
|
"color": color,
|
|
|
|
"calories": calories,
|
|
|
|
"calories2": calories2,
|
|
|
|
"calories3": calories3,
|
|
|
|
}
|
|
|
|
return render(request, "charts/thermocap.html", context)
|
2022-09-19 02:38:30 +00:00
|
|
|
|
2022-05-29 14:03:17 +00:00
|
|
|
|
|
|
|
def sharpe(request):
|
2024-11-12 13:09:33 +00:00
|
|
|
symbol = "xmr"
|
2022-05-29 14:03:17 +00:00
|
|
|
dates = []
|
|
|
|
values = []
|
|
|
|
color = []
|
|
|
|
rocs = []
|
|
|
|
sharpe = []
|
|
|
|
v0 = 0.002
|
2024-11-12 13:09:33 +00:00
|
|
|
delta = (0.015 - 0.002) / (6 * 365)
|
2022-05-29 14:03:17 +00:00
|
|
|
count = 0
|
|
|
|
price = 0
|
2024-11-12 13:09:33 +00:00
|
|
|
coins = Coin.objects.order_by("date").filter(name=symbol)
|
2022-05-29 14:03:17 +00:00
|
|
|
for coin in coins:
|
2024-11-12 13:09:33 +00:00
|
|
|
new_color = 30 * coin.pricebtc / (count * delta + v0)
|
|
|
|
count += 1
|
2022-05-29 14:03:17 +00:00
|
|
|
if count % 7 == 0:
|
|
|
|
if price == 0:
|
|
|
|
if coin.priceusd > 0:
|
|
|
|
price = coin.priceusd
|
|
|
|
roc = 0
|
|
|
|
else:
|
|
|
|
roc = 0
|
|
|
|
else:
|
2024-11-12 13:09:33 +00:00
|
|
|
roc = (coin.priceusd - price) / price
|
2022-05-29 14:03:17 +00:00
|
|
|
price = coin.priceusd
|
|
|
|
rocs.append(roc)
|
2024-11-12 13:09:33 +00:00
|
|
|
dates.append(datetime.datetime.strftime(coin.date, "%Y-%m-%d"))
|
2022-05-29 14:03:17 +00:00
|
|
|
values.append(coin.priceusd)
|
|
|
|
color.append(new_color)
|
2024-11-12 13:09:33 +00:00
|
|
|
|
2022-05-29 14:03:17 +00:00
|
|
|
n = 52
|
2024-11-12 13:09:33 +00:00
|
|
|
median = pd.Series(rocs).rolling(window=n).mean().iloc[n - 1 :].values
|
|
|
|
std = pd.Series(rocs).rolling(window=n).std().iloc[n - 1 :].values
|
2022-05-29 14:03:17 +00:00
|
|
|
|
|
|
|
aux = list(map(truediv, median, std))
|
|
|
|
for count in range(51):
|
2024-11-12 13:09:33 +00:00
|
|
|
sharpe.append("")
|
2022-05-29 14:03:17 +00:00
|
|
|
for item in aux:
|
2024-11-12 13:09:33 +00:00
|
|
|
sharpe.append(item * math.sqrt(52))
|
|
|
|
|
|
|
|
context = {"dates": dates, "values": values, "color": color, "sharpe": sharpe}
|
|
|
|
return render(request, "charts/sharpe.html", context)
|
2022-09-19 02:38:30 +00:00
|
|
|
|
2022-05-29 14:03:17 +00:00
|
|
|
|
|
|
|
def about(request):
|
|
|
|
context = {}
|
2024-11-12 13:09:33 +00:00
|
|
|
return render(request, "charts/about.html", context)
|
|
|
|
|
2022-05-29 14:03:17 +00:00
|
|
|
|
|
|
|
def transcost(request):
|
2024-11-12 13:09:33 +00:00
|
|
|
data = DailyData.objects.order_by("date")
|
2022-05-29 14:03:17 +00:00
|
|
|
costbtc = []
|
|
|
|
costxmr = []
|
|
|
|
dates = []
|
|
|
|
now_btc = 0
|
|
|
|
now_xmr = 0
|
|
|
|
|
2022-06-05 18:36:57 +00:00
|
|
|
for item in data:
|
2024-11-12 13:09:33 +00:00
|
|
|
dates.append(datetime.datetime.strftime(item.date, "%Y-%m-%d"))
|
2022-06-05 18:36:57 +00:00
|
|
|
if item.xmr_transcostusd == 0:
|
2024-11-12 13:09:33 +00:00
|
|
|
costxmr.append("")
|
2022-06-05 18:36:57 +00:00
|
|
|
else:
|
|
|
|
costxmr.append(item.xmr_transcostusd)
|
|
|
|
now_xmr = item.xmr_transcostusd
|
|
|
|
if item.btc_transcostusd == 0:
|
2024-11-12 13:09:33 +00:00
|
|
|
costbtc.append("")
|
2022-05-29 14:03:17 +00:00
|
|
|
else:
|
2022-06-05 18:36:57 +00:00
|
|
|
costbtc.append(item.btc_transcostusd)
|
|
|
|
now_btc = item.btc_transcostusd
|
2022-05-29 14:03:17 +00:00
|
|
|
|
2024-11-12 13:09:33 +00:00
|
|
|
now_btc = "$" + locale.format("%.2f", now_btc, grouping=True)
|
|
|
|
now_xmr = "$" + locale.format("%.2f", now_xmr, grouping=True)
|
|
|
|
|
|
|
|
context = {
|
|
|
|
"costxmr": costxmr,
|
|
|
|
"costbtc": costbtc,
|
|
|
|
"now_xmr": now_xmr,
|
|
|
|
"now_btc": now_btc,
|
|
|
|
"dates": dates,
|
|
|
|
}
|
|
|
|
return render(request, "charts/transcost.html", context)
|
2022-09-19 02:38:30 +00:00
|
|
|
|
2022-05-29 14:03:17 +00:00
|
|
|
|
|
|
|
def transcostntv(request):
|
2024-11-12 13:09:33 +00:00
|
|
|
data = DailyData.objects.order_by("date")
|
2022-05-29 14:03:17 +00:00
|
|
|
costbtc = []
|
|
|
|
costxmr = []
|
|
|
|
dates = []
|
|
|
|
now_btc = 0
|
|
|
|
now_xmr = 0
|
|
|
|
|
2022-06-05 18:36:57 +00:00
|
|
|
for item in data:
|
2024-11-12 13:09:33 +00:00
|
|
|
dates.append(datetime.datetime.strftime(item.date, "%Y-%m-%d"))
|
2022-06-05 18:36:57 +00:00
|
|
|
if item.xmr_transcostntv == 0:
|
2024-11-12 13:09:33 +00:00
|
|
|
costxmr.append("")
|
2022-05-29 14:03:17 +00:00
|
|
|
else:
|
2022-06-05 18:36:57 +00:00
|
|
|
costxmr.append(item.xmr_transcostntv)
|
|
|
|
now_xmr = item.xmr_transcostntv
|
|
|
|
if item.btc_transcostntv == 0:
|
2024-11-12 13:09:33 +00:00
|
|
|
costbtc.append("")
|
2022-05-29 14:03:17 +00:00
|
|
|
else:
|
2022-06-05 18:36:57 +00:00
|
|
|
costbtc.append(item.btc_transcostntv)
|
|
|
|
now_btc = item.btc_transcostntv
|
2022-09-19 02:38:30 +00:00
|
|
|
|
2024-11-12 13:09:33 +00:00
|
|
|
now_btc = locale.format("%.6f", now_btc, grouping=True)
|
|
|
|
now_xmr = locale.format("%.6f", now_xmr, grouping=True)
|
|
|
|
|
|
|
|
context = {
|
|
|
|
"costxmr": costxmr,
|
|
|
|
"costbtc": costbtc,
|
|
|
|
"now_xmr": now_xmr,
|
|
|
|
"now_btc": now_btc,
|
|
|
|
"dates": dates,
|
|
|
|
}
|
|
|
|
return render(request, "charts/transcostntv.html", context)
|
|
|
|
|
2022-05-29 14:03:17 +00:00
|
|
|
|
|
|
|
def minerrevcap(request):
|
2024-11-12 13:09:33 +00:00
|
|
|
data = DailyData.objects.order_by("date")
|
2022-05-29 14:03:17 +00:00
|
|
|
costbtc = []
|
|
|
|
costxmr = []
|
|
|
|
dates = []
|
|
|
|
now_btc = 0
|
|
|
|
now_xmr = 0
|
|
|
|
|
2022-06-07 19:51:39 +00:00
|
|
|
for item in data:
|
2024-11-12 13:09:33 +00:00
|
|
|
dates.append(datetime.datetime.strftime(item.date, "%Y-%m-%d"))
|
2022-06-07 19:51:39 +00:00
|
|
|
if item.xmr_minerrevcap == 0:
|
2024-11-12 13:09:33 +00:00
|
|
|
costxmr.append("")
|
2022-06-02 19:06:58 +00:00
|
|
|
else:
|
2022-06-07 19:51:39 +00:00
|
|
|
costxmr.append(item.xmr_minerrevcap)
|
|
|
|
now_xmr = item.xmr_minerrevcap
|
|
|
|
if item.btc_minerrevcap == 0:
|
2024-11-12 13:09:33 +00:00
|
|
|
costbtc.append("")
|
2022-05-29 14:03:17 +00:00
|
|
|
else:
|
2022-06-07 19:51:39 +00:00
|
|
|
costbtc.append(item.btc_minerrevcap)
|
|
|
|
now_btc = item.btc_minerrevcap
|
2022-09-19 02:38:30 +00:00
|
|
|
|
2024-11-12 13:09:33 +00:00
|
|
|
now_btc = locale.format("%.2f", now_btc, grouping=True) + "%"
|
|
|
|
now_xmr = locale.format("%.2f", now_xmr, grouping=True) + "%"
|
|
|
|
|
|
|
|
context = {
|
|
|
|
"costxmr": costxmr,
|
|
|
|
"costbtc": costbtc,
|
|
|
|
"now_xmr": now_xmr,
|
|
|
|
"now_btc": now_btc,
|
|
|
|
"dates": dates,
|
|
|
|
}
|
|
|
|
return render(request, "charts/minerrevcap.html", context)
|
|
|
|
|
2022-05-29 14:03:17 +00:00
|
|
|
|
2024-11-12 13:09:33 +00:00
|
|
|
def minerrev(request):
|
|
|
|
data = DailyData.objects.order_by("date")
|
2022-05-29 14:03:17 +00:00
|
|
|
costbtc = []
|
|
|
|
costxmr = []
|
|
|
|
dates = []
|
|
|
|
now_btc = 0
|
|
|
|
now_xmr = 0
|
|
|
|
|
2022-06-05 18:36:57 +00:00
|
|
|
for item in data:
|
2024-11-12 13:09:33 +00:00
|
|
|
dates.append(datetime.datetime.strftime(item.date, "%Y-%m-%d"))
|
2022-06-05 18:36:57 +00:00
|
|
|
if item.btc_minerrevusd < 0.0001:
|
2024-11-12 13:09:33 +00:00
|
|
|
costbtc.append("")
|
2022-05-29 14:03:17 +00:00
|
|
|
else:
|
2022-06-05 18:36:57 +00:00
|
|
|
costbtc.append(item.btc_minerrevusd)
|
|
|
|
now_btc = item.btc_minerrevusd
|
|
|
|
if item.xmr_minerrevusd < 0.0001:
|
2024-11-12 13:09:33 +00:00
|
|
|
costxmr.append("")
|
2022-06-05 18:36:57 +00:00
|
|
|
else:
|
|
|
|
costxmr.append(item.xmr_minerrevusd)
|
|
|
|
now_xmr = item.xmr_minerrevusd
|
2022-05-29 14:03:17 +00:00
|
|
|
|
2024-11-12 13:09:33 +00:00
|
|
|
now_btc = "$" + locale.format("%.2f", now_btc, grouping=True)
|
|
|
|
now_xmr = "$" + locale.format("%.2f", now_xmr, grouping=True)
|
|
|
|
|
|
|
|
context = {
|
|
|
|
"costxmr": costxmr,
|
|
|
|
"costbtc": costbtc,
|
|
|
|
"now_xmr": now_xmr,
|
|
|
|
"now_btc": now_btc,
|
|
|
|
"dates": dates,
|
|
|
|
}
|
|
|
|
return render(request, "charts/minerrev.html", context)
|
2022-09-19 02:38:30 +00:00
|
|
|
|
2022-05-29 14:03:17 +00:00
|
|
|
|
|
|
|
def minerrevntv(request):
|
2024-11-12 13:09:33 +00:00
|
|
|
data = DailyData.objects.order_by("date")
|
2022-05-29 14:03:17 +00:00
|
|
|
costbtc = []
|
|
|
|
costxmr = []
|
|
|
|
dates = []
|
|
|
|
now_btc = 0
|
|
|
|
now_xmr = 0
|
2022-06-05 18:36:57 +00:00
|
|
|
for item in data:
|
2024-11-12 13:09:33 +00:00
|
|
|
dates.append(datetime.datetime.strftime(item.date, "%Y-%m-%d"))
|
2022-06-05 18:36:57 +00:00
|
|
|
if item.btc_minerrevntv < 0.0001:
|
2024-11-12 13:09:33 +00:00
|
|
|
costbtc.append("")
|
2022-05-29 14:03:17 +00:00
|
|
|
else:
|
2022-06-05 18:36:57 +00:00
|
|
|
costbtc.append(item.btc_minerrevntv)
|
|
|
|
now_btc = item.btc_minerrevntv
|
|
|
|
if item.xmr_minerrevntv < 0.0001:
|
2024-11-12 13:09:33 +00:00
|
|
|
costxmr.append("")
|
2022-06-05 18:36:57 +00:00
|
|
|
else:
|
|
|
|
costxmr.append(item.xmr_minerrevntv)
|
|
|
|
now_xmr = item.xmr_minerrevntv
|
2024-11-12 13:09:33 +00:00
|
|
|
|
|
|
|
now_btc = locale.format("%.2f", now_btc, grouping=True)
|
|
|
|
now_xmr = locale.format("%.2f", now_xmr, grouping=True)
|
|
|
|
|
|
|
|
context = {
|
|
|
|
"costxmr": costxmr,
|
|
|
|
"costbtc": costbtc,
|
|
|
|
"now_xmr": now_xmr,
|
|
|
|
"now_btc": now_btc,
|
|
|
|
"dates": dates,
|
|
|
|
}
|
|
|
|
return render(request, "charts/minerrevntv.html", context)
|
|
|
|
|
2022-05-29 14:03:17 +00:00
|
|
|
|
|
|
|
def minerfeesntv(request):
|
2024-11-12 13:09:33 +00:00
|
|
|
data = DailyData.objects.order_by("date")
|
2022-05-29 14:03:17 +00:00
|
|
|
costbtc = []
|
|
|
|
costxmr = []
|
|
|
|
dates = []
|
|
|
|
now_btc = 0
|
|
|
|
now_xmr = 0
|
2022-06-05 18:36:57 +00:00
|
|
|
for item in data:
|
2024-11-12 13:09:33 +00:00
|
|
|
dates.append(datetime.datetime.strftime(item.date, "%Y-%m-%d"))
|
2022-06-05 18:36:57 +00:00
|
|
|
if item.btc_minerfeesntv < 0.1:
|
2024-11-12 13:09:33 +00:00
|
|
|
costbtc.append("")
|
2022-05-29 14:03:17 +00:00
|
|
|
else:
|
2022-06-05 18:36:57 +00:00
|
|
|
costbtc.append(item.btc_minerfeesntv)
|
|
|
|
now_btc = item.btc_minerfeesntv
|
|
|
|
if item.xmr_minerfeesntv < 0.1:
|
2024-11-12 13:09:33 +00:00
|
|
|
costxmr.append("")
|
2022-06-05 18:36:57 +00:00
|
|
|
else:
|
|
|
|
costxmr.append(item.xmr_minerfeesntv)
|
|
|
|
now_xmr = item.xmr_minerfeesntv
|
2022-09-19 02:38:30 +00:00
|
|
|
|
2024-11-12 13:09:33 +00:00
|
|
|
now_btc = locale.format("%.2f", now_btc, grouping=True)
|
|
|
|
now_xmr = locale.format("%.2f", now_xmr, grouping=True)
|
|
|
|
|
|
|
|
context = {
|
|
|
|
"costxmr": costxmr,
|
|
|
|
"costbtc": costbtc,
|
|
|
|
"now_xmr": now_xmr,
|
|
|
|
"now_btc": now_btc,
|
|
|
|
"dates": dates,
|
|
|
|
}
|
|
|
|
return render(request, "charts/minerfeesntv.html", context)
|
|
|
|
|
2022-05-29 14:03:17 +00:00
|
|
|
|
|
|
|
def minerfees(request):
|
2024-11-12 13:09:33 +00:00
|
|
|
data = DailyData.objects.order_by("date")
|
2022-05-29 14:03:17 +00:00
|
|
|
costbtc = []
|
|
|
|
costxmr = []
|
|
|
|
dates = []
|
|
|
|
now_btc = 0
|
|
|
|
now_xmr = 0
|
2022-06-05 18:36:57 +00:00
|
|
|
for item in data:
|
2024-11-12 13:09:33 +00:00
|
|
|
dates.append(datetime.datetime.strftime(item.date, "%Y-%m-%d"))
|
2022-06-05 18:36:57 +00:00
|
|
|
if item.btc_minerfeesusd < 1:
|
2024-11-12 13:09:33 +00:00
|
|
|
costbtc.append("")
|
2022-05-29 14:03:17 +00:00
|
|
|
else:
|
2022-06-05 18:36:57 +00:00
|
|
|
costbtc.append(item.btc_minerfeesusd)
|
|
|
|
now_btc = item.btc_minerfeesusd
|
|
|
|
if item.xmr_minerfeesusd < 1:
|
2024-11-12 13:09:33 +00:00
|
|
|
costxmr.append("")
|
2022-06-05 18:36:57 +00:00
|
|
|
else:
|
|
|
|
costxmr.append(item.xmr_minerfeesusd)
|
|
|
|
now_xmr = item.xmr_minerfeesusd
|
2022-09-19 02:38:30 +00:00
|
|
|
|
2024-11-12 13:09:33 +00:00
|
|
|
now_btc = locale.format("%.2f", now_btc, grouping=True)
|
|
|
|
now_xmr = locale.format("%.2f", now_xmr, grouping=True)
|
|
|
|
|
|
|
|
context = {
|
|
|
|
"costxmr": costxmr,
|
|
|
|
"costbtc": costbtc,
|
|
|
|
"now_xmr": now_xmr,
|
|
|
|
"now_btc": now_btc,
|
|
|
|
"dates": dates,
|
|
|
|
}
|
|
|
|
return render(request, "charts/minerfees.html", context)
|
|
|
|
|
2022-05-29 14:03:17 +00:00
|
|
|
|
|
|
|
def dailyemissionntv(request):
|
2024-11-12 13:09:33 +00:00
|
|
|
data = DailyData.objects.order_by("date")
|
2022-06-05 18:36:57 +00:00
|
|
|
emissionbtc = []
|
|
|
|
emissionxmr = []
|
2022-05-29 14:03:17 +00:00
|
|
|
dates = []
|
|
|
|
now_btc = 0
|
|
|
|
now_xmr = 0
|
2022-06-05 18:36:57 +00:00
|
|
|
for item in data:
|
2022-06-09 19:23:30 +00:00
|
|
|
if item.btc_emissionntv == 0:
|
2024-11-12 13:09:33 +00:00
|
|
|
emissionbtc.append("")
|
2022-05-29 14:03:17 +00:00
|
|
|
else:
|
2022-06-09 19:23:30 +00:00
|
|
|
emissionbtc.append(item.btc_emissionntv)
|
|
|
|
now_btc = item.btc_emissionntv
|
2024-11-12 13:09:33 +00:00
|
|
|
|
2022-06-09 19:23:30 +00:00
|
|
|
if item.xmr_emissionntv == 0:
|
2024-11-12 13:09:33 +00:00
|
|
|
emissionxmr.append("")
|
2022-05-29 14:03:17 +00:00
|
|
|
else:
|
2022-06-09 19:23:30 +00:00
|
|
|
emissionxmr.append(item.xmr_emissionntv)
|
|
|
|
now_xmr = item.xmr_emissionntv
|
2024-11-12 13:09:33 +00:00
|
|
|
dates.append(datetime.datetime.strftime(item.date, "%Y-%m-%d"))
|
2022-05-29 14:03:17 +00:00
|
|
|
|
|
|
|
for i in range(500):
|
2022-06-05 18:36:57 +00:00
|
|
|
date_aux = item.date + timedelta(i)
|
2024-11-12 13:09:33 +00:00
|
|
|
dates.append(datetime.datetime.strftime(date_aux, "%Y-%m-%d"))
|
|
|
|
emissionxmr.append("")
|
|
|
|
emissionbtc.append("")
|
|
|
|
|
|
|
|
now_btc = locale.format("%.0f", now_btc, grouping=True)
|
|
|
|
now_xmr = locale.format("%.0f", now_xmr, grouping=True)
|
|
|
|
|
|
|
|
context = {
|
|
|
|
"emissionxmr": emissionxmr,
|
|
|
|
"emissionbtc": emissionbtc,
|
|
|
|
"now_xmr": now_xmr,
|
|
|
|
"now_btc": now_btc,
|
|
|
|
"dates": dates,
|
|
|
|
}
|
|
|
|
return render(request, "charts/dailyemissionntv.html", context)
|
2022-09-19 02:38:30 +00:00
|
|
|
|
2022-05-29 14:03:17 +00:00
|
|
|
|
|
|
|
def commit(request):
|
2024-11-12 13:09:33 +00:00
|
|
|
data = DailyData.objects.order_by("date")
|
2022-05-29 14:03:17 +00:00
|
|
|
costbtc = []
|
|
|
|
costxmr = []
|
|
|
|
dates = []
|
|
|
|
now_btc = 0
|
|
|
|
now_xmr = 0
|
|
|
|
|
2022-06-05 18:36:57 +00:00
|
|
|
for item in data:
|
2024-11-12 13:09:33 +00:00
|
|
|
dates.append(datetime.datetime.strftime(item.date, "%Y-%m-%d"))
|
2022-06-05 18:36:57 +00:00
|
|
|
if item.btc_commitusd < 0.000001:
|
2024-11-12 13:09:33 +00:00
|
|
|
costbtc.append("")
|
2022-05-29 14:03:17 +00:00
|
|
|
else:
|
2022-06-05 18:36:57 +00:00
|
|
|
costbtc.append(item.btc_commitusd)
|
|
|
|
now_btc = item.btc_commitusd
|
|
|
|
if item.xmr_commitusd < 0.000001:
|
2024-11-12 13:09:33 +00:00
|
|
|
costxmr.append("")
|
2022-06-05 18:36:57 +00:00
|
|
|
else:
|
|
|
|
costxmr.append(item.xmr_commitusd)
|
|
|
|
now_xmr = item.xmr_commitusd
|
2022-09-19 02:38:30 +00:00
|
|
|
|
2024-11-12 13:09:33 +00:00
|
|
|
now_btc = locale.format("%.2f", now_btc, grouping=True) + " hashs / dollar"
|
|
|
|
now_xmr = locale.format("%.2f", now_xmr, grouping=True) + " hashs / dollar"
|
|
|
|
|
|
|
|
context = {
|
|
|
|
"costxmr": costxmr,
|
|
|
|
"costbtc": costbtc,
|
|
|
|
"now_xmr": now_xmr,
|
|
|
|
"now_btc": now_btc,
|
|
|
|
"dates": dates,
|
|
|
|
}
|
|
|
|
return render(request, "charts/commit.html", context)
|
|
|
|
|
2022-05-29 14:03:17 +00:00
|
|
|
|
|
|
|
def commitntv(request):
|
2024-11-12 13:09:33 +00:00
|
|
|
data = DailyData.objects.order_by("date")
|
2022-05-29 14:03:17 +00:00
|
|
|
costbtc = []
|
|
|
|
costxmr = []
|
|
|
|
dates = []
|
|
|
|
now_btc = 0
|
|
|
|
now_xmr = 0
|
|
|
|
|
2022-06-05 18:36:57 +00:00
|
|
|
for item in data:
|
2024-11-12 13:09:33 +00:00
|
|
|
dates.append(datetime.datetime.strftime(item.date, "%Y-%m-%d"))
|
2022-06-05 18:36:57 +00:00
|
|
|
if item.btc_commitntv < 0.00001:
|
2024-11-12 13:09:33 +00:00
|
|
|
costbtc.append("")
|
2022-05-29 14:03:17 +00:00
|
|
|
else:
|
2022-06-05 18:36:57 +00:00
|
|
|
costbtc.append(item.btc_commitntv)
|
|
|
|
now_btc = item.btc_commitntv
|
|
|
|
if item.xmr_commitntv < 0.00001:
|
2024-11-12 13:09:33 +00:00
|
|
|
costxmr.append("")
|
2022-06-05 18:36:57 +00:00
|
|
|
else:
|
|
|
|
costxmr.append(item.xmr_commitntv)
|
|
|
|
now_xmr = item.xmr_commitntv
|
2022-09-19 02:38:30 +00:00
|
|
|
|
2024-11-12 13:09:33 +00:00
|
|
|
now_btc = locale.format("%.0f", now_btc, grouping=True) + " hashs / btc"
|
|
|
|
now_xmr = locale.format("%.0f", now_xmr, grouping=True) + " hashs / xmr"
|
|
|
|
|
|
|
|
context = {
|
|
|
|
"costxmr": costxmr,
|
|
|
|
"costbtc": costbtc,
|
|
|
|
"now_xmr": now_xmr,
|
|
|
|
"now_btc": now_btc,
|
|
|
|
"dates": dates,
|
|
|
|
}
|
|
|
|
return render(request, "charts/commitntv.html", context)
|
|
|
|
|
2022-05-29 14:03:17 +00:00
|
|
|
|
|
|
|
def competitorssats(request):
|
|
|
|
dates = []
|
|
|
|
xmr = []
|
|
|
|
dash = []
|
|
|
|
grin = []
|
|
|
|
zcash = []
|
|
|
|
count = 0
|
|
|
|
now_xmr = 0
|
|
|
|
now_dash = 0
|
|
|
|
now_grin = 0
|
|
|
|
now_zcash = 0
|
|
|
|
count = 0
|
2024-11-12 13:09:33 +00:00
|
|
|
coins_xmr = Coin.objects.order_by("date").filter(name="xmr")
|
2022-05-29 14:03:17 +00:00
|
|
|
for coin_xmr in coins_xmr:
|
|
|
|
if coin_xmr.pricebtc:
|
|
|
|
if count > 32:
|
2024-11-12 13:09:33 +00:00
|
|
|
xmr.append(coin_xmr.pricebtc / 0.0058)
|
|
|
|
now_xmr = coin_xmr.pricebtc / 0.0058
|
2022-05-29 14:03:17 +00:00
|
|
|
dates.append(count)
|
|
|
|
count += 1
|
|
|
|
elif count <= 63:
|
|
|
|
continue
|
|
|
|
else:
|
2024-11-12 13:09:33 +00:00
|
|
|
xmr.append("")
|
2022-05-29 14:03:17 +00:00
|
|
|
|
|
|
|
count = 0
|
2024-11-12 13:09:33 +00:00
|
|
|
coins_dash = Coin.objects.order_by("date").filter(name="dash")
|
2022-05-29 14:03:17 +00:00
|
|
|
for coin_dash in coins_dash:
|
|
|
|
count += 1
|
|
|
|
if coin_dash.pricebtc and count > 130:
|
2024-11-12 13:09:33 +00:00
|
|
|
dash.append(coin_dash.pricebtc / 0.02)
|
|
|
|
now_dash = coin_dash.pricebtc / 0.02
|
2022-05-29 14:03:17 +00:00
|
|
|
elif count <= 130:
|
|
|
|
continue
|
|
|
|
else:
|
2024-11-12 13:09:33 +00:00
|
|
|
dash.append("")
|
2022-05-29 14:03:17 +00:00
|
|
|
dates.append(count)
|
|
|
|
|
|
|
|
count = 0
|
2024-11-12 13:09:33 +00:00
|
|
|
coins_grin = Coin.objects.order_by("date").filter(name="grin")
|
2022-05-29 14:03:17 +00:00
|
|
|
for coin_grin in coins_grin:
|
|
|
|
count += 1
|
|
|
|
if coin_grin.pricebtc and count > 155:
|
2024-11-12 13:09:33 +00:00
|
|
|
grin.append(coin_grin.pricebtc / 0.000513)
|
|
|
|
now_grin = coin_grin.pricebtc / 0.000513
|
2022-05-29 14:03:17 +00:00
|
|
|
elif count <= 155:
|
|
|
|
continue
|
|
|
|
else:
|
2024-11-12 13:09:33 +00:00
|
|
|
grin.append("")
|
2022-05-29 14:03:17 +00:00
|
|
|
dates.append(count)
|
|
|
|
|
|
|
|
count = 0
|
2024-11-12 13:09:33 +00:00
|
|
|
coins_zcash = Coin.objects.order_by("date").filter(name="zec")
|
2022-05-29 14:03:17 +00:00
|
|
|
for coin_zcash in coins_zcash:
|
|
|
|
count += 1
|
|
|
|
if coin_zcash.pricebtc and count > 434:
|
2024-11-12 13:09:33 +00:00
|
|
|
zcash.append(coin_zcash.pricebtc / 0.05)
|
|
|
|
now_zcash = coin_zcash.pricebtc / 0.05
|
2022-05-29 14:03:17 +00:00
|
|
|
elif count <= 434:
|
|
|
|
continue
|
|
|
|
else:
|
2024-11-12 13:09:33 +00:00
|
|
|
zcash.append("")
|
2022-05-29 14:03:17 +00:00
|
|
|
dates.append(count)
|
|
|
|
|
2024-11-12 13:09:33 +00:00
|
|
|
now_dash = locale.format("%.3f", now_dash, grouping=True)
|
|
|
|
now_grin = locale.format("%.3f", now_grin, grouping=True)
|
|
|
|
now_zcash = locale.format("%.3f", now_zcash, grouping=True)
|
|
|
|
now_xmr = locale.format("%.3f", now_xmr, grouping=True)
|
|
|
|
|
|
|
|
context = {
|
|
|
|
"xmr": xmr,
|
|
|
|
"dash": dash,
|
|
|
|
"grin": grin,
|
|
|
|
"zcash": zcash,
|
|
|
|
"now_xmr": now_xmr,
|
|
|
|
"now_dash": now_dash,
|
|
|
|
"now_grin": now_grin,
|
|
|
|
"now_zcash": now_zcash,
|
|
|
|
"dates": dates,
|
|
|
|
}
|
|
|
|
return render(request, "charts/competitorssats.html", context)
|
2022-09-19 02:38:30 +00:00
|
|
|
|
2022-05-29 14:03:17 +00:00
|
|
|
|
|
|
|
def competitorssatslin(request):
|
|
|
|
dates = []
|
|
|
|
xmr = []
|
|
|
|
dash = []
|
|
|
|
grin = []
|
|
|
|
zcash = []
|
|
|
|
count = 0
|
|
|
|
now_xmr = 0
|
|
|
|
now_dash = 0
|
|
|
|
now_grin = 0
|
|
|
|
now_zcash = 0
|
|
|
|
count = 0
|
2024-11-12 13:09:33 +00:00
|
|
|
coins_xmr = Coin.objects.order_by("date").filter(name="xmr")
|
2022-05-29 14:03:17 +00:00
|
|
|
for coin_xmr in coins_xmr:
|
|
|
|
if coin_xmr.pricebtc:
|
|
|
|
if count > 32:
|
2024-11-12 13:09:33 +00:00
|
|
|
xmr.append(coin_xmr.pricebtc / 0.0058)
|
|
|
|
now_xmr = coin_xmr.pricebtc / 0.0058
|
2022-05-29 14:03:17 +00:00
|
|
|
dates.append(count)
|
|
|
|
count += 1
|
|
|
|
elif count <= 63:
|
|
|
|
continue
|
|
|
|
else:
|
2024-11-12 13:09:33 +00:00
|
|
|
xmr.append("")
|
2022-05-29 14:03:17 +00:00
|
|
|
|
|
|
|
count = 0
|
2024-11-12 13:09:33 +00:00
|
|
|
coins_dash = Coin.objects.order_by("date").filter(name="dash")
|
2022-05-29 14:03:17 +00:00
|
|
|
for coin_dash in coins_dash:
|
|
|
|
count += 1
|
|
|
|
if coin_dash.pricebtc and count > 130:
|
2024-11-12 13:09:33 +00:00
|
|
|
dash.append(coin_dash.pricebtc / 0.02)
|
|
|
|
now_dash = coin_dash.pricebtc / 0.02
|
2022-05-29 14:03:17 +00:00
|
|
|
elif count <= 130:
|
|
|
|
continue
|
|
|
|
else:
|
2024-11-12 13:09:33 +00:00
|
|
|
dash.append("")
|
2022-05-29 14:03:17 +00:00
|
|
|
dates.append(count)
|
|
|
|
|
|
|
|
count = 0
|
2024-11-12 13:09:33 +00:00
|
|
|
coins_grin = Coin.objects.order_by("date").filter(name="grin")
|
2022-05-29 14:03:17 +00:00
|
|
|
for coin_grin in coins_grin:
|
|
|
|
count += 1
|
|
|
|
if coin_grin.pricebtc and count > 155:
|
2024-11-12 13:09:33 +00:00
|
|
|
grin.append(coin_grin.pricebtc / 0.000513)
|
|
|
|
now_grin = coin_grin.pricebtc / 0.000513
|
2022-05-29 14:03:17 +00:00
|
|
|
elif count <= 155:
|
|
|
|
continue
|
|
|
|
else:
|
2024-11-12 13:09:33 +00:00
|
|
|
grin.append("")
|
2022-05-29 14:03:17 +00:00
|
|
|
dates.append(count)
|
|
|
|
|
|
|
|
count = 0
|
2024-11-12 13:09:33 +00:00
|
|
|
coins_zcash = Coin.objects.order_by("date").filter(name="zec")
|
2022-05-29 14:03:17 +00:00
|
|
|
for coin_zcash in coins_zcash:
|
|
|
|
count += 1
|
|
|
|
if coin_zcash.pricebtc and count > 434:
|
2024-11-12 13:09:33 +00:00
|
|
|
zcash.append(coin_zcash.pricebtc / 0.05)
|
|
|
|
now_zcash = coin_zcash.pricebtc / 0.05
|
2022-05-29 14:03:17 +00:00
|
|
|
elif count <= 434:
|
|
|
|
continue
|
|
|
|
else:
|
2024-11-12 13:09:33 +00:00
|
|
|
zcash.append("")
|
2022-05-29 14:03:17 +00:00
|
|
|
dates.append(count)
|
|
|
|
|
2024-11-12 13:09:33 +00:00
|
|
|
now_dash = locale.format("%.3f", now_dash, grouping=True)
|
|
|
|
now_grin = locale.format("%.3f", now_grin, grouping=True)
|
|
|
|
now_zcash = locale.format("%.3f", now_zcash, grouping=True)
|
|
|
|
now_xmr = locale.format("%.3f", now_xmr, grouping=True)
|
|
|
|
|
|
|
|
context = {
|
|
|
|
"xmr": xmr,
|
|
|
|
"dash": dash,
|
|
|
|
"grin": grin,
|
|
|
|
"zcash": zcash,
|
|
|
|
"now_xmr": now_xmr,
|
|
|
|
"now_dash": now_dash,
|
|
|
|
"now_grin": now_grin,
|
|
|
|
"now_zcash": now_zcash,
|
|
|
|
"dates": dates,
|
|
|
|
}
|
|
|
|
return render(request, "charts/competitorssatslin.html", context)
|
2022-09-19 02:38:30 +00:00
|
|
|
|
2022-05-29 14:03:17 +00:00
|
|
|
|
|
|
|
def dread_subscribers(request):
|
|
|
|
dates = []
|
|
|
|
data1 = []
|
|
|
|
data2 = []
|
|
|
|
now_xmr = 0
|
|
|
|
now_btc = 0
|
2024-11-13 09:08:39 +00:00
|
|
|
|
|
|
|
df = pd.read_excel(DATA_FILE, sheet_name="Sheet6", engine="odf")
|
|
|
|
start_row, end_row = 2, 99
|
|
|
|
start_col, end_col = 0, 2
|
|
|
|
values_mat = df.iloc[start_row:end_row, start_col:end_col].to_numpy()
|
2022-05-29 14:03:17 +00:00
|
|
|
|
2024-11-12 13:09:33 +00:00
|
|
|
for k in range(0, len(values_mat)):
|
2022-05-29 14:03:17 +00:00
|
|
|
if values_mat[k][0] and values_mat[k][2]:
|
|
|
|
date = values_mat[k][0]
|
|
|
|
value1 = values_mat[k][1]
|
|
|
|
value2 = values_mat[k][2]
|
2024-11-12 13:09:33 +00:00
|
|
|
if not (value1) or not (value2):
|
2022-05-29 14:03:17 +00:00
|
|
|
break
|
|
|
|
else:
|
|
|
|
dates.append(date)
|
|
|
|
data1.append(int(value1))
|
|
|
|
data2.append(int(value2))
|
|
|
|
now_xmr = int(value2)
|
|
|
|
now_btc = int(value1)
|
|
|
|
else:
|
|
|
|
break
|
|
|
|
|
2024-11-12 13:09:33 +00:00
|
|
|
dominance = 100 * int(value2) / (int(value2) + int(value1))
|
|
|
|
|
|
|
|
now_btc = locale.format("%.0f", now_btc, grouping=True)
|
|
|
|
now_xmr = locale.format("%.0f", now_xmr, grouping=True)
|
|
|
|
dominance = locale.format("%.2f", dominance, grouping=True)
|
|
|
|
|
|
|
|
context = {
|
|
|
|
"dates": dates,
|
|
|
|
"now_btc": now_btc,
|
|
|
|
"now_xmr": now_xmr,
|
|
|
|
"data1": data1,
|
|
|
|
"data2": data2,
|
|
|
|
"dominance": dominance,
|
|
|
|
}
|
|
|
|
return render(request, "charts/dread_subscribers.html", context)
|
2022-09-19 02:38:30 +00:00
|
|
|
|
2022-05-29 14:03:17 +00:00
|
|
|
|
|
|
|
def coincards(request):
|
|
|
|
dates = []
|
|
|
|
data1 = []
|
|
|
|
data2 = []
|
|
|
|
data3 = []
|
|
|
|
data4 = []
|
|
|
|
now_xmr = 0
|
|
|
|
now_btc = 0
|
|
|
|
|
2024-11-13 09:08:39 +00:00
|
|
|
df = pd.read_excel(DATA_FILE, sheet_name="Sheet2", engine="odf")
|
|
|
|
start_row, end_row = 2, 99
|
|
|
|
start_col, end_col = 0, 5
|
|
|
|
values_mat = df.iloc[start_row:end_row, start_col:end_col].to_numpy()
|
2024-11-12 13:09:33 +00:00
|
|
|
|
|
|
|
for k in range(0, len(values_mat)):
|
2022-05-29 14:03:17 +00:00
|
|
|
if values_mat[k][0] and values_mat[k][2]:
|
|
|
|
date = values_mat[k][0]
|
|
|
|
value1 = values_mat[k][1]
|
|
|
|
value2 = values_mat[k][2]
|
|
|
|
value3 = values_mat[k][3]
|
|
|
|
value4 = values_mat[k][4]
|
2024-11-12 13:09:33 +00:00
|
|
|
if not (value1) or not (value2) or not (value3) or not (value4):
|
2022-05-29 14:03:17 +00:00
|
|
|
break
|
|
|
|
else:
|
|
|
|
dates.append(date)
|
2024-11-12 13:09:33 +00:00
|
|
|
data1.append(float(value1.replace(",", ".")))
|
|
|
|
data2.append(float(value2.replace(",", ".")))
|
|
|
|
data3.append(float(value3.replace(",", ".")))
|
|
|
|
data4.append(float(value4.replace(",", ".")))
|
|
|
|
now_btc = float(value1.replace(",", "."))
|
|
|
|
now_xmr = float(value2.replace(",", "."))
|
|
|
|
now_eth = float(value3.replace(",", "."))
|
|
|
|
now_others = float(value4.replace(",", "."))
|
2022-05-29 14:03:17 +00:00
|
|
|
else:
|
|
|
|
break
|
|
|
|
|
2024-11-12 13:09:33 +00:00
|
|
|
now_btc = locale.format("%.1f", now_btc, grouping=True)
|
|
|
|
now_xmr = locale.format("%.1f", now_xmr, grouping=True)
|
|
|
|
now_eth = locale.format("%.1f", now_eth, grouping=True)
|
|
|
|
now_others = locale.format("%.1f", now_others, grouping=True)
|
|
|
|
|
|
|
|
context = {
|
|
|
|
"dates": dates,
|
|
|
|
"now_btc": now_btc,
|
|
|
|
"now_xmr": now_xmr,
|
|
|
|
"now_eth": now_eth,
|
|
|
|
"now_others": now_others,
|
|
|
|
"data1": data1,
|
|
|
|
"data2": data2,
|
|
|
|
"data3": data3,
|
|
|
|
"data4": data4,
|
|
|
|
}
|
|
|
|
return render(request, "charts/coincards.html", context)
|
2022-09-19 02:38:30 +00:00
|
|
|
|
2022-05-29 14:03:17 +00:00
|
|
|
|
|
|
|
def merchants(request):
|
|
|
|
dates = []
|
|
|
|
data1 = []
|
|
|
|
data2 = []
|
|
|
|
data3 = []
|
|
|
|
data4 = []
|
|
|
|
data5 = []
|
|
|
|
data6 = []
|
|
|
|
data7 = []
|
|
|
|
now_xmr = 0
|
|
|
|
now_btc = 0
|
|
|
|
now_eth = 0
|
|
|
|
|
2024-11-13 09:08:39 +00:00
|
|
|
df = pd.read_excel(DATA_FILE, sheet_name="Sheet3", engine="odf")
|
|
|
|
start_row, end_row = 2, 99
|
|
|
|
start_col, end_col = 0, 8
|
|
|
|
values_mat = df.iloc[start_row:end_row, start_col:end_col].to_numpy()
|
2022-05-29 14:03:17 +00:00
|
|
|
|
2024-11-12 13:09:33 +00:00
|
|
|
for k in range(0, len(values_mat)):
|
2022-05-29 14:03:17 +00:00
|
|
|
if values_mat[k][0] and values_mat[k][2]:
|
|
|
|
date = values_mat[k][0]
|
|
|
|
value1 = values_mat[k][1]
|
|
|
|
value2 = values_mat[k][2]
|
|
|
|
value3 = values_mat[k][3]
|
|
|
|
value4 = values_mat[k][4]
|
|
|
|
value5 = values_mat[k][5]
|
|
|
|
value6 = values_mat[k][6]
|
|
|
|
value7 = values_mat[k][7]
|
2024-11-12 13:09:33 +00:00
|
|
|
if (
|
|
|
|
not (value1)
|
|
|
|
or not (value2)
|
|
|
|
or not (value3)
|
|
|
|
or not (value4)
|
|
|
|
or not (value5)
|
|
|
|
or not (value6)
|
|
|
|
or not (value7)
|
|
|
|
):
|
2022-05-29 14:03:17 +00:00
|
|
|
break
|
|
|
|
else:
|
|
|
|
dates.append(date)
|
|
|
|
data1.append(int(value1))
|
|
|
|
data2.append(int(value2))
|
|
|
|
data3.append(int(value3))
|
|
|
|
data4.append(int(value4))
|
|
|
|
data5.append(int(value5))
|
|
|
|
data6.append(int(value6))
|
|
|
|
data7.append(int(value7))
|
|
|
|
now_btc = int(value1)
|
|
|
|
now_xmr = int(value2)
|
|
|
|
now_eth = int(value3)
|
|
|
|
else:
|
|
|
|
break
|
|
|
|
|
2024-11-12 13:09:33 +00:00
|
|
|
now_btc = locale.format("%.0f", now_btc, grouping=True)
|
|
|
|
now_xmr = locale.format("%.0f", now_xmr, grouping=True)
|
|
|
|
now_eth = locale.format("%.0f", now_eth, grouping=True)
|
|
|
|
|
|
|
|
context = {
|
|
|
|
"dates": dates,
|
|
|
|
"now_btc": now_btc,
|
|
|
|
"now_xmr": now_xmr,
|
|
|
|
"now_eth": now_eth,
|
|
|
|
"data1": data1,
|
|
|
|
"data2": data2,
|
|
|
|
"data3": data3,
|
|
|
|
"data4": data4,
|
|
|
|
"data5": data5,
|
|
|
|
"data6": data6,
|
|
|
|
"data7": data7,
|
|
|
|
}
|
|
|
|
return render(request, "charts/merchants.html", context)
|
2022-09-19 02:38:30 +00:00
|
|
|
|
2022-05-29 14:03:17 +00:00
|
|
|
|
|
|
|
def merchants_increase(request):
|
|
|
|
dates = []
|
|
|
|
data1 = []
|
|
|
|
data2 = []
|
|
|
|
data3 = []
|
|
|
|
data4 = []
|
|
|
|
data5 = []
|
|
|
|
data6 = []
|
|
|
|
data7 = []
|
|
|
|
now_xmr = 0
|
|
|
|
now_btc = 0
|
|
|
|
now_eth = 0
|
|
|
|
|
2024-11-13 09:08:39 +00:00
|
|
|
df = pd.read_excel(DATA_FILE, sheet_name="Sheet4", engine="odf")
|
|
|
|
start_row, end_row = 2, 99
|
|
|
|
start_col, end_col = 0, 8
|
|
|
|
values_mat = df.iloc[start_row:end_row, start_col:end_col].to_numpy()
|
2022-05-29 14:03:17 +00:00
|
|
|
|
2024-11-12 13:09:33 +00:00
|
|
|
for k in range(0, len(values_mat)):
|
2022-05-29 14:03:17 +00:00
|
|
|
if values_mat[k][0] and values_mat[k][2]:
|
|
|
|
date = values_mat[k][0]
|
|
|
|
value1 = values_mat[k][1]
|
|
|
|
value2 = values_mat[k][2]
|
|
|
|
value3 = values_mat[k][3]
|
|
|
|
value4 = values_mat[k][4]
|
|
|
|
value5 = values_mat[k][5]
|
|
|
|
value6 = values_mat[k][6]
|
|
|
|
value7 = values_mat[k][7]
|
2024-11-12 13:09:33 +00:00
|
|
|
if (
|
|
|
|
not (value1)
|
|
|
|
or not (value2)
|
|
|
|
or not (value3)
|
|
|
|
or not (value4)
|
|
|
|
or not (value5)
|
|
|
|
or not (value6)
|
|
|
|
or not (value7)
|
|
|
|
):
|
2022-05-29 14:03:17 +00:00
|
|
|
break
|
|
|
|
else:
|
|
|
|
dates.append(date)
|
|
|
|
data1.append(int(value1))
|
|
|
|
data2.append(int(value2))
|
|
|
|
data3.append(int(value3))
|
|
|
|
data4.append(int(value4))
|
|
|
|
data5.append(int(value5))
|
|
|
|
data6.append(int(value6))
|
|
|
|
data7.append(int(value7))
|
|
|
|
now_btc = int(value1)
|
|
|
|
now_xmr = int(value2)
|
|
|
|
now_eth = int(value3)
|
|
|
|
else:
|
|
|
|
break
|
|
|
|
|
2024-11-12 13:09:33 +00:00
|
|
|
now_btc = locale.format("%.0f", now_btc, grouping=True)
|
|
|
|
now_xmr = locale.format("%.0f", now_xmr, grouping=True)
|
|
|
|
now_eth = locale.format("%.0f", now_eth, grouping=True)
|
|
|
|
|
|
|
|
context = {
|
|
|
|
"dates": dates,
|
|
|
|
"now_btc": now_btc,
|
|
|
|
"now_xmr": now_xmr,
|
|
|
|
"now_eth": now_eth,
|
|
|
|
"data1": data1,
|
|
|
|
"data2": data2,
|
|
|
|
"data3": data3,
|
|
|
|
"data4": data4,
|
|
|
|
"data5": data5,
|
|
|
|
"data6": data6,
|
|
|
|
"data7": data7,
|
|
|
|
}
|
|
|
|
return render(request, "charts/merchants_increase.html", context)
|
2022-09-19 02:38:30 +00:00
|
|
|
|
2022-05-29 14:03:17 +00:00
|
|
|
|
|
|
|
def merchants_percentage(request):
|
|
|
|
dates = []
|
|
|
|
data1 = []
|
|
|
|
data2 = []
|
|
|
|
data3 = []
|
|
|
|
data4 = []
|
|
|
|
data5 = []
|
|
|
|
data6 = []
|
|
|
|
data7 = []
|
|
|
|
now_xmr = 0
|
|
|
|
now_btc = 0
|
|
|
|
now_eth = 0
|
2024-11-12 13:09:33 +00:00
|
|
|
|
2024-11-13 09:08:39 +00:00
|
|
|
df = pd.read_excel(DATA_FILE, sheet_name="Sheet5", engine="odf")
|
|
|
|
start_row, end_row = 2, 99
|
|
|
|
start_col, end_col = 0, 8
|
|
|
|
values_mat = df.iloc[start_row:end_row, start_col:end_col].to_numpy()
|
2024-11-12 13:09:33 +00:00
|
|
|
|
|
|
|
for k in range(0, len(values_mat)):
|
2022-05-29 14:03:17 +00:00
|
|
|
if values_mat[k][0] and values_mat[k][2]:
|
|
|
|
date = values_mat[k][0]
|
|
|
|
value1 = values_mat[k][1]
|
|
|
|
value2 = values_mat[k][2]
|
|
|
|
value3 = values_mat[k][3]
|
|
|
|
value4 = values_mat[k][4]
|
|
|
|
value5 = values_mat[k][5]
|
|
|
|
value6 = values_mat[k][6]
|
|
|
|
value7 = values_mat[k][7]
|
2024-11-12 13:09:33 +00:00
|
|
|
if (
|
|
|
|
not (value1)
|
|
|
|
or not (value2)
|
|
|
|
or not (value3)
|
|
|
|
or not (value4)
|
|
|
|
or not (value5)
|
|
|
|
or not (value6)
|
|
|
|
or not (value7)
|
|
|
|
):
|
2022-05-29 14:03:17 +00:00
|
|
|
break
|
|
|
|
else:
|
|
|
|
dates.append(date)
|
2024-11-12 13:09:33 +00:00
|
|
|
data1.append(float(value1.replace(",", ".")))
|
|
|
|
data2.append(float(value2.replace(",", ".")))
|
|
|
|
data3.append(float(value3.replace(",", ".")))
|
|
|
|
data4.append(float(value4.replace(",", ".")))
|
|
|
|
data5.append(float(value5.replace(",", ".")))
|
|
|
|
data6.append(float(value6.replace(",", ".")))
|
|
|
|
data7.append(float(value7.replace(",", ".")))
|
|
|
|
now_btc = float(value1.replace(",", "."))
|
|
|
|
now_xmr = float(value2.replace(",", "."))
|
|
|
|
now_eth = float(value3.replace(",", "."))
|
2022-05-29 14:03:17 +00:00
|
|
|
else:
|
|
|
|
break
|
|
|
|
|
2024-11-12 13:09:33 +00:00
|
|
|
now_btc = locale.format("%.1f", now_btc, grouping=True)
|
|
|
|
now_xmr = locale.format("%.1f", now_xmr, grouping=True)
|
|
|
|
now_eth = locale.format("%.1f", now_eth, grouping=True)
|
|
|
|
|
|
|
|
context = {
|
|
|
|
"dates": dates,
|
|
|
|
"now_btc": now_btc,
|
|
|
|
"now_xmr": now_xmr,
|
|
|
|
"now_eth": now_eth,
|
|
|
|
"data1": data1,
|
|
|
|
"data2": data2,
|
|
|
|
"data3": data3,
|
|
|
|
"data4": data4,
|
|
|
|
"data5": data5,
|
|
|
|
"data6": data6,
|
|
|
|
"data7": data7,
|
|
|
|
}
|
|
|
|
return render(request, "charts/merchants_percentage.html", context)
|
2022-09-19 02:38:30 +00:00
|
|
|
|
2022-05-29 14:03:17 +00:00
|
|
|
|
|
|
|
def dominance(request):
|
2024-11-12 13:09:33 +00:00
|
|
|
symbol = "xmr"
|
2022-05-29 14:03:17 +00:00
|
|
|
values = []
|
|
|
|
pricexmr = []
|
|
|
|
dates = []
|
|
|
|
now_value = 0
|
|
|
|
maximum = 0
|
|
|
|
|
2024-11-12 13:09:33 +00:00
|
|
|
coins = Coin.objects.order_by("date").filter(name=symbol)
|
2022-05-29 14:03:17 +00:00
|
|
|
for coin in coins:
|
|
|
|
try:
|
|
|
|
dominance = Dominance.objects.get(date=coin.date)
|
|
|
|
if dominance.dominance > 0:
|
|
|
|
values.append(dominance.dominance)
|
|
|
|
now_value = dominance.dominance
|
|
|
|
if now_value > maximum:
|
2024-11-12 13:09:33 +00:00
|
|
|
maximum = now_value
|
2022-05-29 14:03:17 +00:00
|
|
|
else:
|
2024-11-12 13:09:33 +00:00
|
|
|
values.append("")
|
|
|
|
except Dominance.DoesNotExist:
|
|
|
|
values.append("")
|
2022-05-29 14:03:17 +00:00
|
|
|
|
|
|
|
if coin.priceusd > 0.001:
|
|
|
|
pricexmr.append(coin.priceusd)
|
|
|
|
else:
|
2024-11-12 13:09:33 +00:00
|
|
|
pricexmr.append("")
|
2022-05-29 14:03:17 +00:00
|
|
|
|
2024-11-12 13:09:33 +00:00
|
|
|
coin.date = datetime.datetime.strftime(coin.date, "%Y-%m-%d")
|
2022-05-29 14:03:17 +00:00
|
|
|
dates.append(coin.date)
|
|
|
|
|
2022-06-02 17:47:45 +00:00
|
|
|
yesterday = date.today() - timedelta(1)
|
2024-11-12 13:09:33 +00:00
|
|
|
yesterday = datetime.datetime.strftime(yesterday, "%Y-%m-%d")
|
2022-06-02 17:47:45 +00:00
|
|
|
if coin.date == yesterday:
|
|
|
|
today = date.today()
|
2024-11-12 13:09:33 +00:00
|
|
|
today = datetime.datetime.strftime(today, "%Y-%m-%d")
|
2022-06-02 17:47:45 +00:00
|
|
|
try:
|
2024-11-12 13:09:33 +00:00
|
|
|
dominance = list(Dominance.objects.order_by("-date"))[0]
|
2022-06-02 17:47:45 +00:00
|
|
|
if str(dominance.date) == str(today):
|
2024-11-12 13:09:33 +00:00
|
|
|
now_value = dominance.dominance
|
2022-06-02 17:47:45 +00:00
|
|
|
dates.append(today)
|
|
|
|
values.append(now_value)
|
|
|
|
if now_value > maximum:
|
2024-11-12 13:09:33 +00:00
|
|
|
maximum = now_value
|
|
|
|
except IndexError:
|
2022-06-02 17:47:45 +00:00
|
|
|
pass
|
|
|
|
|
2024-11-12 13:09:33 +00:00
|
|
|
now_value = locale.format("%.2f", now_value, grouping=True)
|
|
|
|
maximum = locale.format("%.2f", maximum, grouping=True)
|
|
|
|
|
|
|
|
context = {
|
|
|
|
"values": values,
|
|
|
|
"dates": dates,
|
|
|
|
"maximum": maximum,
|
|
|
|
"now_value": now_value,
|
|
|
|
"pricexmr": pricexmr,
|
|
|
|
}
|
|
|
|
return render(request, "charts/dominance.html", context)
|
2022-09-19 02:38:30 +00:00
|
|
|
|
2022-05-29 14:03:17 +00:00
|
|
|
|
|
|
|
def rank(request):
|
2024-11-12 13:09:33 +00:00
|
|
|
symbol = "xmr"
|
2022-05-29 14:03:17 +00:00
|
|
|
values = []
|
|
|
|
pricexmr = []
|
|
|
|
dates = []
|
|
|
|
now_value = 25
|
|
|
|
maximum = 100
|
|
|
|
|
2024-11-12 13:09:33 +00:00
|
|
|
coins = Coin.objects.order_by("date").filter(name=symbol)
|
2022-05-29 14:03:17 +00:00
|
|
|
for coin in coins:
|
|
|
|
try:
|
|
|
|
rank = Rank.objects.get(date=coin.date)
|
|
|
|
if rank.rank > 0:
|
|
|
|
values.append(rank.rank)
|
|
|
|
now_value = rank.rank
|
|
|
|
if now_value < maximum:
|
2024-11-12 13:09:33 +00:00
|
|
|
maximum = now_value
|
2022-05-29 14:03:17 +00:00
|
|
|
else:
|
|
|
|
values.append(now_value)
|
2024-11-12 13:09:33 +00:00
|
|
|
except Rank.DoesNotExist:
|
2022-05-29 14:03:17 +00:00
|
|
|
values.append(now_value)
|
|
|
|
|
|
|
|
if coin.priceusd > 0.001:
|
|
|
|
pricexmr.append(coin.priceusd)
|
|
|
|
else:
|
2024-11-12 13:09:33 +00:00
|
|
|
pricexmr.append("")
|
2022-05-29 14:03:17 +00:00
|
|
|
|
2024-11-12 13:09:33 +00:00
|
|
|
coin.date = datetime.datetime.strftime(coin.date, "%Y-%m-%d")
|
2022-05-29 14:03:17 +00:00
|
|
|
dates.append(coin.date)
|
|
|
|
|
2022-06-02 17:47:45 +00:00
|
|
|
yesterday = date.today() - timedelta(1)
|
2024-11-12 13:09:33 +00:00
|
|
|
yesterday = datetime.datetime.strftime(yesterday, "%Y-%m-%d")
|
2022-06-02 17:47:45 +00:00
|
|
|
if coin.date == yesterday:
|
|
|
|
today = date.today()
|
2024-11-12 13:09:33 +00:00
|
|
|
today = datetime.datetime.strftime(today, "%Y-%m-%d")
|
2022-06-02 17:47:45 +00:00
|
|
|
try:
|
2024-11-12 13:09:33 +00:00
|
|
|
rank = list(Rank.objects.order_by("-date"))[0]
|
2022-06-02 17:47:45 +00:00
|
|
|
if str(rank.date) == str(today):
|
2024-11-12 13:09:33 +00:00
|
|
|
now_value = rank.rank
|
2022-06-02 17:47:45 +00:00
|
|
|
dates.append(today)
|
|
|
|
values.append(now_value)
|
|
|
|
if now_value < maximum:
|
2024-11-12 13:09:33 +00:00
|
|
|
maximum = now_value
|
|
|
|
except IndexError:
|
2022-06-02 17:47:45 +00:00
|
|
|
pass
|
|
|
|
|
2022-05-29 14:03:17 +00:00
|
|
|
if now_value == 1:
|
2024-11-12 13:09:33 +00:00
|
|
|
now_value = locale.format("%.0f", now_value, grouping=True) + "st"
|
2022-05-29 14:03:17 +00:00
|
|
|
if now_value == 2:
|
2024-11-12 13:09:33 +00:00
|
|
|
now_value = locale.format("%.0f", now_value, grouping=True) + "nd"
|
2022-05-29 14:03:17 +00:00
|
|
|
if now_value == 3:
|
2024-11-12 13:09:33 +00:00
|
|
|
now_value = locale.format("%.0f", now_value, grouping=True) + "rd"
|
2022-05-29 14:03:17 +00:00
|
|
|
if now_value > 3:
|
2024-11-12 13:09:33 +00:00
|
|
|
now_value = locale.format("%.0f", now_value, grouping=True) + "th"
|
2022-05-29 14:03:17 +00:00
|
|
|
if maximum == 1:
|
2024-11-12 13:09:33 +00:00
|
|
|
maximum = locale.format("%.0f", maximum, grouping=True) + "st"
|
2022-05-29 14:03:17 +00:00
|
|
|
if maximum == 2:
|
2024-11-12 13:09:33 +00:00
|
|
|
maximum = locale.format("%.0f", maximum, grouping=True) + "nd"
|
2022-05-29 14:03:17 +00:00
|
|
|
if maximum == 3:
|
2024-11-12 13:09:33 +00:00
|
|
|
maximum = locale.format("%.0f", maximum, grouping=True) + "rd"
|
2022-05-29 14:03:17 +00:00
|
|
|
if maximum > 3:
|
2024-11-12 13:09:33 +00:00
|
|
|
maximum = locale.format("%.0f", maximum, grouping=True) + "th"
|
|
|
|
|
|
|
|
context = {
|
|
|
|
"values": values,
|
|
|
|
"dates": dates,
|
|
|
|
"maximum": maximum,
|
|
|
|
"now_value": now_value,
|
|
|
|
"pricexmr": pricexmr,
|
|
|
|
}
|
|
|
|
return render(request, "charts/rank.html", context)
|
2022-09-19 02:38:30 +00:00
|
|
|
|
2022-06-05 18:36:57 +00:00
|
|
|
|
2024-11-12 13:09:33 +00:00
|
|
|
def p2pool_hashrate(request):
|
2022-08-09 19:03:45 +00:00
|
|
|
hashrate = []
|
2022-08-14 03:27:05 +00:00
|
|
|
hashrate_mini = []
|
|
|
|
combined = []
|
2022-08-09 19:03:45 +00:00
|
|
|
dates = []
|
|
|
|
now_hashrate = 0
|
2022-08-14 03:27:05 +00:00
|
|
|
now_hashrate_mini = 0
|
|
|
|
now_combined = 0
|
2022-08-09 19:03:45 +00:00
|
|
|
|
2024-11-12 13:09:33 +00:00
|
|
|
p2pool_stats = P2Pool.objects.order_by("date").filter(mini=False)
|
2022-08-09 19:03:45 +00:00
|
|
|
for p2pool_stat in p2pool_stats:
|
2022-08-14 03:27:05 +00:00
|
|
|
now_combined = 0
|
2022-08-09 19:03:45 +00:00
|
|
|
if p2pool_stat.hashrate and p2pool_stat.percentage > 0:
|
2024-11-12 13:09:33 +00:00
|
|
|
now_hashrate = p2pool_stat.hashrate / 1000000
|
|
|
|
now_combined = p2pool_stat.hashrate / 1000000
|
2022-08-14 03:27:05 +00:00
|
|
|
hashrate.append(now_hashrate)
|
2024-11-12 13:09:33 +00:00
|
|
|
|
2022-08-14 03:27:05 +00:00
|
|
|
try:
|
2024-11-12 13:09:33 +00:00
|
|
|
p2pool_stat_mini = P2Pool.objects.filter(mini=True).get(
|
|
|
|
date=p2pool_stat.date
|
|
|
|
)
|
2022-08-14 03:27:05 +00:00
|
|
|
if p2pool_stat_mini.hashrate and p2pool_stat_mini.percentage > 0:
|
2024-11-12 13:09:33 +00:00
|
|
|
now_hashrate_mini = p2pool_stat_mini.hashrate / 1000000
|
|
|
|
now_combined += p2pool_stat_mini.hashrate / 1000000
|
|
|
|
except P2Pool.DoesNotExist:
|
2022-08-14 03:27:05 +00:00
|
|
|
pass
|
2024-11-12 13:09:33 +00:00
|
|
|
hashrate_mini.append(now_hashrate_mini)
|
|
|
|
combined.append(now_combined)
|
|
|
|
|
|
|
|
dates.append(datetime.datetime.strftime(p2pool_stat.date, "%Y-%m-%d"))
|
2022-08-09 19:03:45 +00:00
|
|
|
|
2024-11-12 13:09:33 +00:00
|
|
|
context = {
|
|
|
|
"hashrate": hashrate,
|
|
|
|
"dates": dates,
|
|
|
|
"hashrate_mini": hashrate_mini,
|
|
|
|
"combined": combined,
|
|
|
|
}
|
|
|
|
return render(request, "charts/p2pool_hashrate.html", context)
|
2022-08-09 19:03:45 +00:00
|
|
|
|
|
|
|
|
2022-08-14 03:27:05 +00:00
|
|
|
def p2pool_dominance(request):
|
|
|
|
dominance = []
|
|
|
|
dominance_mini = []
|
|
|
|
dates = []
|
|
|
|
combined = []
|
|
|
|
now_dominance = 0
|
|
|
|
now_dominance_mini = 0
|
|
|
|
|
2024-11-12 13:09:33 +00:00
|
|
|
p2pool_stats = P2Pool.objects.order_by("date").filter(mini=False)
|
2022-08-14 03:27:05 +00:00
|
|
|
for p2pool_stat in p2pool_stats:
|
|
|
|
now_combined = 0
|
|
|
|
if p2pool_stat.hashrate and p2pool_stat.percentage > 0:
|
2024-11-12 13:09:33 +00:00
|
|
|
now_dominance = p2pool_stat.percentage
|
|
|
|
now_combined += p2pool_stat.percentage
|
2022-08-14 03:27:05 +00:00
|
|
|
dominance.append(now_dominance)
|
2024-11-12 13:09:33 +00:00
|
|
|
|
2022-08-14 03:27:05 +00:00
|
|
|
try:
|
2024-11-12 13:09:33 +00:00
|
|
|
p2pool_stat_mini = P2Pool.objects.filter(mini=True).get(
|
|
|
|
date=p2pool_stat.date
|
|
|
|
)
|
|
|
|
if p2pool_stat_mini.hashrate and p2pool_stat_mini.percentage > 0:
|
|
|
|
now_dominance_mini = p2pool_stat_mini.percentage
|
|
|
|
now_combined += p2pool_stat_mini.percentage
|
|
|
|
except P2Pool.DoesNotExist:
|
2022-08-14 03:27:05 +00:00
|
|
|
pass
|
2024-11-12 13:09:33 +00:00
|
|
|
dominance_mini.append(now_dominance_mini)
|
|
|
|
combined.append(now_combined)
|
2022-08-14 03:27:05 +00:00
|
|
|
|
2024-11-12 13:09:33 +00:00
|
|
|
dates.append(datetime.datetime.strftime(p2pool_stat.date, "%Y-%m-%d"))
|
|
|
|
|
|
|
|
context = {
|
|
|
|
"dominance": dominance,
|
|
|
|
"dates": dates,
|
|
|
|
"dominance_mini": dominance_mini,
|
|
|
|
"combined": combined,
|
|
|
|
}
|
|
|
|
return render(request, "charts/p2pool_dominance.html", context)
|
2022-08-14 03:27:05 +00:00
|
|
|
|
|
|
|
|
2022-08-09 19:03:45 +00:00
|
|
|
def p2pool_totalblocks(request):
|
|
|
|
dates = []
|
2022-08-14 19:31:07 +00:00
|
|
|
totalblocks = []
|
|
|
|
totalblocks_mini = []
|
|
|
|
combined = []
|
2022-08-09 19:03:45 +00:00
|
|
|
now_totalblocks = 0
|
2022-08-14 19:31:07 +00:00
|
|
|
now_totalblocks_mini = 0
|
|
|
|
now_combined = 0
|
2022-08-09 19:03:45 +00:00
|
|
|
|
2024-11-12 13:09:33 +00:00
|
|
|
p2pool_stats = P2Pool.objects.order_by("date").filter(mini=False)
|
2022-08-11 13:27:28 +00:00
|
|
|
for p2pool_stat in p2pool_stats:
|
2022-08-14 19:31:07 +00:00
|
|
|
now_combined = 0
|
|
|
|
if p2pool_stat.totalblocksfound > now_totalblocks:
|
2024-11-12 13:09:33 +00:00
|
|
|
now_totalblocks = p2pool_stat.totalblocksfound
|
|
|
|
now_combined += p2pool_stat.totalblocksfound
|
2022-08-14 19:31:07 +00:00
|
|
|
totalblocks.append(now_totalblocks)
|
|
|
|
|
2024-11-12 13:09:33 +00:00
|
|
|
p2pool_stats_mini = P2Pool.objects.filter(mini=True).filter(
|
|
|
|
date=p2pool_stat.date
|
|
|
|
)
|
2022-08-16 03:22:07 +00:00
|
|
|
for p2pool_stat_mini in p2pool_stats_mini:
|
2024-11-12 13:09:33 +00:00
|
|
|
if p2pool_stat_mini.totalblocksfound >= now_totalblocks_mini:
|
|
|
|
now_totalblocks_mini = p2pool_stat_mini.totalblocksfound
|
|
|
|
now_combined += p2pool_stat_mini.totalblocksfound
|
2022-08-16 03:22:07 +00:00
|
|
|
break
|
|
|
|
|
2024-11-12 13:09:33 +00:00
|
|
|
totalblocks_mini.append(now_totalblocks_mini)
|
|
|
|
combined.append(now_combined)
|
|
|
|
|
|
|
|
dates.append(datetime.datetime.strftime(p2pool_stat.date, "%Y-%m-%d"))
|
2022-08-09 19:03:45 +00:00
|
|
|
|
2024-11-12 13:09:33 +00:00
|
|
|
context = {
|
|
|
|
"totalblocks": totalblocks,
|
|
|
|
"totalblocks_mini": totalblocks_mini,
|
|
|
|
"dates": dates,
|
|
|
|
"combined": combined,
|
|
|
|
}
|
|
|
|
return render(request, "charts/p2pool_totalblocks.html", context)
|
2022-08-09 19:03:45 +00:00
|
|
|
|
|
|
|
|
2022-08-14 19:31:07 +00:00
|
|
|
def p2pool_totalhashes(request):
|
|
|
|
dates = []
|
|
|
|
totalblocks = []
|
|
|
|
totalblocks_mini = []
|
|
|
|
combined = []
|
|
|
|
now_totalblocks = 0
|
|
|
|
now_totalblocks_mini = 0
|
|
|
|
now_combined = 0
|
|
|
|
|
2024-11-12 13:09:33 +00:00
|
|
|
p2pool_stats = P2Pool.objects.order_by("date").filter(mini=False)
|
2022-08-14 19:31:07 +00:00
|
|
|
for p2pool_stat in p2pool_stats:
|
|
|
|
now_combined = 0
|
|
|
|
if p2pool_stat.totalhashes > now_totalblocks:
|
2024-11-12 13:09:33 +00:00
|
|
|
now_totalblocks = p2pool_stat.totalhashes / 1000000000000
|
|
|
|
now_combined += p2pool_stat.totalhashes / 1000000000000
|
2022-08-14 19:31:07 +00:00
|
|
|
totalblocks.append(now_totalblocks)
|
|
|
|
|
|
|
|
try:
|
2024-11-12 13:09:33 +00:00
|
|
|
p2pool_stat_mini = P2Pool.objects.filter(mini=True).get(
|
|
|
|
date=p2pool_stat.date
|
|
|
|
)
|
|
|
|
if p2pool_stat_mini.totalhashes >= now_totalblocks_mini:
|
|
|
|
now_totalblocks_mini = p2pool_stat_mini.totalhashes / 1000000000000
|
|
|
|
now_combined += p2pool_stat_mini.totalhashes / 1000000000000
|
|
|
|
except P2Pool.DoesNotExist:
|
2022-08-14 19:31:07 +00:00
|
|
|
pass
|
2024-11-12 13:09:33 +00:00
|
|
|
totalblocks_mini.append(now_totalblocks_mini)
|
|
|
|
combined.append(now_combined)
|
|
|
|
|
|
|
|
dates.append(datetime.datetime.strftime(p2pool_stat.date, "%Y-%m-%d"))
|
2022-08-14 19:31:07 +00:00
|
|
|
|
2024-11-12 13:09:33 +00:00
|
|
|
context = {
|
|
|
|
"totalblocks": totalblocks,
|
|
|
|
"totalblocks_mini": totalblocks_mini,
|
|
|
|
"dates": dates,
|
|
|
|
"combined": combined,
|
|
|
|
}
|
|
|
|
return render(request, "charts/p2pool_totalhashes.html", context)
|
2022-08-14 19:31:07 +00:00
|
|
|
|
|
|
|
|
2022-08-09 19:03:45 +00:00
|
|
|
def p2pool_miners(request):
|
|
|
|
miners = []
|
2022-08-14 03:27:05 +00:00
|
|
|
miners_mini = []
|
2022-08-09 19:03:45 +00:00
|
|
|
dates = []
|
2022-08-14 03:27:05 +00:00
|
|
|
combined = []
|
2022-08-09 19:03:45 +00:00
|
|
|
now_miners = 0
|
2022-08-14 03:27:05 +00:00
|
|
|
now_miners_mini = 0
|
|
|
|
|
2024-11-12 13:09:33 +00:00
|
|
|
p2pool_stats = P2Pool.objects.order_by("date").filter(mini=False)
|
2022-08-11 13:27:28 +00:00
|
|
|
for p2pool_stat in p2pool_stats:
|
2022-08-14 03:27:05 +00:00
|
|
|
now_combined = 0
|
|
|
|
if p2pool_stat.miners > 0:
|
2024-11-12 13:09:33 +00:00
|
|
|
now_miners = p2pool_stat.miners
|
|
|
|
now_combined += p2pool_stat.miners
|
2022-08-14 03:27:05 +00:00
|
|
|
miners.append(now_miners)
|
2024-11-12 13:09:33 +00:00
|
|
|
|
2022-08-14 03:27:05 +00:00
|
|
|
try:
|
2024-11-12 13:09:33 +00:00
|
|
|
p2pool_stat_mini = P2Pool.objects.filter(mini=True).get(
|
|
|
|
date=p2pool_stat.date
|
|
|
|
)
|
|
|
|
if p2pool_stat_mini.miners > 0:
|
|
|
|
now_miners_mini = p2pool_stat_mini.miners
|
|
|
|
now_combined += p2pool_stat_mini.miners
|
|
|
|
except P2Pool.DoesNotExist:
|
2022-08-14 03:27:05 +00:00
|
|
|
pass
|
2024-11-12 13:09:33 +00:00
|
|
|
miners_mini.append(now_miners_mini)
|
|
|
|
combined.append(now_combined)
|
|
|
|
|
|
|
|
dates.append(datetime.datetime.strftime(p2pool_stat.date, "%Y-%m-%d"))
|
2022-08-09 19:03:45 +00:00
|
|
|
|
2024-11-12 13:09:33 +00:00
|
|
|
context = {
|
|
|
|
"miners": miners,
|
|
|
|
"dates": dates,
|
|
|
|
"miners_mini": miners_mini,
|
|
|
|
"combined": combined,
|
|
|
|
}
|
|
|
|
return render(request, "charts/p2pool_miners.html", context)
|
2022-08-09 19:03:45 +00:00
|
|
|
|
|
|
|
|
2024-11-12 13:09:33 +00:00
|
|
|
def miningprofitability(request):
|
2022-08-14 19:31:07 +00:00
|
|
|
dates = []
|
|
|
|
value = []
|
|
|
|
now_value = 0
|
|
|
|
|
2024-11-12 13:09:33 +00:00
|
|
|
coins = Coin.objects.order_by("date").filter(name="xmr")
|
2022-08-14 19:31:07 +00:00
|
|
|
for coin in coins:
|
|
|
|
if coin.hashrate > 0 and coin.priceusd > 0 and coin.revenue > 0:
|
2024-11-12 13:09:33 +00:00
|
|
|
if 1000 * coin.priceusd * coin.revenue / coin.hashrate < 5000:
|
|
|
|
now_value = 1000 * coin.priceusd * coin.revenue / coin.hashrate
|
|
|
|
dates.append(datetime.datetime.strftime(coin.date, "%Y-%m-%d"))
|
2022-08-14 19:31:07 +00:00
|
|
|
value.append(now_value)
|
|
|
|
|
2024-11-12 13:09:33 +00:00
|
|
|
context = {"value": value, "dates": dates}
|
|
|
|
return render(request, "charts/miningprofitability.html", context)
|
|
|
|
|
2022-08-14 19:31:07 +00:00
|
|
|
|
2022-06-05 18:36:57 +00:00
|
|
|
def tail_emission(request):
|
|
|
|
inflationxmr = []
|
|
|
|
finflationxmr = []
|
|
|
|
dates = []
|
|
|
|
now_xmr = 999999
|
2024-11-12 13:09:33 +00:00
|
|
|
|
|
|
|
coins = Coin.objects.order_by("date").filter(name="xmr")
|
2022-06-05 18:36:57 +00:00
|
|
|
for coin in coins:
|
|
|
|
now_xmr = float(coin.inflation)
|
|
|
|
|
2024-11-12 13:09:33 +00:00
|
|
|
supply = int(coin.supply) * 10**12
|
2022-06-05 18:36:57 +00:00
|
|
|
for i in range(210000):
|
|
|
|
supply = int(supply)
|
2024-11-12 13:09:33 +00:00
|
|
|
reward = (2**64 - 1 - supply) >> 19
|
|
|
|
if reward < 0.6 * (10**12):
|
|
|
|
reward = 0.6 * (10**12)
|
|
|
|
supply += int(720 * reward)
|
|
|
|
finflationxmr.append(100 * reward * 720 * 365 / supply)
|
2022-06-05 18:36:57 +00:00
|
|
|
date_aux = coin.date + timedelta(i)
|
2024-11-12 13:09:33 +00:00
|
|
|
dates.append(datetime.datetime.strftime(date_aux, "%Y-%m-%d"))
|
|
|
|
|
|
|
|
now_xmr = locale.format("%.2f", now_xmr, grouping=True) + "%"
|
|
|
|
|
|
|
|
context = {
|
|
|
|
"inflationxmr": inflationxmr,
|
|
|
|
"finflationxmr": finflationxmr,
|
|
|
|
"now_xmr": now_xmr,
|
|
|
|
"dates": dates,
|
|
|
|
}
|
|
|
|
return render(request, "charts/tail_emission.html", context)
|
2022-09-19 02:38:30 +00:00
|
|
|
|
2022-06-05 18:36:57 +00:00
|
|
|
|
2022-06-12 14:56:20 +00:00
|
|
|
def privacymarketcap(request):
|
2024-11-12 13:09:33 +00:00
|
|
|
data = DailyData.objects.order_by("date")
|
2022-06-12 14:56:20 +00:00
|
|
|
|
|
|
|
dates = []
|
|
|
|
marketcaps = []
|
|
|
|
xmr_marketcaps = []
|
|
|
|
now_marketcap = 0
|
|
|
|
now_dominance = 0
|
|
|
|
top_marketcap = 0
|
|
|
|
top_dominance = 0
|
2024-11-12 13:09:33 +00:00
|
|
|
|
2022-06-12 14:56:20 +00:00
|
|
|
for item in data:
|
|
|
|
marketcap = 0
|
|
|
|
dominance = 0
|
2024-11-12 13:09:33 +00:00
|
|
|
dates.append(datetime.datetime.strftime(item.date, "%Y-%m-%d"))
|
2022-06-12 14:56:20 +00:00
|
|
|
if item.zcash_marketcap > 1000000:
|
|
|
|
marketcap += item.zcash_marketcap
|
|
|
|
|
|
|
|
if item.dash_marketcap > 1000000:
|
|
|
|
marketcap += item.dash_marketcap
|
|
|
|
|
|
|
|
if item.grin_marketcap > 1000000:
|
|
|
|
marketcap += item.grin_marketcap
|
|
|
|
|
|
|
|
if item.xmr_marketcap > 1000000:
|
|
|
|
marketcap += item.xmr_marketcap
|
|
|
|
try:
|
|
|
|
xmr_dominance = Dominance.objects.get(date=item.date)
|
2024-11-12 13:09:33 +00:00
|
|
|
dominance = marketcap * xmr_dominance.dominance / item.xmr_marketcap
|
|
|
|
except Dominance.DoesNotExist:
|
2022-06-14 19:15:10 +00:00
|
|
|
dominance = now_dominance
|
2022-06-12 14:56:20 +00:00
|
|
|
|
|
|
|
xmr_marketcaps.append(item.xmr_marketcap)
|
|
|
|
else:
|
2024-11-12 13:09:33 +00:00
|
|
|
xmr_marketcaps.append("")
|
2022-06-12 14:56:20 +00:00
|
|
|
|
|
|
|
now_marketcap = marketcap
|
|
|
|
now_dominance = dominance
|
|
|
|
|
|
|
|
if now_marketcap > top_marketcap:
|
|
|
|
top_marketcap = now_marketcap
|
|
|
|
if now_dominance > top_dominance:
|
|
|
|
top_dominance = now_dominance
|
|
|
|
|
|
|
|
if marketcap > 3000000:
|
|
|
|
marketcaps.append(marketcap)
|
|
|
|
else:
|
2024-11-12 13:09:33 +00:00
|
|
|
marketcaps.append("")
|
2022-06-12 14:56:20 +00:00
|
|
|
|
2024-11-12 13:09:33 +00:00
|
|
|
now_marketcap = "$" + locale.format("%.0f", now_marketcap, grouping=True)
|
|
|
|
now_dominance = locale.format("%.2f", now_dominance, grouping=True) + "%"
|
|
|
|
top_marketcap = "$" + locale.format("%.0f", top_marketcap, grouping=True)
|
|
|
|
top_dominance = locale.format("%.2f", top_dominance, grouping=True) + "%"
|
|
|
|
|
|
|
|
context = {
|
|
|
|
"marketcaps": marketcaps,
|
|
|
|
"now_marketcap": now_marketcap,
|
|
|
|
"now_dominance": now_dominance,
|
|
|
|
"top_marketcap": top_marketcap,
|
|
|
|
"top_dominance": top_dominance,
|
|
|
|
"dates": dates,
|
|
|
|
"xmr_marketcaps": xmr_marketcaps,
|
|
|
|
}
|
|
|
|
return render(request, "charts/privacymarketcap.html", context)
|
2022-09-19 02:38:30 +00:00
|
|
|
|
2022-06-12 14:56:20 +00:00
|
|
|
|
|
|
|
def privacydominance(request):
|
2024-11-12 13:09:33 +00:00
|
|
|
data = DailyData.objects.order_by("date")
|
2022-06-12 14:56:20 +00:00
|
|
|
dates = []
|
|
|
|
marketcaps = []
|
|
|
|
dominances = []
|
|
|
|
now_marketcap = 0
|
|
|
|
now_dominance = 0
|
|
|
|
top_marketcap = 0
|
|
|
|
top_dominance = 0
|
2024-11-12 13:09:33 +00:00
|
|
|
|
2022-06-12 14:56:20 +00:00
|
|
|
for item in data:
|
|
|
|
marketcap = 0
|
|
|
|
dominance = 0
|
2024-11-12 13:09:33 +00:00
|
|
|
dates.append(datetime.datetime.strftime(item.date, "%Y-%m-%d"))
|
2022-06-14 19:15:10 +00:00
|
|
|
if item.zcash_marketcap > 100000:
|
2022-06-12 14:56:20 +00:00
|
|
|
marketcap += item.zcash_marketcap
|
|
|
|
|
2022-06-14 19:15:10 +00:00
|
|
|
if item.dash_marketcap > 100000:
|
2022-06-12 14:56:20 +00:00
|
|
|
marketcap += item.dash_marketcap
|
|
|
|
|
2022-06-14 19:15:10 +00:00
|
|
|
if item.grin_marketcap > 100000:
|
2022-06-12 14:56:20 +00:00
|
|
|
marketcap += item.grin_marketcap
|
|
|
|
|
2022-06-14 19:15:10 +00:00
|
|
|
if item.xmr_marketcap > 100000:
|
2022-06-12 14:56:20 +00:00
|
|
|
marketcap += item.xmr_marketcap
|
|
|
|
try:
|
|
|
|
xmr_dominance = Dominance.objects.get(date=item.date)
|
2024-11-12 13:09:33 +00:00
|
|
|
dominance = marketcap * xmr_dominance.dominance / item.xmr_marketcap
|
|
|
|
except (Dominance.DoesNotExist, ZeroDivisionError):
|
2022-06-14 19:15:10 +00:00
|
|
|
dominance = now_dominance
|
2022-06-12 14:56:20 +00:00
|
|
|
|
|
|
|
now_marketcap = marketcap
|
|
|
|
now_dominance = dominance
|
|
|
|
|
|
|
|
if now_marketcap > top_marketcap:
|
|
|
|
top_marketcap = now_marketcap
|
|
|
|
if now_dominance > top_dominance:
|
|
|
|
top_dominance = now_dominance
|
|
|
|
|
2022-06-14 19:15:10 +00:00
|
|
|
if marketcap > 300000:
|
2022-06-12 14:56:20 +00:00
|
|
|
marketcaps.append(marketcap)
|
|
|
|
else:
|
2024-11-12 13:09:33 +00:00
|
|
|
marketcaps.append("")
|
2022-06-12 14:56:20 +00:00
|
|
|
|
|
|
|
if dominance > 0:
|
|
|
|
dominances.append(dominance)
|
|
|
|
else:
|
2024-11-12 13:09:33 +00:00
|
|
|
dominances.append("")
|
|
|
|
|
|
|
|
now_marketcap = "$" + locale.format("%.0f", now_marketcap, grouping=True)
|
|
|
|
now_dominance = locale.format("%.2f", now_dominance, grouping=True) + "%"
|
|
|
|
top_marketcap = "$" + locale.format("%.0f", top_marketcap, grouping=True)
|
|
|
|
top_dominance = locale.format("%.2f", top_dominance, grouping=True) + "%"
|
2022-06-12 14:56:20 +00:00
|
|
|
|
2024-11-12 13:09:33 +00:00
|
|
|
context = {
|
|
|
|
"marketcaps": marketcaps,
|
|
|
|
"dominances": dominances,
|
|
|
|
"now_marketcap": now_marketcap,
|
|
|
|
"now_dominance": now_dominance,
|
|
|
|
"top_marketcap": top_marketcap,
|
|
|
|
"top_dominance": top_dominance,
|
|
|
|
"dates": dates,
|
|
|
|
}
|
|
|
|
return render(request, "charts/privacydominance.html", context)
|
2022-09-19 02:38:30 +00:00
|
|
|
|
2022-06-12 14:56:20 +00:00
|
|
|
|
|
|
|
def monerodominance(request):
|
2024-11-12 13:09:33 +00:00
|
|
|
data = DailyData.objects.order_by("date")
|
2022-06-12 14:56:20 +00:00
|
|
|
dates = []
|
|
|
|
marketcaps = []
|
|
|
|
xmr_dominance = []
|
|
|
|
now_marketcap = 0
|
|
|
|
now_dominance = 0
|
|
|
|
top_marketcap = 0
|
|
|
|
top_dominance = 0
|
2022-09-30 11:38:49 +00:00
|
|
|
zec_cap = 0
|
|
|
|
dash_cap = 0
|
|
|
|
grin_cap = 0
|
2024-11-12 13:09:33 +00:00
|
|
|
|
2022-06-12 14:56:20 +00:00
|
|
|
for item in data:
|
|
|
|
marketcap = 0
|
|
|
|
dominance = 0
|
2024-11-12 13:09:33 +00:00
|
|
|
dates.append(datetime.datetime.strftime(item.date, "%Y-%m-%d"))
|
2022-06-12 14:56:20 +00:00
|
|
|
if item.zcash_marketcap > 1000000:
|
2022-09-30 11:38:49 +00:00
|
|
|
zec_cap = item.zcash_marketcap
|
|
|
|
marketcap += zec_cap
|
|
|
|
else:
|
|
|
|
marketcap += zec_cap
|
2022-06-12 14:56:20 +00:00
|
|
|
|
|
|
|
if item.dash_marketcap > 1000000:
|
2022-09-30 11:38:49 +00:00
|
|
|
dash_cap = item.dash_marketcap
|
|
|
|
marketcap += dash_cap
|
|
|
|
else:
|
|
|
|
marketcap += dash_cap
|
2022-06-12 14:56:20 +00:00
|
|
|
|
|
|
|
if item.grin_marketcap > 1000000:
|
2022-09-30 11:38:49 +00:00
|
|
|
grin_cap = item.grin_marketcap
|
|
|
|
marketcap += grin_cap
|
|
|
|
else:
|
|
|
|
marketcap += grin_cap
|
2022-06-12 14:56:20 +00:00
|
|
|
|
|
|
|
if item.xmr_marketcap > 1000000:
|
|
|
|
marketcap += item.xmr_marketcap
|
2024-11-12 13:09:33 +00:00
|
|
|
dominance = 100 * item.xmr_marketcap / marketcap
|
2022-06-12 14:56:20 +00:00
|
|
|
|
|
|
|
now_marketcap = marketcap
|
|
|
|
now_dominance = dominance
|
|
|
|
|
|
|
|
if now_marketcap > top_marketcap:
|
|
|
|
top_marketcap = now_marketcap
|
|
|
|
if now_dominance > top_dominance:
|
|
|
|
top_dominance = now_dominance
|
|
|
|
|
|
|
|
if marketcap > 3000000:
|
|
|
|
marketcaps.append(marketcap)
|
|
|
|
else:
|
2024-11-12 13:09:33 +00:00
|
|
|
marketcaps.append("")
|
2022-06-12 14:56:20 +00:00
|
|
|
|
|
|
|
if dominance > 0:
|
|
|
|
xmr_dominance.append(dominance)
|
|
|
|
else:
|
2024-11-12 13:09:33 +00:00
|
|
|
xmr_dominance.append("")
|
|
|
|
|
|
|
|
now_marketcap = "$" + locale.format("%.0f", now_marketcap, grouping=True)
|
|
|
|
now_dominance = locale.format("%.2f", now_dominance, grouping=True) + "%"
|
|
|
|
top_marketcap = "$" + locale.format("%.0f", top_marketcap, grouping=True)
|
|
|
|
top_dominance = locale.format("%.2f", top_dominance, grouping=True) + "%"
|
2022-06-12 14:56:20 +00:00
|
|
|
|
2024-11-12 13:09:33 +00:00
|
|
|
context = {
|
|
|
|
"marketcaps": marketcaps,
|
|
|
|
"xmr_dominance": xmr_dominance,
|
|
|
|
"now_marketcap": now_marketcap,
|
|
|
|
"now_dominance": now_dominance,
|
|
|
|
"top_marketcap": top_marketcap,
|
|
|
|
"top_dominance": top_dominance,
|
|
|
|
"dates": dates,
|
|
|
|
}
|
|
|
|
return render(request, "charts/monerodominance.html", context)
|
2022-09-19 02:38:30 +00:00
|
|
|
|
2022-12-25 18:47:41 +00:00
|
|
|
|
|
|
|
def withdrawals(request):
|
|
|
|
states = []
|
|
|
|
dates = []
|
|
|
|
|
2024-11-12 13:09:33 +00:00
|
|
|
withdrawals = Withdrawal.objects.order_by("date")
|
2022-12-25 18:47:41 +00:00
|
|
|
for withdrawal in withdrawals:
|
2024-11-12 13:09:33 +00:00
|
|
|
dates.append(datetime.datetime.strftime(withdrawal.date, "%Y-%m-%d %H"))
|
2022-12-25 18:47:41 +00:00
|
|
|
if withdrawal.state:
|
|
|
|
states.append(1)
|
|
|
|
else:
|
|
|
|
states.append(0)
|
2024-11-12 13:09:33 +00:00
|
|
|
|
|
|
|
context = {"states": states, "dates": dates}
|
|
|
|
return render(request, "charts/withdrawals.html", context)
|