6422 lines
No EOL
236 KiB
Python
6422 lines
No EOL
236 KiB
Python
from os import readlink
|
|
from django.shortcuts import render
|
|
from django.http import HttpResponseRedirect
|
|
from django.urls import reverse
|
|
import requests
|
|
import json
|
|
from .models import *
|
|
import datetime
|
|
from datetime import date, timedelta
|
|
from dateutil.relativedelta import relativedelta
|
|
from requests.exceptions import ConnectionError, Timeout, TooManyRedirects
|
|
import math
|
|
import locale
|
|
import pandas as pd
|
|
from operator import truediv
|
|
from datetime import timezone
|
|
import pygsheets
|
|
from django.contrib.auth.decorators import login_required
|
|
from requests import Session
|
|
from psaw import PushshiftAPI
|
|
from django.contrib.staticfiles.storage import staticfiles_storage
|
|
|
|
###########################################
|
|
# Set some parameters
|
|
###########################################
|
|
|
|
locale.setlocale(locale.LC_ALL, 'en_US.utf8')
|
|
# This loads Reddit stats about a subreddit
|
|
api = PushshiftAPI()
|
|
|
|
###########################################
|
|
# Useful functions for admins
|
|
###########################################
|
|
|
|
# Get all history for metrics of a certain coin named as 'symbol'
|
|
# Only authorized users can download all price data via URL request
|
|
@login_required
|
|
def get_history(request, symbol, start_time=None, end_time=None):
|
|
update = True
|
|
count = 0
|
|
priceusd = 0
|
|
inflation = 0
|
|
pricebtc = 0
|
|
stocktoflow = 0
|
|
supply = 0
|
|
fee = 0
|
|
revenue = 0
|
|
hashrate = 0
|
|
transactions = 0
|
|
blocksize = 0
|
|
difficulty = 0
|
|
|
|
with open("settings.json") as file:
|
|
data = json.load(file)
|
|
file.close()
|
|
|
|
if start_time and end_time:
|
|
url = data["metrics_provider"][0]["metrics_url"] + symbol + data["metrics_provider"][0]["metrics"] + '&start_time=' + start_time + '&end_time=' + end_time
|
|
else:
|
|
url = data["metrics_provider"][0]["metrics_url"] + symbol + data["metrics_provider"][0]["metrics"]
|
|
|
|
while update:
|
|
response = requests.get(url)
|
|
data = json.loads(response.text)
|
|
data_aux = data['data']
|
|
for item in data_aux:
|
|
day, hour = str(item['time']).split('T')
|
|
day = datetime.datetime.strptime(day, '%Y-%m-%d')
|
|
day = datetime.datetime.strftime(day, '%Y-%m-%d')
|
|
coin = Coin.objects.filter(name=symbol).filter(date=day)
|
|
if coin:
|
|
coin.delete()
|
|
try:
|
|
coin = Coin()
|
|
coin.name = symbol
|
|
coin.date = day
|
|
try:
|
|
coin.priceusd = float(item['PriceUSD'])
|
|
priceusd = coin.priceusd
|
|
except:
|
|
coin.priceusd = priceusd
|
|
try:
|
|
coin.pricebtc = float(item['PriceBTC'])
|
|
pricebtc = coin.pricebtc
|
|
except:
|
|
coin.pricebtc = pricebtc
|
|
try:
|
|
coin.inflation = float(item['IssContPctAnn'])
|
|
coin.stocktoflow = (100/coin.inflation)**1.65
|
|
inflation = coin.inflation
|
|
stocktoflow = coin.stocktoflow
|
|
except:
|
|
coin.inflation = inflation
|
|
coin.stocktoflow = stocktoflow
|
|
try:
|
|
coin.supply = float(item['SplyCur'])
|
|
supply = coin.supply
|
|
except:
|
|
coin.supply = supply
|
|
try:
|
|
coin.fee = float(item['FeeTotNtv'])
|
|
fee = coin.fee
|
|
except:
|
|
coin.fee = fee
|
|
try:
|
|
coin.revenue = float(item['RevNtv'])
|
|
revenue = coin.revenue
|
|
except:
|
|
coin.revenue = revenue
|
|
try:
|
|
coin.hashrate = float(item['HashRate'])
|
|
hashrate = coin.hashrate
|
|
except:
|
|
coin.hashrate = hashrate
|
|
try:
|
|
coin.transactions = float(item['TxCnt'])
|
|
transactions = coin.transactions
|
|
except:
|
|
coin.transactions = transactions
|
|
try:
|
|
coin.blocksize = float(item['BlkSizeMeanByte'])
|
|
blocksize = coin.blocksize
|
|
except:
|
|
coin.blocksize = blocksize
|
|
try:
|
|
coin.difficulty = float(item['DiffLast'])
|
|
difficulty = coin.difficulty
|
|
except:
|
|
coin.difficulty = difficulty
|
|
|
|
coin.save()
|
|
count += 1
|
|
print(str(symbol) + ' ' + str(coin.date))
|
|
|
|
except:
|
|
pass
|
|
try:
|
|
url = data['next_page_url']
|
|
update = True
|
|
except:
|
|
update = False
|
|
break
|
|
|
|
message = 'Total of ' + str(count) + ' data imported'
|
|
context = {'message': message}
|
|
return render(request, 'monerojnet/maintenance.html', context)
|
|
|
|
# Populate database with rank history
|
|
# Only authorized users can do this
|
|
@login_required
|
|
def load_rank(request, symbol):
|
|
gc = pygsheets.authorize(service_file='service_account_credentials.json')
|
|
sh = gc.open('zcash_bitcoin')
|
|
wks = sh.worksheet_by_title('Sheet8')
|
|
|
|
count = 0
|
|
values_mat = wks.get_values(start=(3,1), end=(9999,2), returnas='matrix')
|
|
print(len(values_mat))
|
|
Rank.objects.all().delete()
|
|
|
|
for k in range(0,len(values_mat)):
|
|
if values_mat[k][0] and values_mat[k][1]:
|
|
rank = Rank()
|
|
rank.name = symbol
|
|
rank.date = values_mat[k][0]
|
|
rank.rank = int(values_mat[k][1].replace(',', '.'))
|
|
if not(rank.rank) and not(rank.date):
|
|
break
|
|
else:
|
|
rank.save()
|
|
count += 1
|
|
else:
|
|
break
|
|
|
|
message = 'Total of ' + str(count) + ' data imported'
|
|
context = {'message': message}
|
|
return render(request, 'monerojnet/maintenance.html', context)
|
|
|
|
# Populate database with dominance history
|
|
# Only authorized users can do this
|
|
@login_required
|
|
def load_dominance(request, symbol):
|
|
gc = pygsheets.authorize(service_file='service_account_credentials.json')
|
|
sh = gc.open('zcash_bitcoin')
|
|
wks = sh.worksheet_by_title('Sheet7')
|
|
|
|
count = 0
|
|
values_mat = wks.get_values(start=(3,1), end=(9999,2), returnas='matrix')
|
|
#print(len(values_mat))
|
|
Dominance.objects.all().delete()
|
|
|
|
for k in range(0,len(values_mat)):
|
|
if values_mat[k][0] and values_mat[k][1]:
|
|
dominance = Dominance()
|
|
dominance.name = symbol
|
|
dominance.date = values_mat[k][0]
|
|
dominance.dominance = float(values_mat[k][1].replace(',', '.'))
|
|
if not(dominance.dominance) and not(dominance.date):
|
|
break
|
|
else:
|
|
dominance.save()
|
|
count += 1
|
|
else:
|
|
break
|
|
|
|
message = 'Total of ' + str(count) + ' data imported'
|
|
context = {'message': message}
|
|
return render(request, 'monerojnet/maintenance.html', context)
|
|
|
|
# Import Reddit history from file on static folder
|
|
# Only authorized users can do this
|
|
@login_required
|
|
def importer(request):
|
|
count = 0
|
|
Social.objects.all().delete()
|
|
filename = staticfiles_storage.path('import.txt')
|
|
with open(filename) as f:
|
|
content = f.readlines()
|
|
for line in content:
|
|
data = json.loads(line)
|
|
symbol = data['name']
|
|
item = data['subscriberCountTimeSeries']
|
|
dates = []
|
|
subscriberCount = []
|
|
commentsPerHour = []
|
|
postsPerHour = []
|
|
for unit in item:
|
|
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'])
|
|
subscriberCount.append(value)
|
|
item = data['commentsPerHourTimeSeries']
|
|
for unit in item:
|
|
value = float(unit['commentsPerHour'])
|
|
commentsPerHour.append(value)
|
|
item = data['postsPerHourTimeSeries']
|
|
for unit in item:
|
|
value = float(unit['postsPerHour'])
|
|
postsPerHour.append(value)
|
|
|
|
for i in range(len(dates)-1):
|
|
social = Social()
|
|
social.name = symbol
|
|
social.date = dates[i]
|
|
if i >= len(dates) - len(subscriberCount):
|
|
social.subscriberCount = subscriberCount[i-len(subscriberCount)]
|
|
else:
|
|
social.subscriberCount = 0
|
|
if i >= len(dates) - len(commentsPerHour):
|
|
social.commentsPerHour = commentsPerHour[i-(len(dates) - len(commentsPerHour))]
|
|
else:
|
|
social.commentsPerHour = 0
|
|
if i >= len(dates) - len(postsPerHour):
|
|
social.postsPerHour = postsPerHour[i-(len(dates) - len(postsPerHour))]
|
|
else:
|
|
social.postsPerHour = 0
|
|
social.save()
|
|
count += 1
|
|
|
|
message = 'Total of ' + str(count) + ' data imported'
|
|
context = {'message': message}
|
|
return render(request, 'monerojnet/maintenance.html', context)
|
|
|
|
# Erase all data for a certain coin
|
|
# Only authorized users can do this
|
|
@login_required
|
|
def reset(request, symbol):
|
|
coins = Coin.objects.filter(name=symbol).all().delete()
|
|
|
|
message = 'All data for ' + str(symbol) + ' erased'
|
|
context = {'message': message}
|
|
return render(request, 'monerojnet/maintenance.html', context)
|
|
|
|
# Populate database with especific chart variables
|
|
# Only authorized users can do this
|
|
@login_required
|
|
def populate_database(request):
|
|
count = 0
|
|
|
|
###################################################################
|
|
# SF model charts
|
|
###################################################################
|
|
print('Populating database for sfmodel.html, sfmodelin.html and pricesats.html, wait a moment...')
|
|
Sfmodel.objects.all().delete()
|
|
timevar = 1283
|
|
v0 = 0.002
|
|
delta = (0.015 - 0.002)/(6*365)
|
|
previous_supply = 0
|
|
supply = 0
|
|
sf_aux = 0
|
|
count_aux = 0
|
|
|
|
coins = Coin.objects.order_by('date').filter(name='xmr')
|
|
for coin in coins:
|
|
if coin.priceusd < 0.1:
|
|
coin.priceusd = 0.1
|
|
coin.pricebtc = 0.000001
|
|
if coin.stocktoflow > sf_aux*1.3+100:
|
|
coin.stocktoflow = sf_aux
|
|
|
|
sf_aux = coin.stocktoflow
|
|
if coin.supply > 0:
|
|
supply = int(coin.supply)*10**12
|
|
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
|
|
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')
|
|
if date_aux2 < date_aux1:
|
|
lastprice = coin.priceusd
|
|
current_inflation = coin.inflation
|
|
data.greyline = 0
|
|
count_aux = 0
|
|
else:
|
|
day = date_aux2 - timedelta(timevar)
|
|
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)
|
|
if coin_aux3:
|
|
if (coin_aux3.inflation/current_inflation) > 1.2 or (coin_aux3.inflation/current_inflation) < 0.8:
|
|
coin_aux3.inflation = current_inflation
|
|
else:
|
|
current_inflation = coin_aux3.inflation
|
|
supply2 = supply
|
|
else:
|
|
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
|
|
|
|
if coin_aux1 and coin_aux2:
|
|
lastprice += (coin_aux1.priceusd/coin_aux2.priceusd-1)*lastprice
|
|
actualprice = lastprice*(math.sqrt(coin.inflation/current_inflation))
|
|
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)
|
|
reward = (2**64 -1 - supply) >> 19
|
|
if reward < 0.6*(10**12):
|
|
reward = 0.6*(10**12)
|
|
supply += int(720*reward)
|
|
|
|
data = Sfmodel()
|
|
data.date = datetime.datetime.strftime(date_now, '%Y-%m-%d')
|
|
data.stocktoflow = (100/(100*reward*720*365/supply))**1.65
|
|
data.priceusd = 0
|
|
data.pricebtc = 0
|
|
data.greyline = 0
|
|
data.color = 0
|
|
data.priceusd = 0
|
|
data.greyline = 0
|
|
data.save()
|
|
count += 1
|
|
|
|
###################################################################
|
|
# Daily Emissions, inflation charts and coins against bitcoin
|
|
###################################################################
|
|
print('Populating database for dailyemission.html and dailyemissionntv.html, wait a moment...')
|
|
DailyData.objects.all().delete()
|
|
supply_btc = 0
|
|
supply_xmr = 0
|
|
count_aux = 0
|
|
coins_btc = Coin.objects.order_by('date').filter(name='btc')
|
|
|
|
for coin_btc in coins_btc:
|
|
count_aux += 1
|
|
data = DailyData()
|
|
data.date = datetime.datetime.strftime(coin_btc.date, '%Y-%m-%d')
|
|
|
|
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
|
|
|
|
if coin_btc.difficulty > 0:
|
|
data.btc_difficulty = coin_btc.difficulty
|
|
else:
|
|
data.btc_difficulty = 0
|
|
|
|
if coin_btc.transactions == 0:
|
|
data.btc_transcostusd = 0
|
|
data.btc_transcostntv = 0
|
|
else:
|
|
if coin_btc.fee*coin_btc.priceusd/coin_btc.transactions < 0.0001:
|
|
data.btc_transcostusd = 0
|
|
data.btc_transcostntv = 0
|
|
else:
|
|
data.btc_transcostusd = coin_btc.fee*coin_btc.priceusd/coin_btc.transactions
|
|
data.btc_transcostntv = coin_btc.fee/coin_btc.transactions
|
|
|
|
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
|
|
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)
|
|
data.btc_priceusd = coin_btc.priceusd
|
|
data.btc_marketcap = coin_btc.priceusd*coin_btc.supply
|
|
|
|
if coin_btc.supply == 0:
|
|
data.btc_minerrevcap = 0
|
|
else:
|
|
data.btc_minerrevcap = 365*100*coin_btc.revenue/coin_btc.supply
|
|
|
|
if coin_btc.priceusd:
|
|
if coin_btc.priceusd/30 > 0.02:
|
|
data.btc_return = coin_btc.priceusd/30
|
|
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
|
|
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:
|
|
data.btc_emissionusd = 0
|
|
else:
|
|
data.btc_emissionusd = (coin_btc.supply - supply_btc)*coin_btc.priceusd
|
|
supply_btc = coin_btc.supply
|
|
|
|
if count_aux > 1750:
|
|
coins_xmr = Coin.objects.filter(name='xmr').filter(date=coin_btc.date)
|
|
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
|
|
data.xmr_marketcap = coin_xmr.priceusd*coin_xmr.supply
|
|
|
|
if coin_btc.supply > 0 and coin_btc.transactions > 0:
|
|
data.xmr_transactions = coin_xmr.transactions
|
|
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)
|
|
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:
|
|
if coin_xmr.fee*coin_xmr.priceusd/coin_xmr.transactions < 0.0001:
|
|
data.xmr_transcostusd = 0
|
|
data.xmr_transcostntv = 0
|
|
else:
|
|
data.xmr_transcostusd = coin_xmr.fee*coin_xmr.priceusd/coin_xmr.transactions
|
|
data.xmr_transcostntv = coin_xmr.fee/coin_xmr.transactions
|
|
if coin_btc.transactions == 0:
|
|
data.xmr_transacpercentage = 0
|
|
else:
|
|
data.xmr_transacpercentage = coin_xmr.transactions/coin_btc.transactions
|
|
|
|
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
|
|
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)
|
|
|
|
if coin_xmr.supply == 0:
|
|
data.xmr_minerrevcap = 0
|
|
else:
|
|
data.xmr_minerrevcap = 365*100*coin_xmr.revenue/coin_xmr.supply
|
|
|
|
if coin_xmr.priceusd/5.01 > 0.02:
|
|
data.xmr_return = coin_xmr.priceusd/5.01
|
|
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:
|
|
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
|
|
data.xmr_emissionntv = coin_xmr.supply - supply_xmr
|
|
|
|
if (coin_xmr.supply - supply_xmr)*coin_xmr.priceusd < 1000:
|
|
data.xmr_emissionusd = 0
|
|
else:
|
|
data.xmr_emissionusd = (coin_xmr.supply - supply_xmr)*coin_xmr.priceusd
|
|
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
|
|
|
|
coins_dash = Coin.objects.filter(name='dash').filter(date=coin_btc.date)
|
|
if coins_dash:
|
|
for coin_dash in coins_dash:
|
|
if coin_dash.inflation > 0:
|
|
data.dash_inflation = coin_dash.inflation
|
|
else:
|
|
data.dash_inflation = 0
|
|
|
|
if coin_dash.priceusd > 0:
|
|
data.dash_marketcap = coin_dash.priceusd*coin_dash.supply
|
|
else:
|
|
data.dash_marketcap = 0
|
|
else:
|
|
data.dash_inflation = 0
|
|
data.dash_marketcap = 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.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:
|
|
coins_zcash = Coin.objects.filter(name='zec').filter(date=coin_btc.date)
|
|
if coins_zcash:
|
|
for coin_zcash in coins_zcash:
|
|
if coin_zcash.inflation > 0:
|
|
data.zcash_inflation = coin_zcash.inflation
|
|
else:
|
|
data.zcash_inflation = 0
|
|
|
|
if coin_zcash.priceusd > 0:
|
|
data.zcash_marketcap = coin_zcash.priceusd*coin_zcash.supply
|
|
else:
|
|
data.zcash_marketcap = 0
|
|
else:
|
|
data.zcash_inflation = 0
|
|
data.zcash_marketcap = 0
|
|
else:
|
|
data.zcash_inflation = 0
|
|
data.zcash_marketcap = 0
|
|
|
|
if count_aux > 3600:
|
|
coins_grin = Coin.objects.filter(name='grin').filter(date=coin_btc.date)
|
|
if coins_grin:
|
|
for coin_grin in coins_grin:
|
|
if coin_grin.inflation > 0:
|
|
data.grin_inflation = coin_grin.inflation
|
|
else:
|
|
data.grin_inflation = 0
|
|
|
|
if coin_grin.priceusd > 0:
|
|
data.grin_marketcap = coin_grin.priceusd*coin_grin.supply
|
|
else:
|
|
data.grin_marketcap = 0
|
|
else:
|
|
data.grin_inflation = 0
|
|
data.grin_marketcap = 0
|
|
else:
|
|
data.grin_inflation = 0
|
|
data.grin_marketcap = 0
|
|
|
|
socials = Social.objects.filter(name='Bitcoin').filter(date=coin_btc.date)
|
|
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
|
|
|
|
socials = Social.objects.filter(name='Monero').filter(date=coin_btc.date)
|
|
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
|
|
|
|
socials = Social.objects.filter(name='CryptoCurrency').filter(date=coin_btc.date)
|
|
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
|
|
|
|
message = 'Total of ' + str(count) + ' data generated'
|
|
context = {'message': message}
|
|
return render(request, 'monerojnet/maintenance.html', context)
|
|
|
|
# Update database with between certain dates
|
|
# Only authorized users can do this
|
|
@login_required
|
|
def update_database_admin(request, date_from, date_to):
|
|
|
|
update_database(date_from, date_to)
|
|
|
|
message = 'Database updated from ' + str(date_from) + ' to ' + str(date_to)
|
|
context = {'message': message}
|
|
return render(request, 'monerojnet/maintenance.html', context)
|
|
|
|
###########################################
|
|
# Other useful functions
|
|
###########################################
|
|
|
|
# Get most recent metrics from a data provider of your choice for 'symbol'
|
|
def get_latest_metrics(symbol, url):
|
|
update = True
|
|
count = 0
|
|
|
|
while update:
|
|
response = requests.get(url)
|
|
data = json.loads(response.text)
|
|
data_aux = data['data']
|
|
for item in data_aux:
|
|
day, hour = str(item['time']).split('T')
|
|
day = datetime.datetime.strptime(day, '%Y-%m-%d')
|
|
day = datetime.datetime.strftime(day, '%Y-%m-%d')
|
|
coin = Coin.objects.filter(name=symbol).filter(date=day)
|
|
if coin:
|
|
coin.delete()
|
|
try:
|
|
coin = Coin()
|
|
coin.name = symbol
|
|
coin.date = day
|
|
try:
|
|
coin.priceusd = float(item['PriceUSD'])
|
|
except:
|
|
coin.priceusd = 0
|
|
try:
|
|
coin.pricebtc = float(item['PriceBTC'])
|
|
except:
|
|
coin.pricebtc = 0
|
|
try:
|
|
coin.inflation = float(item['IssContPctAnn'])
|
|
coin.stocktoflow = (100/coin.inflation)**1.65
|
|
except:
|
|
coin.inflation = 0
|
|
coin.stocktoflow = 0
|
|
try:
|
|
coin.supply = float(item['SplyCur'])
|
|
except:
|
|
coin.supply = 0
|
|
try:
|
|
coin.fee = float(item['FeeTotNtv'])
|
|
except:
|
|
coin.fee = 0
|
|
try:
|
|
coin.revenue = float(item['RevNtv'])
|
|
except:
|
|
coin.revenue = 0
|
|
try:
|
|
coin.hashrate = float(item['HashRate'])
|
|
except:
|
|
coin.hashrate = 0
|
|
try:
|
|
coin.transactions = float(item['TxCnt'])
|
|
except:
|
|
coin.transactions = 0
|
|
coin.save()
|
|
count += 1
|
|
print(str(symbol) + ' ' + str(coin.date))
|
|
|
|
except:
|
|
pass
|
|
try:
|
|
url = data['next_page_url']
|
|
update = True
|
|
except:
|
|
update = False
|
|
break
|
|
|
|
return count
|
|
|
|
# Get daily post on Reddit
|
|
def data_prep_posts(subreddit, start_time, end_time, filters, limit):
|
|
if(len(filters) == 0):
|
|
filters = ['id', 'author', 'created_utc', 'domain', 'url', 'title', 'num_comments']
|
|
|
|
posts = list(api.search_submissions(subreddit=subreddit, after=start_time, before=end_time, filter=filters, limit=limit))
|
|
|
|
return pd.DataFrame(posts)
|
|
|
|
# Get daily comments on Reddit
|
|
def data_prep_comments(term, start_time, end_time, filters, limit):
|
|
if (len(filters) == 0):
|
|
filters = ['id', 'author', 'created_utc','body', 'permalink', 'subreddit']
|
|
|
|
comments = list(api.search_comments(q=term, after=start_time, before=end_time, filter=filters, limit=limit))
|
|
return pd.DataFrame(comments)
|
|
|
|
# Get latest price data for Monero
|
|
def get_latest_price():
|
|
with open("settings.json") as file:
|
|
data = json.load(file)
|
|
|
|
url = data["metrics_provider"][0]["price_url_old"]
|
|
parameters = {
|
|
'convert':'USD',
|
|
}
|
|
headers = {
|
|
'Accepts': 'application/json',
|
|
data["metrics_provider"][0]["api_key_name"]: data["metrics_provider"][0]["api_key_value"],
|
|
}
|
|
|
|
session = Session()
|
|
session.headers.update(headers)
|
|
|
|
try:
|
|
response = session.get(url, params=parameters)
|
|
data = json.loads(response.text)
|
|
print('getting latest data')
|
|
print(data)
|
|
try:
|
|
if data['data']['XMR']['cmc_rank']:
|
|
print('new data received')
|
|
pass
|
|
else:
|
|
print('problem with the data provider')
|
|
data = False
|
|
except:
|
|
data = False
|
|
except (ConnectionError, Timeout, TooManyRedirects) as e:
|
|
data = False
|
|
|
|
file.close()
|
|
return data
|
|
|
|
# Get latest dominance value and update
|
|
def update_dominance(data):
|
|
if not(data):
|
|
print('error updating dominance')
|
|
return False
|
|
else:
|
|
dominance = Dominance()
|
|
dominance.name = 'xmr'
|
|
dominance.date = datetime.datetime.strftime(date.today(), '%Y-%m-%d')
|
|
dominance.dominance = float(data['data']['XMR']['quote']['USD']['market_cap_dominance'])
|
|
dominance.save()
|
|
|
|
gc = pygsheets.authorize(service_file='service_account_credentials.json')
|
|
sh = gc.open('zcash_bitcoin')
|
|
wks = sh.worksheet_by_title('Sheet7')
|
|
|
|
values_mat = wks.get_values(start=(3,1), end=(9999,2), returnas='matrix')
|
|
|
|
k = len(values_mat)
|
|
date_aux = datetime.datetime.strptime(values_mat[k-1][0], '%Y-%m-%d')
|
|
date_aux2 = datetime.datetime.strftime(date.today(), '%Y-%m-%d')
|
|
date_aux2 = datetime.datetime.strptime(date_aux2, '%Y-%m-%d')
|
|
if date_aux < date_aux2:
|
|
cell = 'B' + str(k + 3)
|
|
wks.update_value(cell, dominance.dominance)
|
|
cell = 'A' + str(k + 3)
|
|
wks.update_value(cell, dominance.date)
|
|
print('spreadsheet updated')
|
|
else:
|
|
print('spreadsheet already with the latest data')
|
|
return False
|
|
|
|
#print('updated')
|
|
return data
|
|
|
|
# Get latest rank value and update
|
|
def update_rank():
|
|
data = get_latest_price()
|
|
if not(data):
|
|
print('error updating rank')
|
|
return False
|
|
else:
|
|
rank = Rank()
|
|
rank.name = 'xmr'
|
|
rank.date = datetime.datetime.strftime(date.today(), '%Y-%m-%d')
|
|
rank.rank = int(data['data']['XMR']['cmc_rank'])
|
|
rank.save()
|
|
|
|
gc = pygsheets.authorize(service_file='service_account_credentials.json')
|
|
sh = gc.open('zcash_bitcoin')
|
|
wks = sh.worksheet_by_title('Sheet8')
|
|
|
|
values_mat = wks.get_values(start=(3,1), end=(9999,2), returnas='matrix')
|
|
|
|
k = len(values_mat)
|
|
date_aux = datetime.datetime.strptime(values_mat[k-1][0], '%Y-%m-%d')
|
|
date_aux2 = datetime.datetime.strftime(date.today(), '%Y-%m-%d')
|
|
date_aux2 = datetime.datetime.strptime(date_aux2, '%Y-%m-%d')
|
|
if date_aux < date_aux2:
|
|
cell = 'B' + str(k + 3)
|
|
wks.update_value(cell, rank.rank)
|
|
cell = 'A' + str(k + 3)
|
|
wks.update_value(cell, rank.date)
|
|
print('spreadsheet updated')
|
|
else:
|
|
print('spreadsheet already with the latest data')
|
|
return data
|
|
|
|
#print('updated')
|
|
return data
|
|
|
|
# Load Reddit api to check if there are new followers
|
|
def check_new_social(symbol):
|
|
date_now = datetime.datetime.strftime(date.today(), '%Y-%m-%d')
|
|
socials = Social.objects.filter(name=symbol).filter(date=date_now)
|
|
|
|
if not(socials):
|
|
print('getting new data')
|
|
request = 'https://www.reddit.com/r/'+ symbol +'/about.json'
|
|
response = requests.get(request, headers = {'User-agent': 'Checking new social data'})
|
|
data = json.loads(response.content)
|
|
data = data['data']
|
|
subscribers = data['subscribers']
|
|
social = Social()
|
|
social.name = symbol
|
|
social.date = date_now
|
|
social.subscriberCount = subscribers
|
|
|
|
date_aux = date.today()
|
|
date_aux = datetime.datetime.strftime(date_aux, '%Y-%m-%d')
|
|
date_aux = datetime.datetime.strptime(date_aux, '%Y-%m-%d')
|
|
timestamp1 = int(datetime.datetime.timestamp(date_aux))
|
|
|
|
timestamp2 = int(timestamp1 - 86400)
|
|
limit = 1000
|
|
filters = []
|
|
data = data_prep_posts(symbol, timestamp2, timestamp1, filters, limit)
|
|
print(len(data))
|
|
social.postsPerHour = len(data)/24
|
|
|
|
timestamp2 = int(timestamp1 - 7200)
|
|
limit = 1000
|
|
data = data_prep_comments(symbol, timestamp2, timestamp1, filters, limit)
|
|
print(len(data))
|
|
social.commentsPerHour = len(data)/2
|
|
social.save()
|
|
return True
|
|
|
|
# Update database DailyData with most recent coin data
|
|
def update_database(date_from=None, date_to=None):
|
|
if not(date_from) or not(date_to):
|
|
date_to = date.today()
|
|
date_from = date_to - timedelta(5)
|
|
else:
|
|
print(str(date_from) + ' to ' + str(date_to))
|
|
date_from = datetime.datetime.strptime(date_from, '%Y-%m-%d')
|
|
date_to = datetime.datetime.strptime(date_to, '%Y-%m-%d')
|
|
|
|
count = 0
|
|
date_aux = date_from
|
|
while date_aux <= date_to:
|
|
date_aux = date_from + timedelta(count)
|
|
date_aux2 = date_aux - timedelta(1)
|
|
try:
|
|
coin_xmr = Coin.objects.filter(name='xmr').get(date=date_aux)
|
|
coin_btc = Coin.objects.filter(name='btc').get(date=date_aux)
|
|
coin_dash = Coin.objects.filter(name='dash').get(date=date_aux)
|
|
coin_zcash = Coin.objects.filter(name='zec').get(date=date_aux)
|
|
coin_grin = Coin.objects.filter(name='grin').get(date=date_aux)
|
|
|
|
coin_xmr2 = Coin.objects.filter(name='xmr').get(date=date_aux2)
|
|
coin_btc2 = Coin.objects.filter(name='btc').get(date=date_aux2)
|
|
|
|
count_aux = 0
|
|
found = False
|
|
while count_aux < 100 and not(found):
|
|
try:
|
|
date_aux2 = date_aux - timedelta(count_aux)
|
|
social_btc = Social.objects.filter(name='Bitcoin').get(date=date_aux2)
|
|
social_xmr = Social.objects.filter(name='Monero').get(date=date_aux2)
|
|
social_crypto = Social.objects.filter(name='CryptoCurrency').get(date=date_aux2)
|
|
found = True
|
|
except:
|
|
count_aux += 1
|
|
found = False
|
|
except:
|
|
return count
|
|
|
|
try:
|
|
data = Sfmodel.objects.get(date=coin_xmr.date)
|
|
except:
|
|
data = Sfmodel()
|
|
data.priceusd = 0
|
|
data.pricebtc = 0
|
|
data.stocktoflow = 0
|
|
data.greyline = 0
|
|
data.color = 0
|
|
data.date = coin_xmr.date
|
|
if data.pricebtc == 0:
|
|
data.pricebtc = coin_xmr.pricebtc
|
|
if data.priceusd == 0:
|
|
data.priceusd = coin_xmr.priceusd
|
|
if data.stocktoflow == 0 and coin_xmr.supply > 0:
|
|
supply = int(coin_xmr.supply)*10**12
|
|
reward = (2**64 -1 - supply) >> 19
|
|
if reward < 0.6*(10**12):
|
|
reward = 0.6*(10**12)
|
|
inflation = 100*reward*720*365/supply
|
|
data.stocktoflow = (100/(inflation))**1.65
|
|
if data.color == 0:
|
|
v0 = 0.002
|
|
delta = (0.015 - 0.002)/(6*365)
|
|
data.color = 30*coin_xmr.pricebtc/(int(coin_xmr.id)*delta + v0)
|
|
data.save()
|
|
|
|
try:
|
|
data = DailyData.objects.get(date=coin_xmr.date)
|
|
except:
|
|
data = DailyData()
|
|
# Date field
|
|
data.date = coin_xmr.date
|
|
# Basic information
|
|
data.btc_priceusd = 0
|
|
data.xmr_priceusd = 0
|
|
data.xmr_pricebtc = 0
|
|
# Marketcap charts
|
|
data.btc_marketcap = 0
|
|
data.xmr_marketcap = 0
|
|
data.dash_marketcap = 0
|
|
data.grin_marketcap = 0
|
|
data.zcash_marketcap = 0
|
|
# Transactions charts
|
|
data.xmr_transacpercentage = 0
|
|
data.xmr_transactions = 0
|
|
data.btc_supply = 0
|
|
data.xmr_supply = 0
|
|
# Issuance charts
|
|
data.btc_inflation = 0
|
|
data.xmr_inflation = 0
|
|
data.dash_inflation = 0
|
|
data.grin_inflation = 0
|
|
data.zcash_inflation = 0
|
|
data.xmr_metcalfebtc = 0
|
|
data.xmr_metcalfeusd = 0
|
|
data.btc_return = 0
|
|
data.xmr_return = 0
|
|
data.btc_emissionusd = 0
|
|
data.btc_emissionntv = 0
|
|
data.xmr_emissionusd = 0
|
|
data.xmr_emissionntv = 0
|
|
# Mining charts
|
|
data.btc_minerrevntv = 0
|
|
data.xmr_minerrevntv = 0
|
|
data.btc_minerrevusd = 0
|
|
data.xmr_minerrevusd = 0
|
|
data.btc_minerfeesntv = 0
|
|
data.xmr_minerfeesntv = 0
|
|
data.btc_minerfeesusd = 0
|
|
data.xmr_minerfeesusd = 0
|
|
data.btc_transcostntv = 0
|
|
data.xmr_transcostntv = 0
|
|
data.btc_transcostusd = 0
|
|
data.xmr_transcostusd = 0
|
|
data.xmr_minerrevcap = 0
|
|
data.btc_minerrevcap = 0
|
|
data.btc_commitntv = 0
|
|
data.xmr_commitntv = 0
|
|
data.btc_commitusd = 0
|
|
data.xmr_commitusd = 0
|
|
data.btc_blocksize = 0
|
|
data.xmr_blocksize = 0
|
|
data.btc_difficulty = 0
|
|
data.xmr_difficulty = 0
|
|
# Reddit charts
|
|
data.btc_subscriberCount = 0
|
|
data.btc_commentsPerHour = 0
|
|
data.btc_postsPerHour = 0
|
|
data.xmr_subscriberCount = 0
|
|
data.xmr_commentsPerHour = 0
|
|
data.xmr_postsPerHour = 0
|
|
data.crypto_subscriberCount = 0
|
|
data.crypto_commentsPerHour = 0
|
|
data.crypto_postsPerHour = 0
|
|
|
|
try:
|
|
# Date field
|
|
data.date = coin_xmr.date
|
|
# Basic information
|
|
data.btc_priceusd = coin_btc.priceusd
|
|
data.xmr_priceusd = coin_xmr.priceusd
|
|
data.xmr_pricebtc = coin_xmr.pricebtc
|
|
# Marketcap charts
|
|
data.btc_marketcap = coin_btc.priceusd*coin_btc.supply
|
|
data.xmr_marketcap = coin_xmr.priceusd*coin_xmr.supply
|
|
data.dash_marketcap = coin_dash.priceusd*coin_dash.supply
|
|
data.grin_marketcap = coin_grin.priceusd*coin_grin.supply
|
|
data.zcash_marketcap = coin_zcash.priceusd*coin_zcash.supply
|
|
# Transactions charts
|
|
try:
|
|
data.xmr_transacpercentage = coin_xmr.transactions/coin_btc.transactions
|
|
except:
|
|
pass
|
|
data.xmr_transactions = coin_xmr.transactions
|
|
data.btc_transactions = coin_btc.transactions
|
|
data.btc_supply = coin_btc.supply
|
|
data.xmr_supply = coin_xmr.supply
|
|
# Issuance charts
|
|
data.btc_inflation = coin_btc.inflation
|
|
data.xmr_inflation = coin_xmr.inflation
|
|
data.dash_inflation = coin_dash.inflation
|
|
data.grin_inflation = coin_grin.inflation
|
|
data.zcash_inflation = coin_zcash.inflation
|
|
try:
|
|
data.xmr_metcalfebtc = coin_xmr.transactions*coin_xmr.supply/(coin_btc.supply*coin_btc.transactions)
|
|
data.xmr_metcalfeusd = coin_btc.priceusd*coin_xmr.transactions*coin_xmr.supply/(coin_btc.supply*coin_btc.transactions)
|
|
except:
|
|
pass
|
|
data.btc_return = coin_btc.priceusd/30
|
|
data.xmr_return = coin_xmr.priceusd/5.01
|
|
data.btc_emissionusd = (coin_btc.supply - coin_btc2.supply)*coin_btc.priceusd
|
|
data.btc_emissionntv = coin_btc.supply - coin_btc2.supply
|
|
data.xmr_emissionusd = (coin_xmr.supply - coin_xmr2.supply)*coin_xmr.priceusd
|
|
data.xmr_emissionntv = coin_xmr.supply - coin_xmr2.supply
|
|
# Mining charts
|
|
data.btc_minerrevntv = coin_btc.revenue
|
|
data.xmr_minerrevntv = coin_xmr.revenue
|
|
data.btc_minerrevusd = coin_btc.revenue*coin_btc.priceusd
|
|
data.xmr_minerrevusd = coin_xmr.revenue*coin_xmr.priceusd
|
|
data.btc_minerfeesntv = coin_btc.revenue - coin_btc.supply + coin_btc2.supply
|
|
data.xmr_minerfeesntv = coin_xmr.revenue - coin_xmr.supply + coin_xmr2.supply
|
|
data.btc_minerfeesusd = (coin_btc.revenue - coin_btc.supply + coin_btc2.supply)*coin_btc.priceusd
|
|
data.xmr_minerfeesusd = (coin_xmr.revenue - coin_xmr.supply + coin_xmr2.supply)*coin_xmr.priceusd
|
|
try:
|
|
data.btc_transcostntv = coin_btc.fee/coin_btc.transactions
|
|
data.xmr_transcostntv = coin_xmr.fee/coin_xmr.transactions
|
|
data.btc_transcostusd = coin_btc.priceusd*coin_btc.fee/coin_btc.transactions
|
|
data.xmr_transcostusd = coin_xmr.priceusd*coin_xmr.fee/coin_xmr.transactions
|
|
except:
|
|
pass
|
|
try:
|
|
data.xmr_minerrevcap = 365*100*coin_xmr.revenue/coin_xmr.supply
|
|
data.btc_minerrevcap = 365*100*coin_btc.revenue/coin_btc.supply
|
|
except:
|
|
pass
|
|
try:
|
|
data.btc_commitntv = coin_btc.hashrate/(coin_btc.revenue)
|
|
data.xmr_commitntv = coin_xmr.hashrate/(coin_xmr.revenue)
|
|
data.btc_commitusd = coin_btc.hashrate/(coin_btc.revenue*coin_btc.priceusd)
|
|
data.xmr_commitusd = coin_xmr.hashrate/(coin_xmr.revenue*coin_xmr.priceusd)
|
|
except:
|
|
pass
|
|
try:
|
|
data.btc_blocksize = coin_btc.blocksize
|
|
data.xmr_blocksize = coin_xmr.blocksize
|
|
data.btc_difficulty = coin_btc.difficulty
|
|
data.xmr_difficulty = coin_xmr.difficulty
|
|
except:
|
|
pass
|
|
# Reddit charts
|
|
data.btc_subscriberCount = social_btc.subscriberCount
|
|
data.btc_commentsPerHour = social_btc.commentsPerHour
|
|
data.btc_postsPerHour = social_btc.postsPerHour
|
|
data.xmr_subscriberCount = social_xmr.subscriberCount
|
|
data.xmr_commentsPerHour = social_xmr.commentsPerHour
|
|
data.xmr_postsPerHour = social_xmr.postsPerHour
|
|
data.crypto_subscriberCount = social_crypto.subscriberCount
|
|
data.crypto_commentsPerHour = social_crypto.commentsPerHour
|
|
data.crypto_postsPerHour = social_crypto.postsPerHour
|
|
data.save()
|
|
print(str(coin_xmr.date) + ' - ' + str(int(coin_xmr.supply)) + ' xmr @ ' + str(coin_xmr.priceusd) + ' = ' + str(int(data.xmr_marketcap)))
|
|
|
|
except:
|
|
return count
|
|
|
|
count += 1
|
|
|
|
return count
|
|
|
|
###########################################
|
|
# Views
|
|
###########################################
|
|
|
|
def index(request):
|
|
dt = datetime.datetime.now(timezone.utc).timestamp()
|
|
symbol = 'xmr'
|
|
|
|
try:
|
|
rank = list(Rank.objects.order_by('-date'))[0]
|
|
except:
|
|
message = 'Page under maintenance. Check back in a few minutes.'
|
|
context = {'message': message}
|
|
return render(request, 'monerojnet/maintenance.html', context)
|
|
|
|
if rank.date < date.today():
|
|
data = update_rank()
|
|
update_dominance(data)
|
|
|
|
coin = list(Coin.objects.filter(name=symbol).order_by('-date'))[0]
|
|
if coin:
|
|
now_inflation = coin.inflation
|
|
supply = int(coin.supply)*10**12
|
|
now_units = supply/(10**12)
|
|
else:
|
|
message = 'Website under maintenance. Check back in a few minutes'
|
|
context = {'message': message}
|
|
return render(request, 'monerojnet/maintenance.html', context)
|
|
|
|
now_units = locale.format('%.0f', now_units, grouping=True)
|
|
now_inflation = locale.format('%.2f', now_inflation, grouping=True)+'%'
|
|
|
|
|
|
dt = 'index.html ' + locale.format('%.2f', datetime.datetime.now(timezone.utc).timestamp() - dt, grouping=True)+' seconds'
|
|
print(dt)
|
|
context = {'now_inflation': now_inflation, 'now_units': now_units}
|
|
return render(request, 'monerojnet/index.html', context)
|
|
|
|
def pt(request):
|
|
symbol = 'xmr'
|
|
|
|
rank = list(Rank.objects.order_by('-date'))[0]
|
|
if rank.date < date.today():
|
|
data = update_rank()
|
|
dominance = list(Dominance.objects.order_by('-date'))[0]
|
|
if dominance.date < date.today():
|
|
data = update_dominance(data)
|
|
|
|
coin = list(Coin.objects.filter(name=symbol).order_by('-date'))[0]
|
|
if coin:
|
|
now_inflation = coin.inflation
|
|
supply = int(coin.supply)*10**12
|
|
now_units = supply/(10**12)
|
|
else:
|
|
message = 'Website under maintenance. Check back in a few minutes'
|
|
context = {'message': message}
|
|
return render(request, 'monerojnet/maintenance.html', context)
|
|
|
|
now_units = locale.format('%.0f', now_units, grouping=True)
|
|
now_inflation = locale.format('%.2f', now_inflation, grouping=True)+'%'
|
|
|
|
context = {'now_inflation': now_inflation, 'now_units': now_units}
|
|
return render(request, 'monerojnet/pt.html', context)
|
|
|
|
def fr(request):
|
|
symbol = 'xmr'
|
|
|
|
rank = list(Rank.objects.order_by('-date'))[0]
|
|
if rank.date < date.today():
|
|
data = update_rank()
|
|
dominance = list(Dominance.objects.order_by('-date'))[0]
|
|
if dominance.date < date.today():
|
|
data = update_dominance(data)
|
|
|
|
coin = list(Coin.objects.filter(name=symbol).order_by('-date'))[0]
|
|
if coin:
|
|
now_inflation = coin.inflation
|
|
supply = int(coin.supply)*10**12
|
|
now_units = supply/(10**12)
|
|
else:
|
|
message = 'Website under maintenance. Check back in a few minutes'
|
|
context = {'message': message}
|
|
return render(request, 'monerojnet/maintenance.html', context)
|
|
|
|
now_units = locale.format('%.0f', now_units, grouping=True)
|
|
now_inflation = locale.format('%.2f', now_inflation, grouping=True)+'%'
|
|
|
|
context = {'now_inflation': now_inflation, 'now_units': now_units}
|
|
return render(request, 'monerojnet/fr.html', context)
|
|
|
|
def artigos(request):
|
|
context = {}
|
|
return render(request, 'monerojnet/artigos.html', context)
|
|
|
|
def articles(request):
|
|
context = {}
|
|
return render(request, 'monerojnet/articles.html', context)
|
|
|
|
def social(request):
|
|
dt = datetime.datetime.now(timezone.utc).timestamp()
|
|
data = DailyData.objects.order_by('date')
|
|
dates = []
|
|
dates2 = []
|
|
social_xmr = []
|
|
social_crypto = []
|
|
social_btc = []
|
|
last_xmr = 0
|
|
last_btc = 0
|
|
last_crypto = 0
|
|
|
|
for item in data:
|
|
dates.append(datetime.datetime.strftime(item.date, '%Y-%m-%d'))
|
|
dates2.append(datetime.datetime.strftime(item.date, '%Y-%m-%d'))
|
|
|
|
if item.btc_subscriberCount > last_btc:
|
|
social_btc.append(item.btc_subscriberCount)
|
|
last_btc = item.btc_subscriberCount
|
|
else:
|
|
social_btc.append(last_btc)
|
|
|
|
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.crypto_subscriberCount > last_crypto:
|
|
social_crypto.append(item.crypto_subscriberCount)
|
|
last_crypto = item.crypto_subscriberCount
|
|
else:
|
|
social_crypto.append(last_crypto)
|
|
|
|
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)
|
|
|
|
dt = 'social.html ' + locale.format('%.2f', datetime.datetime.now(timezone.utc).timestamp() - dt, grouping=True)+' seconds'
|
|
print(dt)
|
|
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, 'monerojnet/social.html', context)
|
|
|
|
def social2(request):
|
|
dt = datetime.datetime.now(timezone.utc).timestamp()
|
|
data = DailyData.objects.order_by('date')
|
|
dates = []
|
|
social_btc = []
|
|
last_btc = 0
|
|
dates2 = []
|
|
social_xmr = []
|
|
last_xmr = 0
|
|
N = 1
|
|
|
|
for item in data:
|
|
dates.append(datetime.datetime.strftime(item.date, '%Y-%m-%d'))
|
|
dates2.append(datetime.datetime.strftime(item.date, '%Y-%m-%d'))
|
|
|
|
if item.btc_subscriberCount > 0:
|
|
if item.btc_marketcap > 10000:
|
|
last_btc = ((item.btc_marketcap)**N)/item.btc_subscriberCount
|
|
social_btc.append(last_btc)
|
|
else:
|
|
social_btc.append('')
|
|
else:
|
|
social_btc.append(last_btc)
|
|
|
|
if item.xmr_subscriberCount > 0:
|
|
if item.xmr_marketcap > 10000:
|
|
last_xmr = ((item.xmr_marketcap)**N)/item.xmr_subscriberCount
|
|
social_xmr.append(last_xmr)
|
|
else:
|
|
social_xmr.append('')
|
|
|
|
else:
|
|
social_xmr.append(last_xmr)
|
|
|
|
last_xmr = '$' + locale.format('%.0f', last_xmr, grouping=True)
|
|
last_btc = '$' + locale.format('%.0f', last_btc, grouping=True)
|
|
|
|
dt = 'social2.html ' + locale.format('%.2f', datetime.datetime.now(timezone.utc).timestamp() - dt, grouping=True)+' seconds'
|
|
print(dt)
|
|
context = {'dates': dates, 'dates2': dates2, 'social_btc': social_btc, 'social_xmr': social_xmr, 'last_xmr': last_xmr, 'last_btc': last_btc}
|
|
return render(request, 'monerojnet/social2.html', context)
|
|
|
|
def social3(request):
|
|
dt = datetime.datetime.now(timezone.utc).timestamp()
|
|
data = DailyData.objects.order_by('date')
|
|
|
|
dates = []
|
|
social_xmr = []
|
|
social_crypto = []
|
|
last_xmr = 0
|
|
last_crypto = 0
|
|
|
|
for item in data:
|
|
dates.append(datetime.datetime.strftime(item.date, '%Y-%m-%d'))
|
|
|
|
if item.btc_subscriberCount > 0 and item.xmr_subscriberCount > 0:
|
|
last_xmr = 100*(item.xmr_subscriberCount/item.btc_subscriberCount)
|
|
social_xmr.append(last_xmr)
|
|
else:
|
|
social_xmr.append(last_xmr)
|
|
|
|
if item.btc_subscriberCount > 0 and item.crypto_subscriberCount > 0:
|
|
last_crypto = 100*(item.crypto_subscriberCount/item.btc_subscriberCount)
|
|
social_crypto.append(last_crypto)
|
|
else:
|
|
social_crypto.append(last_crypto)
|
|
|
|
last_xmr = locale.format('%.1f', last_xmr, grouping=True)+ '%'
|
|
last_crypto = locale.format('%.1f', last_crypto, grouping=True)+ '%'
|
|
|
|
dt = 'social3.html ' + locale.format('%.2f', datetime.datetime.now(timezone.utc).timestamp() - dt, grouping=True)+' seconds'
|
|
print(dt)
|
|
context = {'dates': dates, 'social_xmr': social_xmr, 'social_crypto': social_crypto, 'last_xmr': last_xmr, 'last_crypto': last_crypto}
|
|
return render(request, 'monerojnet/social3.html', context)
|
|
|
|
def social4(request):
|
|
dt = datetime.datetime.now(timezone.utc).timestamp()
|
|
data = DailyData.objects.order_by('date')
|
|
dates = []
|
|
dates2 = []
|
|
social_xmr = []
|
|
social_crypto = []
|
|
social_btc = []
|
|
last_xmr = 0
|
|
last_btc = 0
|
|
last_crypto = 0
|
|
|
|
for item in data:
|
|
dates.append(datetime.datetime.strftime(item.date, '%Y-%m-%d'))
|
|
dates2.append(datetime.datetime.strftime(item.date, '%Y-%m-%d'))
|
|
|
|
if item.btc_subscriberCount > last_btc:
|
|
social_btc.append(item.btc_subscriberCount)
|
|
last_btc = item.btc_subscriberCount
|
|
else:
|
|
social_btc.append(last_btc)
|
|
|
|
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.crypto_subscriberCount > last_crypto:
|
|
social_crypto.append(item.crypto_subscriberCount)
|
|
last_crypto = item.crypto_subscriberCount
|
|
else:
|
|
social_crypto.append(last_crypto)
|
|
|
|
N = 30
|
|
last_btc = ''
|
|
speed_btc = []
|
|
for i in range(len(social_btc)):
|
|
if i < N:
|
|
speed_btc.append(last_btc)
|
|
else:
|
|
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]
|
|
if last_btc < 0.2:
|
|
last_btc = 0.2
|
|
if last_btc > 1000:
|
|
last_btc = ''
|
|
else:
|
|
last_btc = ''
|
|
speed_btc.append(last_btc)
|
|
|
|
last_btc = ''
|
|
newcomers_btc = []
|
|
for i in range(len(social_btc)):
|
|
if i < N:
|
|
newcomers_btc.append(last_btc)
|
|
else:
|
|
last_btc = (social_btc[i] - social_btc[i-N])
|
|
if last_btc < 10:
|
|
last_btc = ''
|
|
newcomers_btc.append(last_btc)
|
|
|
|
last_crypto = ''
|
|
speed_crypto = []
|
|
for i in range(len(social_crypto)):
|
|
if i < N:
|
|
speed_crypto.append(last_crypto)
|
|
else:
|
|
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]
|
|
if last_crypto < 0.2:
|
|
last_crypto = 0.2
|
|
if last_crypto > 1000:
|
|
last_crypto = ''
|
|
else:
|
|
last_crypto = ''
|
|
speed_crypto.append(last_crypto)
|
|
|
|
last_crypto = ''
|
|
newcomers_crypto = []
|
|
for i in range(len(social_crypto)):
|
|
if i < N:
|
|
newcomers_crypto.append(last_crypto)
|
|
else:
|
|
last_crypto = (social_crypto[i] - social_crypto[i-N])
|
|
if last_crypto < 2:
|
|
last_crypto = ''
|
|
newcomers_crypto.append(last_crypto)
|
|
|
|
|
|
last_xmr = ''
|
|
speed_xmr = []
|
|
for i in range(len(social_xmr)):
|
|
if i < N:
|
|
speed_xmr.append(last_xmr)
|
|
else:
|
|
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]
|
|
if last_xmr < 0.2:
|
|
last_xmr = 0.2
|
|
if last_xmr > 1000:
|
|
last_xmr = ''
|
|
else:
|
|
last_xmr = ''
|
|
speed_xmr.append(last_xmr)
|
|
|
|
last_xmr = ''
|
|
newcomers_xmr = []
|
|
for i in range(len(social_xmr)):
|
|
if i < N:
|
|
newcomers_xmr.append(last_xmr)
|
|
else:
|
|
last_xmr = (social_xmr[i] - social_xmr[i-N])
|
|
if last_xmr < 0:
|
|
last_xmr = ''
|
|
newcomers_xmr.append(last_xmr)
|
|
|
|
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)
|
|
|
|
dt = 'social4.html ' + locale.format('%.2f', datetime.datetime.now(timezone.utc).timestamp() - dt, grouping=True)+' seconds'
|
|
print(dt)
|
|
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, 'monerojnet/social4.html', context)
|
|
|
|
def social5(request):
|
|
dt = datetime.datetime.now(timezone.utc).timestamp()
|
|
data = DailyData.objects.order_by('date')
|
|
transactions = []
|
|
dates = []
|
|
social_xmr = []
|
|
now_transactions = 0
|
|
last_xmr = 0
|
|
|
|
for item in data:
|
|
dates.append(datetime.datetime.strftime(item.date, '%Y-%m-%d'))
|
|
|
|
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:
|
|
transactions.append('')
|
|
|
|
last_xmr = locale.format('%.0f', last_xmr, grouping=True)
|
|
now_transactions = locale.format('%.0f', now_transactions, grouping=True)
|
|
|
|
dt = 'social5.html ' + locale.format('%.2f', datetime.datetime.now(timezone.utc).timestamp() - dt, grouping=True)+' seconds'
|
|
print(dt)
|
|
context = {'dates': dates, 'social_xmr': social_xmr, 'last_xmr': last_xmr, 'now_transactions': now_transactions, 'transactions': transactions}
|
|
return render(request, 'monerojnet/social5.html', context)
|
|
|
|
def social6(request):
|
|
dt = datetime.datetime.now(timezone.utc).timestamp()
|
|
data = DailyData.objects.order_by('date')
|
|
dates = []
|
|
social_xmr = []
|
|
social_crypto = []
|
|
social_btc = []
|
|
last_xmr = 0
|
|
last_btc = 0
|
|
last_crypto = 0
|
|
|
|
for item in data:
|
|
dates.append(datetime.datetime.strftime(item.date, '%Y-%m-%d'))
|
|
|
|
if item.btc_commentsPerHour*24 < last_btc/4:
|
|
social_btc.append(last_btc)
|
|
else:
|
|
last_btc = item.btc_commentsPerHour*24
|
|
social_btc.append(last_btc)
|
|
|
|
if item.xmr_commentsPerHour*24 < last_xmr/4:
|
|
social_xmr.append(last_xmr)
|
|
else:
|
|
last_xmr = item.xmr_commentsPerHour*24
|
|
social_xmr.append(last_xmr)
|
|
|
|
if item.crypto_commentsPerHour*24 < last_crypto/4:
|
|
social_crypto.append(last_crypto)
|
|
else:
|
|
last_crypto = item.crypto_commentsPerHour*24
|
|
social_crypto.append(last_crypto)
|
|
|
|
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)
|
|
|
|
dt = 'social6.html ' + locale.format('%.2f', datetime.datetime.now(timezone.utc).timestamp() - dt, grouping=True)+' seconds'
|
|
print(dt)
|
|
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, 'monerojnet/social6.html', context)
|
|
|
|
def social7(request):
|
|
dt = datetime.datetime.now(timezone.utc).timestamp()
|
|
data = DailyData.objects.order_by('date')
|
|
dates = []
|
|
social_xmr = []
|
|
social_crypto = []
|
|
social_btc = []
|
|
last_xmr = 0
|
|
last_btc = 0
|
|
last_crypto = 0
|
|
|
|
for item in data:
|
|
dates.append(datetime.datetime.strftime(item.date, '%Y-%m-%d'))
|
|
if item.btc_postsPerHour > 0:
|
|
last_btc = item.btc_postsPerHour*24
|
|
social_btc.append(last_btc)
|
|
else:
|
|
social_btc.append(last_btc)
|
|
|
|
if item.xmr_postsPerHour > 0:
|
|
last_xmr = item.xmr_postsPerHour*24
|
|
social_xmr.append(last_xmr)
|
|
else:
|
|
social_xmr.append(last_xmr)
|
|
|
|
if item.crypto_postsPerHour > 0:
|
|
last_crypto = item.crypto_postsPerHour*24
|
|
social_crypto.append(last_crypto)
|
|
else:
|
|
social_crypto.append(last_crypto)
|
|
|
|
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)
|
|
|
|
dt = 'social7.html ' + locale.format('%.2f', datetime.datetime.now(timezone.utc).timestamp() - dt, grouping=True)+' seconds'
|
|
print(dt)
|
|
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, 'monerojnet/social7.html', context)
|
|
|
|
def pricelog(request):
|
|
dt = datetime.datetime.now(timezone.utc).timestamp()
|
|
symbol = 'xmr'
|
|
now_price = 0
|
|
now_sf = 0
|
|
now_inflation = 0
|
|
v0 = 0.002
|
|
delta = (0.015 - 0.002)/(6*365)
|
|
count = 0
|
|
maximum = 0
|
|
supply = 0
|
|
dates = []
|
|
color = []
|
|
values = []
|
|
|
|
coins = Coin.objects.order_by('date').filter(name=symbol)
|
|
for coin in coins:
|
|
dates.append(datetime.datetime.strftime(coin.date, '%Y-%m-%d'))
|
|
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
|
|
new_color = 30*coin.pricebtc/(count*delta + v0)
|
|
color.append(new_color)
|
|
supply = int(coin.supply)*10**12
|
|
count += 1
|
|
|
|
count = 0
|
|
for count in range(650):
|
|
date_now = date.today() + timedelta(count)
|
|
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)+'%'
|
|
|
|
dt = 'pricelog.html ' + locale.format('%.2f', datetime.datetime.now(timezone.utc).timestamp() - dt, grouping=True)+' seconds'
|
|
print(dt)
|
|
context = {'values': values, 'dates': dates, 'maximum': maximum, 'now_price': now_price, 'now_inflation': now_inflation, 'now_sf': now_sf, 'color': color}
|
|
return render(request, 'monerojnet/pricelog.html', context)
|
|
|
|
def movingaverage(request):
|
|
dt = datetime.datetime.now(timezone.utc).timestamp()
|
|
symbol = 'xmr'
|
|
v0 = 0.002
|
|
delta = (0.015 - 0.002)/(6*365)
|
|
count = 0
|
|
dates = []
|
|
color = []
|
|
values = []
|
|
average1 = []
|
|
average2 = []
|
|
total = 0
|
|
|
|
coins = Coin.objects.order_by('date').filter(name=symbol)
|
|
for coin in coins:
|
|
dates.append(datetime.datetime.strftime(coin.date, '%Y-%m-%d'))
|
|
if coin.priceusd < 0.2:
|
|
coin.priceusd = 0.2
|
|
total += coin.priceusd
|
|
values.append(coin.priceusd)
|
|
if count < 1460:
|
|
aux = total/(730 + count/2)
|
|
if aux < 0.2:
|
|
aux = 0.2
|
|
average1.append(aux)
|
|
average2.append(aux*5)
|
|
if coin.priceusd > 5*aux:
|
|
new_color = 1
|
|
if coin.priceusd < aux:
|
|
new_color = 0
|
|
else:
|
|
new_color = coin.priceusd/(5*aux)
|
|
color.append(new_color)
|
|
else:
|
|
color.append(new_color)
|
|
|
|
count += 1
|
|
|
|
n = 1460
|
|
median = pd.Series(values).rolling(window=n).mean().iloc[n-1:].values
|
|
|
|
#for count in range(1460):
|
|
# average1.append('')
|
|
# average2.append('')
|
|
for item in median:
|
|
average1.append(item)
|
|
average2.append(item*5)
|
|
|
|
dt = 'movingaverage.html ' + locale.format('%.2f', datetime.datetime.now(timezone.utc).timestamp() - dt, grouping=True)+' seconds'
|
|
print(dt)
|
|
context = {'values': values, 'dates': dates, 'color': color, 'average1': average1, 'average2': average2}
|
|
return render(request, 'monerojnet/movingaverage.html', context)
|
|
|
|
def powerlaw(request):
|
|
dt = datetime.datetime.now(timezone.utc).timestamp()
|
|
symbol = 'xmr'
|
|
now_price = 0
|
|
now_sf = 0
|
|
now_inflation = 0
|
|
v0 = 0.002
|
|
delta = (0.015 - 0.002)/(6*365)
|
|
count = 0
|
|
maximum = 0
|
|
dates = []
|
|
counter = []
|
|
years = []
|
|
line3 = []
|
|
line2 = []
|
|
line1 = []
|
|
a3 = 0.00000000000000000009
|
|
a2 = 0.0000000000000000000000008
|
|
a1 = 0.00000000000000000000000002
|
|
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)))
|
|
color = []
|
|
values = []
|
|
|
|
yearnumber = 2014
|
|
days = 1200
|
|
coins = Coin.objects.order_by('date').filter(name=symbol)
|
|
for coin in coins:
|
|
if coin.priceusd < 0.01:
|
|
continue
|
|
days += 1
|
|
price3 = a3*(days**b3)
|
|
price2 = a2*(days**b2)
|
|
price1 = a1*(days**b1)
|
|
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
|
|
new_color = 30*coin.pricebtc/(count*delta + v0)
|
|
color.append(new_color)
|
|
count += 1
|
|
|
|
for count in range(1, 3650):
|
|
date_now = date.today() + timedelta(count)
|
|
values.append('')
|
|
days += 1
|
|
price3 = a3*(days**b3)
|
|
price2 = a2*(days**b2)
|
|
price1 = a1*(days**b1)
|
|
line3.append(price3)
|
|
line2.append(price2)
|
|
line1.append(price1)
|
|
counter.append(days)
|
|
if date_now.year > yearnumber:
|
|
yearnumber += 1
|
|
years.append(yearnumber)
|
|
dates.append(days)
|
|
|
|
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)+'%'
|
|
|
|
dt = 'powerlaw.html ' + locale.format('%.2f', datetime.datetime.now(timezone.utc).timestamp() - dt, grouping=True)+' seconds'
|
|
print(dt)
|
|
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, 'monerojnet/powerlaw.html', context)
|
|
|
|
def pricelin(request):
|
|
dt = datetime.datetime.now(timezone.utc).timestamp()
|
|
symbol = 'xmr'
|
|
now_price = 0
|
|
now_sf = 0
|
|
now_inflation = 0
|
|
v0 = 0.002
|
|
delta = (0.015 - 0.002)/(6*365)
|
|
count = 0
|
|
maximum = 0
|
|
supply = 0
|
|
dates = []
|
|
color = []
|
|
values = []
|
|
|
|
coins = Coin.objects.order_by('date').filter(name=symbol)
|
|
for coin in coins:
|
|
dates.append(datetime.datetime.strftime(coin.date, '%Y-%m-%d'))
|
|
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
|
|
new_color = 30*coin.pricebtc/(count*delta + v0)
|
|
color.append(new_color)
|
|
supply = int(coin.supply)*10**12
|
|
count += 1
|
|
|
|
count = 0
|
|
for count in range(650):
|
|
date_now = date.today() + timedelta(count)
|
|
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)
|
|
stock = (100/(100*reward*720*365/supply))**1.65
|
|
|
|
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)+'%'
|
|
|
|
dt = 'pricelin.html ' + locale.format('%.2f', datetime.datetime.now(timezone.utc).timestamp() - dt, grouping=True)+' seconds'
|
|
print(dt)
|
|
context = {'values': values, 'dates': dates, 'maximum': maximum, 'now_price': now_price, 'now_inflation': now_inflation, 'now_sf': now_sf, 'color': color}
|
|
return render(request, 'monerojnet/pricelin.html', context)
|
|
|
|
def pricesats(request):
|
|
dt = datetime.datetime.now(timezone.utc).timestamp()
|
|
|
|
dates = []
|
|
color = []
|
|
values = []
|
|
now_price = 0
|
|
maximum = 0
|
|
bottom = 1
|
|
|
|
data = Sfmodel.objects.order_by('date')
|
|
for item in data:
|
|
dates.append(datetime.datetime.strftime(item.date, '%Y-%m-%d'))
|
|
if item.color != 0:
|
|
color.append(item.color)
|
|
else:
|
|
color.append('')
|
|
|
|
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:
|
|
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'
|
|
|
|
dt = 'pricesats.html ' + locale.format('%.2f', datetime.datetime.now(timezone.utc).timestamp() - dt, grouping=True)+' seconds'
|
|
print(dt)
|
|
context = {'values': values, 'dates': dates, 'maximum': maximum, 'now_price': now_price, 'color': color, 'bottom': bottom}
|
|
return render(request, 'monerojnet/pricesats.html', context)
|
|
|
|
def fractal(request):
|
|
dt = datetime.datetime.now(timezone.utc).timestamp()
|
|
symbol = 'xmr'
|
|
dates1 = []
|
|
dates2 = []
|
|
cycle1 = []
|
|
cycle2 = []
|
|
now_multiple = 0
|
|
maximum = 0
|
|
|
|
count1 = 1
|
|
count2 = 1
|
|
date1_aux = datetime.datetime(2017, 12, 29)
|
|
date2_aux = datetime.datetime(2014, 6, 21)
|
|
coins = Coin.objects.order_by('date').filter(name=symbol)
|
|
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:
|
|
cycle1.append(coin.priceusd/5)
|
|
dates1.append(count1/12.7)
|
|
if (coin.priceusd/5) > maximum:
|
|
maximum = coin.priceusd/5
|
|
count1 += 1
|
|
elif date3_aux > date1_aux:
|
|
cycle2.append(coin.priceusd/477.12)
|
|
dates2.append(count2/20.7) #24
|
|
now_multiple = coin.priceusd/477.12
|
|
count2 += 0.86
|
|
|
|
now_multiple = locale.format('%.2f', now_multiple, grouping=True) + 'x'
|
|
maximum = locale.format('%.2f', maximum, grouping=True) + 'x'
|
|
|
|
dt = 'fractal.html ' + locale.format('%.2f', datetime.datetime.now(timezone.utc).timestamp() - dt, grouping=True)+' seconds'
|
|
print(dt)
|
|
context = {'cycle1': cycle1, 'cycle2': cycle2, 'dates1': dates1, 'dates2': dates2, 'now_multiple': now_multiple, 'maximum': maximum}
|
|
return render(request, 'monerojnet/fractal.html', context)
|
|
|
|
def inflationfractal(request):
|
|
dt = datetime.datetime.now(timezone.utc).timestamp()
|
|
symbol = 'xmr'
|
|
dates1 = []
|
|
dates2 = []
|
|
cycle1 = []
|
|
cycle2 = []
|
|
now_multiple = 0
|
|
maximum = 0
|
|
|
|
current_inflation = 0
|
|
start_inflation = 0
|
|
count1 = 1
|
|
count2 = 1
|
|
date1_aux = datetime.datetime(2017, 12, 29)
|
|
date2_aux = datetime.datetime(2014, 6, 21)
|
|
coins = Coin.objects.order_by('date').filter(name=symbol)
|
|
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
|
|
cycle1.append(coin.priceusd/5)
|
|
dates1.append(count1/12.7)
|
|
if (coin.priceusd/5) > maximum:
|
|
maximum = coin.priceusd/5
|
|
count1 += 1
|
|
elif date3_aux > date1_aux:
|
|
if (coin.inflation/current_inflation) > 1.15 or (coin.inflation/current_inflation) < 0.85:
|
|
coin.inflation = current_inflation
|
|
else:
|
|
current_inflation = coin.inflation
|
|
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
|
|
count2 += 0.86
|
|
|
|
now_multiple = locale.format('%.2f', now_multiple, grouping=True) + 'x'
|
|
maximum = locale.format('%.2f', maximum, grouping=True) + 'x'
|
|
|
|
dt = 'inflationfractal.html ' + locale.format('%.2f', datetime.datetime.now(timezone.utc).timestamp() - dt, grouping=True)+' seconds'
|
|
print(dt)
|
|
context = {'cycle1': cycle1, 'cycle2': cycle2, 'dates1': dates1, 'dates2': dates2, 'now_multiple': now_multiple, 'maximum': maximum}
|
|
return render(request, 'monerojnet/inflationfractal.html', context)
|
|
|
|
def golden(request):
|
|
dt = datetime.datetime.now(timezone.utc).timestamp()
|
|
symbol = 'xmr'
|
|
dates = []
|
|
prices = []
|
|
|
|
coins = Coin.objects.order_by('date').filter(name=symbol)
|
|
for coin in coins:
|
|
firstdate = coin.date
|
|
break
|
|
|
|
day = firstdate - timedelta(350)
|
|
for i in range(350):
|
|
dates.append(datetime.datetime.strftime(day, '%Y-%m-%d'))
|
|
prices.append(0.2)
|
|
|
|
for coin in coins:
|
|
dates.append(datetime.datetime.strftime(coin.date, '%Y-%m-%d'))
|
|
if coin.priceusd > 0.2:
|
|
prices.append(coin.priceusd)
|
|
else:
|
|
prices.append(0.2)
|
|
|
|
n = 350
|
|
median = pd.Series(prices).rolling(window=n).mean().iloc[n-1:].values
|
|
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):
|
|
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('')
|
|
for item in median:
|
|
m_350.append(float(item))
|
|
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)
|
|
|
|
n = 120
|
|
median = pd.Series(prices).rolling(window=n).mean().iloc[n-1:].values
|
|
m_111 = []
|
|
for i in range(120):
|
|
m_111.append('')
|
|
for item in median:
|
|
m_111.append(float(item))
|
|
|
|
i = 0
|
|
down = True
|
|
price_cross = []
|
|
for price in prices:
|
|
if m_111[i] != '' and m_350_0200[i] != '':
|
|
if down == True and m_111[i] > m_350_0200[i]:
|
|
down = False
|
|
price_cross.append(price)
|
|
elif price > m_350_0500[i]:
|
|
price_cross.append(price)
|
|
elif down == False and m_111[i] < m_350_0200[i]:
|
|
down = True
|
|
else:
|
|
price_cross.append('')
|
|
else:
|
|
price_cross.append('')
|
|
i += 1
|
|
|
|
dt = 'golden.html ' + locale.format('%.2f', datetime.datetime.now(timezone.utc).timestamp() - dt, grouping=True)+' seconds'
|
|
print(dt)
|
|
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, 'monerojnet/golden.html', context)
|
|
|
|
def competitors(request):
|
|
dt = datetime.datetime.now(timezone.utc).timestamp()
|
|
dates = []
|
|
xmr = []
|
|
dash = []
|
|
grin = []
|
|
zcash = []
|
|
count = 0
|
|
now_xmr = 0
|
|
now_dash = 0
|
|
now_grin = 0
|
|
now_zcash = 0
|
|
|
|
count = 0
|
|
coins_xmr = Coin.objects.order_by('date').filter(name='xmr')
|
|
for coin_xmr in coins_xmr:
|
|
if coin_xmr.priceusd:
|
|
if count > 30:
|
|
xmr.append(coin_xmr.priceusd/5.01)
|
|
now_xmr = coin_xmr.priceusd/5.01
|
|
dates.append(count)
|
|
count += 1
|
|
elif count <= 63:
|
|
continue
|
|
else:
|
|
xmr.append('')
|
|
|
|
count = 0
|
|
coins_dash = Coin.objects.order_by('date').filter(name='dash')
|
|
for coin_dash in coins_dash:
|
|
count += 1
|
|
if coin_dash.priceusd and count > 130:
|
|
dash.append(coin_dash.priceusd/14.7)
|
|
now_dash = coin_dash.priceusd/14.7
|
|
elif count <= 130:
|
|
continue
|
|
else:
|
|
dash.append('')
|
|
dates.append(count)
|
|
|
|
count = 0
|
|
coins_grin = Coin.objects.order_by('date').filter(name='grin')
|
|
for coin_grin in coins_grin:
|
|
count += 1
|
|
if coin_grin.priceusd and count > 155:
|
|
grin.append(coin_grin.priceusd/6.37)
|
|
now_grin = coin_grin.priceusd/6.37
|
|
elif count <= 155:
|
|
continue
|
|
else:
|
|
grin.append('')
|
|
dates.append(count)
|
|
|
|
count = 0
|
|
coins_zcash = Coin.objects.order_by('date').filter(name='zec')
|
|
for coin_zcash in coins_zcash:
|
|
count += 1
|
|
if coin_zcash.priceusd and count > 434:
|
|
zcash.append(coin_zcash.priceusd/750)
|
|
now_zcash = coin_zcash.priceusd/750
|
|
elif count <= 434:
|
|
continue
|
|
else:
|
|
zcash.append('')
|
|
dates.append(count)
|
|
|
|
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)
|
|
|
|
dt = 'competitors.html ' + locale.format('%.2f', datetime.datetime.now(timezone.utc).timestamp() - dt, grouping=True)+' seconds'
|
|
print(dt)
|
|
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, 'monerojnet/competitors.html', context)
|
|
|
|
def competitorslin(request):
|
|
dt = datetime.datetime.now(timezone.utc).timestamp()
|
|
dates = []
|
|
xmr = []
|
|
dash = []
|
|
grin = []
|
|
zcash = []
|
|
count = 0
|
|
now_xmr = 0
|
|
now_dash = 0
|
|
now_grin = 0
|
|
now_zcash = 0
|
|
|
|
count = 0
|
|
coins_xmr = Coin.objects.order_by('date').filter(name='xmr')
|
|
for coin_xmr in coins_xmr:
|
|
if coin_xmr.priceusd:
|
|
if count > 30:
|
|
xmr.append(coin_xmr.priceusd/5.01)
|
|
now_xmr = coin_xmr.priceusd/5.01
|
|
dates.append(count)
|
|
count += 1
|
|
elif count <= 63:
|
|
continue
|
|
else:
|
|
xmr.append('')
|
|
|
|
count = 0
|
|
coins_dash = Coin.objects.order_by('date').filter(name='dash')
|
|
for coin_dash in coins_dash:
|
|
count += 1
|
|
if coin_dash.priceusd and count > 130:
|
|
dash.append(coin_dash.priceusd/14.7)
|
|
now_dash = coin_dash.priceusd/14.7
|
|
elif count <= 130:
|
|
continue
|
|
else:
|
|
dash.append('')
|
|
dates.append(count)
|
|
|
|
count = 0
|
|
coins_grin = Coin.objects.order_by('date').filter(name='grin')
|
|
for coin_grin in coins_grin:
|
|
count += 1
|
|
if coin_grin.priceusd and count > 155:
|
|
grin.append(coin_grin.priceusd/6.37)
|
|
now_grin = coin_grin.priceusd/6.37
|
|
elif count <= 155:
|
|
continue
|
|
else:
|
|
grin.append('')
|
|
dates.append(count)
|
|
|
|
count = 0
|
|
coins_zcash = Coin.objects.order_by('date').filter(name='zec')
|
|
for coin_zcash in coins_zcash:
|
|
count += 1
|
|
if coin_zcash.priceusd and count > 434:
|
|
zcash.append(coin_zcash.priceusd/750)
|
|
now_zcash = coin_zcash.priceusd/750
|
|
elif count <= 434:
|
|
continue
|
|
else:
|
|
zcash.append('')
|
|
dates.append(count)
|
|
|
|
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)
|
|
|
|
dt = 'competitorslin.html ' + locale.format('%.2f', datetime.datetime.now(timezone.utc).timestamp() - dt, grouping=True)+' seconds'
|
|
print(dt)
|
|
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, 'monerojnet/competitorslin.html', context)
|
|
|
|
def marketcap(request):
|
|
dt = datetime.datetime.now(timezone.utc).timestamp()
|
|
data = DailyData.objects.order_by('date')
|
|
|
|
dates = []
|
|
xmr = []
|
|
dash = []
|
|
grin = []
|
|
zcash = []
|
|
now_xmr = 0
|
|
now_dash = 0
|
|
now_grin = 0
|
|
now_zcash = 0
|
|
|
|
for item in data:
|
|
dates.append(datetime.datetime.strftime(item.date, '%Y-%m-%d'))
|
|
|
|
if item.zcash_marketcap > 1000000:
|
|
zcash.append(item.zcash_marketcap)
|
|
now_zcash = item.zcash_marketcap
|
|
else:
|
|
zcash.append('')
|
|
|
|
if item.dash_marketcap > 1000000:
|
|
dash.append(item.dash_marketcap)
|
|
now_dash = item.dash_marketcap
|
|
else:
|
|
dash.append('')
|
|
|
|
if item.xmr_marketcap > 1000000:
|
|
xmr.append(item.xmr_marketcap)
|
|
now_xmr = item.xmr_marketcap
|
|
else:
|
|
xmr.append('')
|
|
|
|
if item.grin_marketcap > 1000000:
|
|
grin.append(item.grin_marketcap)
|
|
now_grin = item.grin_marketcap
|
|
else:
|
|
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)
|
|
|
|
dt = 'marketcap.html ' + locale.format('%.2f', datetime.datetime.now(timezone.utc).timestamp() - dt, grouping=True)+' seconds'
|
|
print(dt)
|
|
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, 'monerojnet/marketcap.html', context)
|
|
|
|
def inflationreturn(request):
|
|
dt = datetime.datetime.now(timezone.utc).timestamp()
|
|
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
|
|
coins = Coin.objects.order_by('date').filter(name='xmr')
|
|
for coin in coins:
|
|
count += 1
|
|
if coin.priceusd and count > 30 and coin.inflation > 0:
|
|
now_xmr = coin.priceusd/5.01
|
|
#correcao de um erro nos dados
|
|
if 100/coin.inflation > 110 and now_xmr < 10:
|
|
xmr.append(lastxmrA)
|
|
inflation_xmr.append(lastxmrB)
|
|
else:
|
|
xmr.append(now_xmr)
|
|
inflation_xmr.append(100/coin.inflation)
|
|
lastxmrA = now_xmr
|
|
lastxmrB = 100/coin.inflation
|
|
|
|
count = 0
|
|
coins = Coin.objects.order_by('date').filter(name='dash')
|
|
for coin in coins:
|
|
count += 1
|
|
if coin.priceusd and count > 130 and coin.inflation > 0:
|
|
now_dash = coin.priceusd/14.7
|
|
dash.append(now_dash)
|
|
inflation_dash.append(100/coin.inflation)
|
|
|
|
count = 0
|
|
coins = Coin.objects.order_by('date').filter(name='grin')
|
|
for coin in coins:
|
|
count += 1
|
|
if coin.priceusd and count > 155 and coin.inflation > 0:
|
|
now_grin = coin.priceusd/6.37
|
|
grin.append(now_grin)
|
|
inflation_grin.append(100/coin.inflation)
|
|
|
|
count = 0
|
|
coins = Coin.objects.order_by('date').filter(name='zec')
|
|
for coin in coins:
|
|
count += 1
|
|
if coin.priceusd and count > 434 and coin.inflation > 0:
|
|
now_zcash = coin.priceusd/750
|
|
zcash.append(now_zcash)
|
|
inflation_zcash.append(100/coin.inflation)
|
|
|
|
count = 0
|
|
coins = Coin.objects.order_by('date').filter(name='btc')
|
|
for coin in coins:
|
|
count += 1
|
|
if coin.priceusd and count > 325 and coin.inflation > 0:
|
|
now_btc = coin.priceusd/30
|
|
btc.append(now_btc)
|
|
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)
|
|
|
|
dt = 'inflationreturn.html ' + locale.format('%.2f', datetime.datetime.now(timezone.utc).timestamp() - dt, grouping=True)+' seconds'
|
|
print(dt)
|
|
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, 'monerojnet/inflationreturn.html', context)
|
|
|
|
def bitcoin(request):
|
|
dt = datetime.datetime.now(timezone.utc).timestamp()
|
|
dates = []
|
|
dates3 = []
|
|
dates4 = []
|
|
btc = []
|
|
xmr3 = []
|
|
count1 = 0
|
|
count3 = 0
|
|
now_xmr = 0
|
|
now_btc = 0
|
|
|
|
coins_btc = Coin.objects.order_by('date').filter(name='btc')
|
|
for coin_btc in coins_btc:
|
|
if coin_btc.priceusd:
|
|
if count1 > 890: #450
|
|
btc.append(coin_btc.priceusd/30)
|
|
now_btc = coin_btc.priceusd/30
|
|
dates.append(count1)
|
|
count1 += 1 #1.4
|
|
elif count1 <= 890: #450
|
|
continue
|
|
else:
|
|
btc.append('')
|
|
|
|
coins_xmr = Coin.objects.order_by('date').filter(name='xmr')
|
|
|
|
for coin_xmr in coins_xmr:
|
|
if coin_xmr.priceusd:
|
|
if count3 > 30:
|
|
xmr3.append(coin_xmr.priceusd/5.01)
|
|
dates4.append(count3)
|
|
count3 += 0.92
|
|
elif count3 <= 30:
|
|
continue
|
|
else:
|
|
xmr3.append('')
|
|
|
|
data = DailyData.objects.order_by('date')
|
|
|
|
dates2 = []
|
|
xmr2 = []
|
|
btc2 = []
|
|
|
|
for item in data:
|
|
dates2.append(datetime.datetime.strftime(item.date, '%Y-%m-%d'))
|
|
|
|
if item.btc_return > 0.0001:
|
|
btc2.append(item.btc_return)
|
|
else:
|
|
btc2.append('')
|
|
|
|
if item.xmr_return > 0.0001:
|
|
xmr2.append(item.xmr_return)
|
|
else:
|
|
xmr2.append('')
|
|
|
|
now_btc = locale.format('%.2f', now_btc, grouping=True)
|
|
now_xmr = locale.format('%.2f', now_xmr, grouping=True)
|
|
|
|
dt = 'bitcoin.html ' + locale.format('%.2f', datetime.datetime.now(timezone.utc).timestamp() - dt, grouping=True)+' seconds'
|
|
print(dt)
|
|
context = {'btc': btc, 'xmr2': xmr2, 'btc2': btc2, 'xmr3': xmr3, 'dates': dates, 'dates2': dates2, 'dates3': dates3, 'dates4': dates4}
|
|
return render(request, 'monerojnet/bitcoin.html', context)
|
|
|
|
def translin(request):
|
|
dt = datetime.datetime.now(timezone.utc).timestamp()
|
|
symbol = 'xmr'
|
|
transactions = []
|
|
pricexmr = []
|
|
dates = []
|
|
now_transactions = 0
|
|
maximum = 0
|
|
|
|
coins = Coin.objects.order_by('date').filter(name=symbol)
|
|
for coin in coins:
|
|
if coin.transactions > 200:
|
|
transactions.append(coin.transactions)
|
|
now_transactions = coin.transactions
|
|
if now_transactions > maximum:
|
|
maximum = now_transactions
|
|
else:
|
|
transactions.append('')
|
|
|
|
if coin.priceusd > 0.001:
|
|
pricexmr.append(coin.priceusd)
|
|
else:
|
|
pricexmr.append('')
|
|
|
|
coin.date = datetime.datetime.strftime(coin.date, '%Y-%m-%d')
|
|
dates.append(coin.date)
|
|
|
|
now_transactions = int(now_transactions)
|
|
maximum = int(maximum)
|
|
|
|
dt = 'translin.html ' + locale.format('%.2f', datetime.datetime.now(timezone.utc).timestamp() - dt, grouping=True)+' seconds'
|
|
print(dt)
|
|
context = {'transactions': transactions, 'dates': dates, 'maximum': maximum, 'now_transactions': now_transactions, 'pricexmr': pricexmr}
|
|
return render(request, 'monerojnet/translin.html', context)
|
|
|
|
def transmonth(request):
|
|
dt = datetime.datetime.now(timezone.utc).timestamp()
|
|
symbol = 'xmr'
|
|
transactions = []
|
|
pricexmr = []
|
|
dates = []
|
|
now_transactions = 0
|
|
maximum = 0
|
|
|
|
month_previous = '2014-01'
|
|
month = 0
|
|
total = 0
|
|
coins = Coin.objects.order_by('date').filter(name=symbol)
|
|
for coin in coins:
|
|
aux = str(coin.date)
|
|
month = aux.split("-")[0] + '-' + aux.split("-")[1]
|
|
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:
|
|
total += coin.transactions
|
|
|
|
now_transactions = int(total)
|
|
maximum = int(maximum)
|
|
|
|
now_transactions = locale.format('%.0f', now_transactions, grouping=True)
|
|
maximum = locale.format('%.0f', maximum, grouping=True)
|
|
|
|
dt = 'transmonth.html ' + locale.format('%.2f', datetime.datetime.now(timezone.utc).timestamp() - dt, grouping=True)+' seconds'
|
|
print(dt)
|
|
context = {'transactions': transactions, 'dates': dates, 'maximum': maximum, 'now_transactions': now_transactions, 'pricexmr': pricexmr}
|
|
return render(request, 'monerojnet/transmonth.html', context)
|
|
|
|
def percentage(request):
|
|
dt = datetime.datetime.now(timezone.utc).timestamp()
|
|
data = DailyData.objects.order_by('date')
|
|
|
|
transactions = []
|
|
dates = []
|
|
now_transactions = 0
|
|
maximum = 0
|
|
|
|
for item in data:
|
|
dates.append(datetime.datetime.strftime(item.date, '%Y-%m-%d'))
|
|
if item.xmr_transacpercentage > 0.00001:
|
|
transactions.append(100*item.xmr_transacpercentage)
|
|
now_transactions = 100*item.xmr_transacpercentage
|
|
if now_transactions > maximum:
|
|
maximum = now_transactions
|
|
else:
|
|
transactions.append('')
|
|
|
|
now_transactions = locale.format('%.1f', now_transactions, grouping=True) + '%'
|
|
maximum = locale.format('%.1f', maximum, grouping=True) + '%'
|
|
|
|
dt = 'percentage.html ' + locale.format('%.2f', datetime.datetime.now(timezone.utc).timestamp() - dt, grouping=True)+' seconds'
|
|
print(dt)
|
|
context = {'transactions': transactions, 'dates': dates, 'now_transactions': now_transactions, 'maximum': maximum}
|
|
return render(request, 'monerojnet/percentage.html', context)
|
|
|
|
def translog(request):
|
|
dt = datetime.datetime.now(timezone.utc).timestamp()
|
|
symbol = 'xmr'
|
|
transactions = []
|
|
pricexmr = []
|
|
dates = []
|
|
now_transactions = 0
|
|
maximum = 0
|
|
|
|
coins = Coin.objects.order_by('date').filter(name=symbol)
|
|
for coin in coins:
|
|
if coin.transactions > 200:
|
|
transactions.append(coin.transactions)
|
|
now_transactions = coin.transactions
|
|
if now_transactions > maximum:
|
|
maximum = now_transactions
|
|
else:
|
|
transactions.append('')
|
|
|
|
if coin.priceusd > 0.001:
|
|
pricexmr.append(coin.priceusd)
|
|
else:
|
|
pricexmr.append('')
|
|
|
|
coin.date = datetime.datetime.strftime(coin.date, '%Y-%m-%d')
|
|
dates.append(coin.date)
|
|
|
|
now_transactions = int(now_transactions)
|
|
maximum = int(maximum)
|
|
|
|
dt = 'translog.html ' + locale.format('%.2f', datetime.datetime.now(timezone.utc).timestamp() - dt, grouping=True)+' seconds'
|
|
print(dt)
|
|
context = {'transactions': transactions, 'dates': dates, 'maximum': maximum, 'now_transactions': now_transactions, 'pricexmr': pricexmr}
|
|
return render(request, 'monerojnet/translog.html', context)
|
|
|
|
def hashrate(request):
|
|
dt = datetime.datetime.now(timezone.utc).timestamp()
|
|
symbol = 'xmr'
|
|
hashrate = []
|
|
dates = []
|
|
now_hashrate = 0
|
|
|
|
coins = Coin.objects.order_by('date').filter(name=symbol)
|
|
for coin in coins:
|
|
coin.date = datetime.datetime.strftime(coin.date, '%Y-%m-%d')
|
|
dates.append(coin.date)
|
|
if coin.hashrate > 0:
|
|
now_hashrate = coin.hashrate
|
|
hashrate.append(coin.hashrate)
|
|
else:
|
|
hashrate.append('')
|
|
|
|
now_hashrate = locale.format('%.0f', now_hashrate, grouping=True)
|
|
|
|
dt = 'hashrate.html ' + locale.format('%.2f', datetime.datetime.now(timezone.utc).timestamp() - dt, grouping=True)+' seconds'
|
|
print(dt)
|
|
context = {'hashrate': hashrate, 'dates': dates, 'now_hashrate': now_hashrate}
|
|
return render(request, 'monerojnet/hashrate.html', context)
|
|
|
|
def hashprice(request):
|
|
dt = datetime.datetime.now(timezone.utc).timestamp()
|
|
symbol = 'xmr'
|
|
hashrate = []
|
|
dates = []
|
|
buy = []
|
|
sell = []
|
|
now_hashrate = 0
|
|
color = []
|
|
v0 = 0.002
|
|
delta = (0.015 - 0.002)/(6*365)
|
|
count = 0
|
|
|
|
coins = Coin.objects.order_by('date').filter(name=symbol)
|
|
for coin in coins:
|
|
if count > 50:
|
|
buy.append(0.00000003)
|
|
sell.append(0.00000100)
|
|
coin.date = datetime.datetime.strftime(coin.date, '%Y-%m-%d')
|
|
dates.append(coin.date)
|
|
if coin.hashrate > 0 and coin.priceusd > 0:
|
|
now_hashrate = coin.priceusd/coin.hashrate
|
|
hashrate.append(now_hashrate)
|
|
else:
|
|
hashrate.append('')
|
|
new_color = 30*coin.pricebtc/(count*delta + v0)
|
|
color.append(new_color)
|
|
count += 1
|
|
|
|
now_hashrate = locale.format('%.8f', now_hashrate, grouping=True)
|
|
|
|
dt = 'hashprice.html ' + locale.format('%.2f', datetime.datetime.now(timezone.utc).timestamp() - dt, grouping=True)+' seconds'
|
|
print(dt)
|
|
context = {'hashrate': hashrate, 'dates': dates, 'now_hashrate': now_hashrate, 'color': color, 'buy': buy, 'sell': sell}
|
|
return render(request, 'monerojnet/hashprice.html', context)
|
|
|
|
def hashvsprice(request):
|
|
dt = datetime.datetime.now(timezone.utc).timestamp()
|
|
symbol = 'xmr'
|
|
hashrate = []
|
|
prices = []
|
|
dates = []
|
|
now_hashrate = 0
|
|
now_priceusd = 0
|
|
now_pricebtc = 0
|
|
color = []
|
|
v0 = 0.002
|
|
delta = (0.015 - 0.002)/(6*365)
|
|
count = 0
|
|
|
|
coins = Coin.objects.order_by('date').filter(name=symbol)
|
|
for coin in coins:
|
|
if count > 55:
|
|
coin.date = datetime.datetime.strftime(coin.date, '%Y-%m-%d')
|
|
dates.append(coin.date)
|
|
if coin.priceusd > 0 and coin.hashrate:
|
|
now_hashrate = coin.hashrate
|
|
now_priceusd = coin.priceusd
|
|
now_pricebtc = coin.pricebtc
|
|
hashrate.append(now_hashrate)
|
|
prices.append(now_priceusd)
|
|
else:
|
|
hashrate.append('')
|
|
prices.append('')
|
|
new_color = 30*coin.pricebtc/(count*delta + v0)
|
|
color.append(new_color)
|
|
count += 1
|
|
|
|
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'
|
|
|
|
dt = 'hashvsprice.html ' + locale.format('%.2f', datetime.datetime.now(timezone.utc).timestamp() - dt, grouping=True)+' seconds'
|
|
print(dt)
|
|
context = {'hashrate': hashrate, 'dates': dates, 'now_hashrate': now_hashrate, 'color': color, 'prices': prices, 'now_pricebtc': now_pricebtc, 'now_priceusd': now_priceusd}
|
|
return render(request, 'monerojnet/hashvsprice.html', context)
|
|
|
|
def metcalfesats(request):
|
|
dt = datetime.datetime.now(timezone.utc).timestamp()
|
|
data = DailyData.objects.order_by('date')
|
|
|
|
color = []
|
|
metcalfe = []
|
|
prices = []
|
|
dates = []
|
|
now_metcalfe = 0
|
|
now_price = 0
|
|
maximum = 0
|
|
v0 = 0.002
|
|
delta = (0.015 - 0.002)/(6*365)
|
|
count = 0
|
|
|
|
for item in data:
|
|
dates.append(datetime.datetime.strftime(item.date, '%Y-%m-%d'))
|
|
if item.xmr_metcalfebtc < 0.0007:
|
|
metcalfe.append('')
|
|
color.append('')
|
|
prices.append('')
|
|
else:
|
|
metcalfe.append(item.xmr_metcalfebtc)
|
|
now_price = item.xmr_pricebtc
|
|
now_metcalfe = item.xmr_metcalfebtc
|
|
if now_metcalfe > maximum:
|
|
maximum = now_metcalfe
|
|
color.append(30*item.xmr_pricebtc/(count*delta + v0))
|
|
prices.append(now_price)
|
|
count += 1
|
|
|
|
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'
|
|
|
|
dt = 'metcalfesats.html ' + locale.format('%.2f', datetime.datetime.now(timezone.utc).timestamp() - dt, grouping=True)+' seconds'
|
|
print(dt)
|
|
context = {'metcalfe': metcalfe, 'dates': dates, 'maximum': maximum, 'now_metcalfe': now_metcalfe, 'color': color, 'prices': prices, 'now_price': now_price}
|
|
return render(request, 'monerojnet/metcalfesats.html', context)
|
|
|
|
def metcalfeusd(request):
|
|
dt = datetime.datetime.now(timezone.utc).timestamp()
|
|
data = DailyData.objects.order_by('date')
|
|
|
|
color = []
|
|
metcalfe = []
|
|
prices = []
|
|
dates = []
|
|
now_metcalfe = 0
|
|
now_price = 0
|
|
maximum = 0
|
|
v0 = 0.002
|
|
delta = (0.015 - 0.002)/(6*365)
|
|
count = 0
|
|
|
|
for item in data:
|
|
dates.append(datetime.datetime.strftime(item.date, '%Y-%m-%d'))
|
|
if item.xmr_metcalfeusd < 0.001:
|
|
metcalfe.append('')
|
|
color.append('')
|
|
prices.append('')
|
|
else:
|
|
metcalfe.append(item.xmr_metcalfeusd)
|
|
now_price = item.xmr_priceusd
|
|
now_metcalfe = item.xmr_metcalfeusd
|
|
if now_metcalfe > maximum:
|
|
maximum = now_metcalfe
|
|
color.append(30*item.xmr_pricebtc/(count*delta + v0))
|
|
prices.append(now_price)
|
|
count += 1
|
|
|
|
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)
|
|
|
|
dt = 'metcalfeusd.html ' + locale.format('%.2f', datetime.datetime.now(timezone.utc).timestamp() - dt, grouping=True)+' seconds'
|
|
print(dt)
|
|
context = {'metcalfe': metcalfe, 'dates': dates, 'maximum': maximum, 'now_metcalfe': now_metcalfe, 'color': color, 'prices': prices, 'now_price': now_price}
|
|
return render(request, 'monerojnet/metcalfeusd.html', context)
|
|
|
|
def coins(request):
|
|
dt = datetime.datetime.now(timezone.utc).timestamp()
|
|
data = DailyData.objects.order_by('date')
|
|
|
|
supplyxmr = []
|
|
supplybtc = []
|
|
fsupplyxmr = []
|
|
fsupplybtc = []
|
|
dates = []
|
|
now_xmr = 0
|
|
now_btc = 0
|
|
|
|
for item in data:
|
|
dates.append(datetime.datetime.strftime(item.date, '%Y-%m-%d'))
|
|
|
|
if item.btc_supply > 0.1:
|
|
supplybtc.append(item.btc_supply)
|
|
now_btc = item.btc_supply
|
|
else:
|
|
supplybtc.append('')
|
|
|
|
if item.xmr_inflation > 0.1:
|
|
supplyxmr.append(item.xmr_supply)
|
|
now_xmr = item.xmr_supply
|
|
else:
|
|
supplyxmr.append('')
|
|
|
|
fsupplyxmr.append('')
|
|
fsupplybtc.append('')
|
|
|
|
rewardbtc = 900
|
|
supplybitcoin = item.btc_supply
|
|
supply = int(item.xmr_supply)*10**12
|
|
for i in range(365*(2060-2020)):
|
|
supply = int(supply)
|
|
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))
|
|
date_aux = item.date + timedelta(i)
|
|
dates.append(datetime.datetime.strftime(date_aux, '%Y-%m-%d'))
|
|
supplybitcoin += rewardbtc
|
|
if supplybitcoin > 21000000:
|
|
supplybitcoin = 21000000
|
|
fsupplybtc.append(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':
|
|
rewardbtc = 0
|
|
supplybitcoin = 21000000
|
|
supplyxmr.append('')
|
|
supplybtc.append('')
|
|
|
|
now_btc = locale.format('%.0f', now_btc, grouping=True)
|
|
now_xmr = locale.format('%.0f', now_xmr, grouping=True)
|
|
|
|
dt = 'coins.html ' + locale.format('%.2f', datetime.datetime.now(timezone.utc).timestamp() - dt, grouping=True)+' seconds'
|
|
print(dt)
|
|
context = {'supplyxmr': supplyxmr, 'supplybtc': supplybtc, 'fsupplyxmr': fsupplyxmr, 'fsupplybtc': fsupplybtc, 'now_xmr': now_xmr, 'now_btc': now_btc, 'dates': dates}
|
|
return render(request, 'monerojnet/coins.html', context)
|
|
|
|
def dailyemission(request):
|
|
dt = datetime.datetime.now(timezone.utc).timestamp()
|
|
data = DailyData.objects.order_by('date')
|
|
|
|
emissionbtc = []
|
|
emissionxmr = []
|
|
dates = []
|
|
now_btc = 0
|
|
now_xmr = 0
|
|
high_btc = 0
|
|
high_xmr = 0
|
|
|
|
for item in data:
|
|
if item.btc_emissionusd == 0:
|
|
emissionbtc.append('')
|
|
else:
|
|
emissionbtc.append(item.btc_emissionusd)
|
|
now_btc = item.btc_emissionusd
|
|
if item.btc_emissionusd > high_btc:
|
|
high_btc = item.btc_emissionusd
|
|
|
|
if item.xmr_emissionusd == 0:
|
|
emissionxmr.append('')
|
|
else:
|
|
emissionxmr.append(item.xmr_emissionusd)
|
|
now_xmr = item.xmr_emissionusd
|
|
if item.xmr_emissionusd > high_xmr:
|
|
high_xmr = item.xmr_emissionusd
|
|
dates.append(datetime.datetime.strftime(item.date, '%Y-%m-%d'))
|
|
|
|
for i in range(500):
|
|
date_aux = item.date + timedelta(i)
|
|
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)
|
|
|
|
dt = 'dailyemission.html ' + locale.format('%.2f', datetime.datetime.now(timezone.utc).timestamp() - dt, grouping=True)+' seconds'
|
|
print(dt)
|
|
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, 'monerojnet/dailyemission.html', context)
|
|
|
|
def extracoins(request):
|
|
dt = datetime.datetime.now(timezone.utc).timestamp()
|
|
data = DailyData.objects.order_by('date')
|
|
|
|
nsupply = []
|
|
fsupply = []
|
|
dates = []
|
|
now_diff = 0
|
|
|
|
for item in data:
|
|
dates.append(datetime.datetime.strftime(item.date, '%Y-%m-%d'))
|
|
|
|
if item.btc_supply - item.xmr_supply > 0:
|
|
nsupply.append(item.btc_supply - item.xmr_supply)
|
|
else:
|
|
nsupply.append('')
|
|
|
|
fsupply.append('')
|
|
|
|
rewardbtc = 900
|
|
supplybitcoin = item.btc_supply
|
|
supply = int(item.xmr_supply)*10**12
|
|
for i in range(365*(2060-2020)):
|
|
supply = int(supply)
|
|
reward = (2**64 -1 - supply) >> 19
|
|
if reward < 0.6*(10**12):
|
|
reward = 0.6*(10**12)
|
|
supply += int(720*reward)
|
|
date_aux = item.date + timedelta(i)
|
|
dates.append(datetime.datetime.strftime(date_aux, '%Y-%m-%d'))
|
|
supplybitcoin += rewardbtc
|
|
if supplybitcoin > 21000000:
|
|
supplybitcoin = 21000000
|
|
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':
|
|
rewardbtc = 0
|
|
supplybitcoin = 21000000
|
|
nsupply.append('')
|
|
|
|
now_diff = locale.format('%.0f', now_diff, grouping=True)
|
|
|
|
dt = 'extracoins.html ' + locale.format('%.2f', datetime.datetime.now(timezone.utc).timestamp() - dt, grouping=True)+' seconds'
|
|
print(dt)
|
|
context = {'nsupply': nsupply, 'fsupply': fsupply, 'dates': dates, 'now_diff': now_diff}
|
|
return render(request, 'monerojnet/extracoins.html', context)
|
|
|
|
def inflation(request):
|
|
dt = datetime.datetime.now(timezone.utc).timestamp()
|
|
data = DailyData.objects.order_by('date')
|
|
|
|
inflationxmr = []
|
|
inflationbtc = []
|
|
finflationxmr = []
|
|
finflationbtc = []
|
|
dates = []
|
|
now_xmr = 999999
|
|
now_btc = 999999
|
|
|
|
for item in data:
|
|
dates.append(datetime.datetime.strftime(item.date, '%Y-%m-%d'))
|
|
|
|
if item.btc_inflation > 0.1:
|
|
inflationbtc.append(item.btc_inflation)
|
|
now_btc = item.btc_inflation
|
|
else:
|
|
inflationbtc.append('')
|
|
|
|
if item.xmr_inflation > 0.1:
|
|
inflationxmr.append(item.xmr_inflation)
|
|
now_xmr = item.xmr_inflation
|
|
else:
|
|
inflationxmr.append('')
|
|
|
|
finflationxmr.append('')
|
|
finflationbtc.append('')
|
|
|
|
inflationbitcoin = 1.75
|
|
supply = int(item.xmr_supply)*10**12
|
|
for i in range(2000):
|
|
supply = int(supply)
|
|
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)
|
|
date_aux = item.date + timedelta(i)
|
|
dates.append(datetime.datetime.strftime(date_aux, '%Y-%m-%d'))
|
|
finflationbtc.append(inflationbitcoin)
|
|
date_aux2 = datetime.datetime.strftime(date_aux, '%Y-%m-%d')
|
|
if date_aux2 == '2024-04-23':
|
|
inflationbitcoin = 0.65
|
|
inflationxmr.append('')
|
|
inflationbtc.append('')
|
|
|
|
now_btc = locale.format('%.2f', now_btc, grouping=True) + '%'
|
|
now_xmr = locale.format('%.2f', now_xmr, grouping=True) + '%'
|
|
|
|
dt = 'inflation.html ' + locale.format('%.2f', datetime.datetime.now(timezone.utc).timestamp() - dt, grouping=True)+' seconds'
|
|
print(dt)
|
|
context = {'inflationxmr': inflationxmr, 'inflationbtc': inflationbtc, 'finflationxmr': finflationxmr, 'finflationbtc': finflationbtc, 'now_xmr': now_xmr, 'now_btc': now_btc, 'dates': dates}
|
|
return render(request, 'monerojnet/inflation.html', context)
|
|
|
|
def blocksize(request):
|
|
dt = datetime.datetime.now(timezone.utc).timestamp()
|
|
data = DailyData.objects.order_by('date')
|
|
|
|
xmr_blocksize = []
|
|
btc_blocksize = []
|
|
dates = []
|
|
now_xmr = 0
|
|
now_btc = 0
|
|
|
|
for item in data:
|
|
dates.append(datetime.datetime.strftime(item.date, '%Y-%m-%d'))
|
|
|
|
if item.btc_blocksize > 0.001:
|
|
btc_blocksize.append(item.btc_blocksize/1024)
|
|
now_btc = item.btc_blocksize
|
|
else:
|
|
btc_blocksize.append('')
|
|
|
|
if item.xmr_blocksize > 0.001:
|
|
xmr_blocksize.append(item.xmr_blocksize/1024)
|
|
now_xmr = item.xmr_blocksize
|
|
else:
|
|
xmr_blocksize.append('')
|
|
|
|
now_btc = locale.format('%.2f', now_btc, grouping=True) + ' bytes'
|
|
now_xmr = locale.format('%.2f', now_xmr, grouping=True) + ' bytes'
|
|
|
|
dt = 'blocksize.html ' + locale.format('%.2f', datetime.datetime.now(timezone.utc).timestamp() - dt, grouping=True)+' seconds'
|
|
print(dt)
|
|
context = {'xmr_blocksize': xmr_blocksize, 'btc_blocksize': btc_blocksize, 'now_xmr': now_xmr, 'now_btc': now_btc, 'dates': dates}
|
|
return render(request, 'monerojnet/blocksize.html', context)
|
|
|
|
def transactionsize(request):
|
|
dt = datetime.datetime.now(timezone.utc).timestamp()
|
|
data = DailyData.objects.order_by('date')
|
|
|
|
xmr_blocksize = []
|
|
btc_blocksize = []
|
|
dates = []
|
|
now_xmr = 0
|
|
now_btc = 0
|
|
|
|
for item in data:
|
|
dates.append(datetime.datetime.strftime(item.date, '%Y-%m-%d'))
|
|
|
|
if item.btc_blocksize > 0.001 and item.btc_transactions > 0:
|
|
now_btc = 144*item.btc_blocksize/(1024*item.btc_transactions)
|
|
btc_blocksize.append(144*item.btc_blocksize/(1024*item.btc_transactions))
|
|
else:
|
|
btc_blocksize.append('')
|
|
|
|
if item.xmr_blocksize > 0.001 and item.xmr_transactions > 0:
|
|
now_xmr = 720*item.xmr_blocksize/(1024*item.xmr_transactions)
|
|
xmr_blocksize.append(720*item.xmr_blocksize/(1024*item.xmr_transactions))
|
|
else:
|
|
xmr_blocksize.append('')
|
|
|
|
now_btc = locale.format('%.2f', now_btc, grouping=True) + ' bytes'
|
|
now_xmr = locale.format('%.2f', now_xmr, grouping=True) + ' bytes'
|
|
|
|
dt = 'transactionsize.html ' + locale.format('%.2f', datetime.datetime.now(timezone.utc).timestamp() - dt, grouping=True)+' seconds'
|
|
print(dt)
|
|
context = {'xmr_blocksize': xmr_blocksize, 'btc_blocksize': btc_blocksize, 'now_xmr': now_xmr, 'now_btc': now_btc, 'dates': dates}
|
|
return render(request, 'monerojnet/transactionsize.html', context)
|
|
|
|
def difficulty(request):
|
|
dt = datetime.datetime.now(timezone.utc).timestamp()
|
|
data = DailyData.objects.order_by('date')
|
|
|
|
xmr_difficulty = []
|
|
btc_difficulty = []
|
|
dates = []
|
|
now_xmr = 0
|
|
now_btc = 0
|
|
|
|
for item in data:
|
|
dates.append(datetime.datetime.strftime(item.date, '%Y-%m-%d'))
|
|
|
|
if item.btc_difficulty > 0.001:
|
|
now_btc = item.btc_difficulty
|
|
btc_difficulty.append(now_btc)
|
|
else:
|
|
btc_difficulty.append('')
|
|
|
|
if item.xmr_difficulty > 0.001:
|
|
now_xmr = item.xmr_difficulty
|
|
xmr_difficulty.append(now_xmr)
|
|
else:
|
|
xmr_difficulty.append('')
|
|
|
|
now_btc = locale.format('%.0f', now_btc, grouping=True)
|
|
now_xmr = locale.format('%.0f', now_xmr, grouping=True)
|
|
|
|
dt = 'difficulty.html ' + locale.format('%.2f', datetime.datetime.now(timezone.utc).timestamp() - dt, grouping=True)+' seconds'
|
|
print(dt)
|
|
context = {'xmr_difficulty': xmr_difficulty, 'btc_difficulty': btc_difficulty, 'now_xmr': now_xmr, 'now_btc': now_btc, 'dates': dates}
|
|
return render(request, 'monerojnet/difficulty.html', context)
|
|
|
|
def blockchainsize(request):
|
|
dt = datetime.datetime.now(timezone.utc).timestamp()
|
|
data = DailyData.objects.order_by('date')
|
|
|
|
xmr_blocksize = []
|
|
btc_blocksize = []
|
|
dates = []
|
|
now_xmr = 0
|
|
now_btc = 0
|
|
|
|
for item in data:
|
|
dates.append(datetime.datetime.strftime(item.date, '%Y-%m-%d'))
|
|
|
|
if item.btc_blocksize > 0.001 and item.btc_transactions > 0:
|
|
now_btc += 144*item.btc_blocksize/1024
|
|
if now_btc < 200:
|
|
btc_blocksize.append('')
|
|
else:
|
|
btc_blocksize.append(now_btc)
|
|
else:
|
|
btc_blocksize.append('')
|
|
|
|
if item.xmr_blocksize > 0.001 and item.xmr_transactions > 0:
|
|
now_xmr += 720*item.xmr_blocksize/1024
|
|
if now_btc < 200:
|
|
xmr_blocksize.append('')
|
|
else:
|
|
xmr_blocksize.append(now_xmr)
|
|
else:
|
|
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'
|
|
|
|
dt = 'blockchainsize.html ' + locale.format('%.2f', datetime.datetime.now(timezone.utc).timestamp() - dt, grouping=True)+' seconds'
|
|
print(dt)
|
|
context = {'xmr_blocksize': xmr_blocksize, 'btc_blocksize': btc_blocksize, 'now_xmr': now_xmr, 'now_btc': now_btc, 'dates': dates}
|
|
return render(request, 'monerojnet/blockchainsize.html', context)
|
|
|
|
def compinflation(request):
|
|
dt = datetime.datetime.now(timezone.utc).timestamp()
|
|
data = DailyData.objects.order_by('date')
|
|
|
|
dates = []
|
|
inflationxmr = []
|
|
inflationdash = []
|
|
inflationgrin = []
|
|
inflationzcash = []
|
|
inflationbtc = []
|
|
now_xmr = 999999
|
|
now_dash = 999999
|
|
now_grin = 999999
|
|
now_zcash = 999999
|
|
now_btc = 999999
|
|
|
|
for item in data:
|
|
dates.append(datetime.datetime.strftime(item.date, '%Y-%m-%d'))
|
|
|
|
if item.btc_inflation > 0.1:
|
|
inflationbtc.append(item.btc_inflation)
|
|
now_btc = item.btc_inflation
|
|
else:
|
|
inflationbtc.append('')
|
|
|
|
if item.zcash_inflation > 0.1:
|
|
inflationzcash.append(item.zcash_inflation)
|
|
now_zcash = item.zcash_inflation
|
|
else:
|
|
inflationzcash.append('')
|
|
|
|
if item.dash_inflation > 0.1:
|
|
inflationdash.append(item.dash_inflation)
|
|
now_dash = item.dash_inflation
|
|
else:
|
|
inflationdash.append('')
|
|
|
|
if item.xmr_inflation > 0.1:
|
|
inflationxmr.append(item.xmr_inflation)
|
|
now_xmr = item.xmr_inflation
|
|
else:
|
|
inflationxmr.append('')
|
|
|
|
if item.grin_inflation > 0.1:
|
|
inflationgrin.append(item.grin_inflation)
|
|
now_grin = item.grin_inflation
|
|
else:
|
|
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) + '%'
|
|
|
|
dt = 'compinflation.html ' + locale.format('%.2f', datetime.datetime.now(timezone.utc).timestamp() - dt, grouping=True)+' seconds'
|
|
print(dt)
|
|
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, 'now_btc': now_btc, 'dates': dates}
|
|
return render(request, 'monerojnet/compinflation.html', context)
|
|
|
|
def sfmodel(request):
|
|
dt = datetime.datetime.now(timezone.utc).timestamp()
|
|
|
|
update = True
|
|
symbol = 'xmr'
|
|
coins = Coin.objects.filter(name=symbol).order_by('date')
|
|
for coin in coins:
|
|
print(coin.date)
|
|
|
|
today = datetime.datetime.strftime(date.today(), '%Y-%m-%d')
|
|
yesterday = date.today() - timedelta(1)
|
|
start_time = datetime.datetime.strftime(date.today() - timedelta(7), '%Y-%m-%d')
|
|
try:
|
|
coin = Coin.objects.filter(name=symbol).get(date=yesterday)
|
|
if coin:
|
|
if (coin.inflation > 0) and (coin.priceusd > 0) and (coin.supply > 0):
|
|
update = False
|
|
else:
|
|
now = datetime.datetime.now()
|
|
current_time = int(now.strftime("%H"))
|
|
if current_time >= 5:
|
|
coin.delete()
|
|
update = True
|
|
else:
|
|
update = True
|
|
except:
|
|
update = True
|
|
|
|
if update:
|
|
print('social')
|
|
check_new_social('Bitcoin')
|
|
check_new_social('Monero')
|
|
check_new_social('CryptoCurrency')
|
|
|
|
print('metrics')
|
|
with open("settings.json") as file:
|
|
data = json.load(file)
|
|
file.close()
|
|
|
|
symbol = 'btc'
|
|
url = data["metrics_provider"][0]["metrics_url"] + symbol + data["metrics_provider"][0]["metrics"] + '&start_time=' + start_time
|
|
get_latest_metrics(symbol, url)
|
|
symbol = 'dash'
|
|
url = data["metrics_provider"][0]["metrics_url"] + symbol + data["metrics_provider"][0]["metrics"] + '&start_time=' + start_time
|
|
get_latest_metrics(symbol, url)
|
|
symbol = 'grin'
|
|
url = data["metrics_provider"][0]["metrics_url"] + symbol + data["metrics_provider"][0]["metrics"] + '&start_time=' + start_time
|
|
get_latest_metrics(symbol, url)
|
|
symbol = 'zec'
|
|
url = data["metrics_provider"][0]["metrics_url"] + symbol + data["metrics_provider"][0]["metrics"] + '&start_time=' + start_time
|
|
get_latest_metrics(symbol, url)
|
|
symbol = 'xmr'
|
|
url = data["metrics_provider"][0]["metrics_url"] + symbol + data["metrics_provider"][0]["metrics"] + '&start_time=' + start_time
|
|
get_latest_metrics(symbol, url)
|
|
|
|
print('updating database')
|
|
update_database(start_time, today)
|
|
print('done')
|
|
|
|
dates = []
|
|
stock_to_flow = []
|
|
projection = []
|
|
color = []
|
|
values = []
|
|
now_price = 0
|
|
now_sf = 0
|
|
now_inflation = 0
|
|
|
|
data = Sfmodel.objects.order_by('date')
|
|
count_aux = 0
|
|
for item in data:
|
|
if item.color != 0:
|
|
color.append(item.color)
|
|
else:
|
|
color.append('')
|
|
|
|
if item.greyline != 0:
|
|
projection.append(item.greyline)
|
|
if count_aux > 25:
|
|
count_aux = 0
|
|
else:
|
|
projection.append(item.greyline)
|
|
else:
|
|
projection.append('')
|
|
|
|
if item.stocktoflow > 0.2:
|
|
stock_to_flow.append(item.stocktoflow)
|
|
else:
|
|
stock_to_flow.append('')
|
|
|
|
if item.priceusd > 0.1:
|
|
values.append(item.priceusd)
|
|
now_price = item.priceusd
|
|
now_sf = item.stocktoflow
|
|
if item.date > date.today() - timedelta(4):
|
|
coins = Coin.objects.filter(name='xmr').filter(date=item.date)
|
|
if coins:
|
|
for coin in coins:
|
|
now_inflation = coin.inflation
|
|
else:
|
|
values.append('')
|
|
count_aux += 1
|
|
|
|
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)+'%'
|
|
|
|
dt = 'sfmodel.html ' + locale.format('%.2f', datetime.datetime.now(timezone.utc).timestamp() - dt, grouping=True)+' seconds'
|
|
print(dt)
|
|
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, 'monerojnet/sfmodel.html', context)
|
|
|
|
def sfmodellin(request):
|
|
dt = datetime.datetime.now(timezone.utc).timestamp()
|
|
dates = []
|
|
stock_to_flow = []
|
|
projection = []
|
|
color = []
|
|
values = []
|
|
now_price = 0
|
|
now_sf = 0
|
|
now_inflation = 0
|
|
|
|
data = Sfmodel.objects.order_by('date')
|
|
count_aux = 0
|
|
for item in data:
|
|
if item.color != 0:
|
|
color.append(item.color)
|
|
else:
|
|
color.append('')
|
|
|
|
if item.greyline != 0:
|
|
projection.append(item.greyline)
|
|
if count_aux > 25:
|
|
count_aux = 0
|
|
else:
|
|
projection.append(item.greyline)
|
|
else:
|
|
projection.append('')
|
|
|
|
if item.stocktoflow > 0.2:
|
|
stock_to_flow.append(item.stocktoflow)
|
|
else:
|
|
stock_to_flow.append('')
|
|
|
|
if item.priceusd > 0.1:
|
|
values.append(item.priceusd)
|
|
now_price = item.priceusd
|
|
now_sf = item.stocktoflow
|
|
if item.date > date.today() - timedelta(4):
|
|
coins = Coin.objects.filter(name='xmr').filter(date=item.date)
|
|
if coins:
|
|
for coin in coins:
|
|
now_inflation = coin.inflation
|
|
else:
|
|
values.append('')
|
|
count_aux += 1
|
|
|
|
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)+'%'
|
|
|
|
dt = 'sfmodellin.html ' + locale.format('%.2f', datetime.datetime.now(timezone.utc).timestamp() - dt, grouping=True)+' seconds'
|
|
print(dt)
|
|
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, 'monerojnet/sfmodellin.html', context)
|
|
|
|
def sfmultiple(request):
|
|
dt = datetime.datetime.now(timezone.utc).timestamp()
|
|
symbol = 'xmr'
|
|
|
|
now_sf = 0
|
|
maximum = 0
|
|
dates = []
|
|
stock_to_flow = []
|
|
buy = []
|
|
sell = []
|
|
color = []
|
|
v0 = 0.002
|
|
delta = (0.015 - 0.002)/(6*365)
|
|
count = 0
|
|
|
|
sf_aux = 0
|
|
coins = Coin.objects.order_by('date').filter(name=symbol)
|
|
for coin in coins:
|
|
dates.append(datetime.datetime.strftime(coin.date, '%Y-%m-%d'))
|
|
buy.append(1)
|
|
sell.append(100)
|
|
if coin.stocktoflow > sf_aux*2+250:
|
|
coin.stocktoflow = sf_aux
|
|
sf_aux = coin.stocktoflow
|
|
if coin.priceusd < 1:
|
|
coin.priceusd = 1
|
|
if coin.stocktoflow != 0:
|
|
now_sf = coin.supply*coin.priceusd/(coin.stocktoflow*1500000)
|
|
stock_to_flow.append(now_sf)
|
|
buy.append(1)
|
|
sell.append(100)
|
|
if now_sf > maximum:
|
|
maximum = now_sf
|
|
new_color = 30*coin.pricebtc/(count*delta + v0)
|
|
color.append(new_color)
|
|
count += 1
|
|
|
|
now_sf = locale.format('%.2f', now_sf, grouping=True)
|
|
maximum = locale.format('%.2f', maximum, grouping=True)
|
|
|
|
dt = 'sfmultiple.html ' + locale.format('%.2f', datetime.datetime.now(timezone.utc).timestamp() - dt, grouping=True)+' seconds'
|
|
print(dt)
|
|
context = {'dates': dates, 'maximum': maximum, 'stock_to_flow': stock_to_flow, 'now_sf': now_sf, 'buy': buy, 'sell': sell, 'color': color}
|
|
return render(request, 'monerojnet/sfmultiple.html', context)
|
|
|
|
def thermocap(request):
|
|
dt = datetime.datetime.now(timezone.utc).timestamp()
|
|
symbol = 'xmr'
|
|
dates = []
|
|
values = []
|
|
thermocap = []
|
|
color = []
|
|
v0 = 0.002
|
|
delta = (0.015 - 0.002)/(6*365)
|
|
count = 0
|
|
sf_aux = 0
|
|
supply = 0
|
|
calorie = 1
|
|
calories = []
|
|
calories2 = []
|
|
calories3 = []
|
|
|
|
coins = Coin.objects.order_by('date').filter(name=symbol)
|
|
for coin in coins:
|
|
dates.append(datetime.datetime.strftime(coin.date, '%Y-%m-%d'))
|
|
if coin.stocktoflow > sf_aux*2+250:
|
|
coin.stocktoflow = sf_aux
|
|
sf_aux = coin.stocktoflow
|
|
values.append(coin.priceusd)
|
|
new_color = 30*coin.pricebtc/(count*delta + v0)
|
|
color.append(new_color)
|
|
|
|
calorie += (coin.supply - supply)*coin.priceusd
|
|
if calorie/(4200000*math.sqrt(coin.inflation)) < 0.1:
|
|
calories.append('')
|
|
else:
|
|
calories.append(calorie/(4200000*math.sqrt(coin.inflation)))
|
|
if calorie/(1000000*math.sqrt(coin.inflation)) < 0.1:
|
|
calories2.append('')
|
|
else:
|
|
calories2.append(calorie/(1000000*math.sqrt(coin.inflation)))
|
|
if 28*calorie/(2500000*math.sqrt(coin.inflation)) < 0.1:
|
|
calories3.append('')
|
|
else:
|
|
calories3.append(28*calorie/(2500000*math.sqrt(coin.inflation)))
|
|
temperature = coin.priceusd/calorie
|
|
if temperature > 0.000004:
|
|
temperature = 0.000004
|
|
thermocap.append(temperature)
|
|
supply = coin.supply
|
|
count += 1
|
|
|
|
temperature = locale.format('%.2f', temperature, grouping=True)
|
|
|
|
dt = 'thermocap.html ' + locale.format('%.2f', datetime.datetime.now(timezone.utc).timestamp() - dt, grouping=True)+' seconds'
|
|
print(dt)
|
|
context = {'dates': dates, 'temperature': temperature, 'values': values, 'thermocap': thermocap, 'color': color, 'calories': calories,
|
|
'calories2': calories2, 'calories3': calories3}
|
|
return render(request, 'monerojnet/thermocap.html', context)
|
|
|
|
def sharpe(request):
|
|
dt = datetime.datetime.now(timezone.utc).timestamp()
|
|
symbol = 'xmr'
|
|
dates = []
|
|
values = []
|
|
color = []
|
|
rocs = []
|
|
sharpe = []
|
|
v0 = 0.002
|
|
delta = (0.015 - 0.002)/(6*365)
|
|
count = 0
|
|
price = 0
|
|
coins = Coin.objects.order_by('date').filter(name=symbol)
|
|
for coin in coins:
|
|
new_color = 30*coin.pricebtc/(count*delta + v0)
|
|
count += 1
|
|
if count % 7 == 0:
|
|
if price == 0:
|
|
if coin.priceusd > 0:
|
|
price = coin.priceusd
|
|
roc = 0
|
|
else:
|
|
roc = 0
|
|
else:
|
|
roc = (coin.priceusd - price)/price
|
|
price = coin.priceusd
|
|
rocs.append(roc)
|
|
dates.append(datetime.datetime.strftime(coin.date, '%Y-%m-%d'))
|
|
values.append(coin.priceusd)
|
|
color.append(new_color)
|
|
|
|
n = 52
|
|
median = pd.Series(rocs).rolling(window=n).mean().iloc[n-1:].values
|
|
std = pd.Series(rocs).rolling(window=n).std().iloc[n-1:].values
|
|
|
|
aux = list(map(truediv, median, std))
|
|
for count in range(51):
|
|
sharpe.append('')
|
|
for item in aux:
|
|
sharpe.append(item*math.sqrt(52))
|
|
|
|
dt = 'sharpe.html ' + locale.format('%.2f', datetime.datetime.now(timezone.utc).timestamp() - dt, grouping=True)+' seconds'
|
|
print(dt)
|
|
context = {'dates': dates, 'values': values, 'color': color, 'sharpe': sharpe}
|
|
return render(request, 'monerojnet/sharpe.html', context)
|
|
|
|
def about(request):
|
|
context = {}
|
|
return render(request, 'monerojnet/about.html', context)
|
|
|
|
def transcost(request):
|
|
dt = datetime.datetime.now(timezone.utc).timestamp()
|
|
data = DailyData.objects.order_by('date')
|
|
|
|
costbtc = []
|
|
costxmr = []
|
|
dates = []
|
|
now_btc = 0
|
|
now_xmr = 0
|
|
|
|
for item in data:
|
|
dates.append(datetime.datetime.strftime(item.date, '%Y-%m-%d'))
|
|
if item.xmr_transcostusd == 0:
|
|
costxmr.append('')
|
|
else:
|
|
costxmr.append(item.xmr_transcostusd)
|
|
now_xmr = item.xmr_transcostusd
|
|
if item.btc_transcostusd == 0:
|
|
costbtc.append('')
|
|
else:
|
|
costbtc.append(item.btc_transcostusd)
|
|
now_btc = item.btc_transcostusd
|
|
|
|
now_btc = "$" + locale.format('%.2f', now_btc, grouping=True)
|
|
now_xmr = "$" + locale.format('%.2f', now_xmr, grouping=True)
|
|
|
|
dt = 'transcost.html ' + locale.format('%.2f', datetime.datetime.now(timezone.utc).timestamp() - dt, grouping=True)+' seconds'
|
|
print(dt)
|
|
context = {'costxmr': costxmr, 'costbtc': costbtc, 'now_xmr': now_xmr, 'now_btc': now_btc, 'dates': dates}
|
|
return render(request, 'monerojnet/transcost.html', context)
|
|
|
|
def transcostntv(request):
|
|
dt = datetime.datetime.now(timezone.utc).timestamp()
|
|
data = DailyData.objects.order_by('date')
|
|
|
|
costbtc = []
|
|
costxmr = []
|
|
dates = []
|
|
now_btc = 0
|
|
now_xmr = 0
|
|
|
|
for item in data:
|
|
dates.append(datetime.datetime.strftime(item.date, '%Y-%m-%d'))
|
|
if item.xmr_transcostntv == 0:
|
|
costxmr.append('')
|
|
else:
|
|
costxmr.append(item.xmr_transcostntv)
|
|
now_xmr = item.xmr_transcostntv
|
|
if item.btc_transcostntv == 0:
|
|
costbtc.append('')
|
|
else:
|
|
costbtc.append(item.btc_transcostntv)
|
|
now_btc = item.btc_transcostntv
|
|
|
|
now_btc = locale.format('%.6f', now_btc, grouping=True)
|
|
now_xmr = locale.format('%.6f', now_xmr, grouping=True)
|
|
|
|
dt = 'transcostntv.html ' + locale.format('%.2f', datetime.datetime.now(timezone.utc).timestamp() - dt, grouping=True)+' seconds'
|
|
print(dt)
|
|
context = {'costxmr': costxmr, 'costbtc': costbtc, 'now_xmr': now_xmr, 'now_btc': now_btc, 'dates': dates}
|
|
return render(request, 'monerojnet/transcostntv.html', context)
|
|
|
|
def minerrevcap(request):
|
|
dt = datetime.datetime.now(timezone.utc).timestamp()
|
|
data = DailyData.objects.order_by('date')
|
|
|
|
costbtc = []
|
|
costxmr = []
|
|
dates = []
|
|
now_btc = 0
|
|
now_xmr = 0
|
|
|
|
for item in data:
|
|
dates.append(datetime.datetime.strftime(item.date, '%Y-%m-%d'))
|
|
if item.xmr_minerrevcap == 0:
|
|
costxmr.append('')
|
|
else:
|
|
costxmr.append(item.xmr_minerrevcap)
|
|
now_xmr = item.xmr_minerrevcap
|
|
if item.btc_minerrevcap == 0:
|
|
costbtc.append('')
|
|
else:
|
|
costbtc.append(item.btc_minerrevcap)
|
|
now_btc = item.btc_minerrevcap
|
|
|
|
now_btc = locale.format('%.2f', now_btc, grouping=True) + "%"
|
|
now_xmr = locale.format('%.2f', now_xmr, grouping=True) + "%"
|
|
|
|
dt = 'minerrevcap.html ' + locale.format('%.2f', datetime.datetime.now(timezone.utc).timestamp() - dt, grouping=True)+' seconds'
|
|
print(dt)
|
|
context = {'costxmr': costxmr, 'costbtc': costbtc, 'now_xmr': now_xmr, 'now_btc': now_btc, 'dates': dates}
|
|
return render(request, 'monerojnet/minerrevcap.html', context)
|
|
|
|
def minerrev(request):
|
|
dt = datetime.datetime.now(timezone.utc).timestamp()
|
|
data = DailyData.objects.order_by('date')
|
|
|
|
costbtc = []
|
|
costxmr = []
|
|
dates = []
|
|
now_btc = 0
|
|
now_xmr = 0
|
|
|
|
for item in data:
|
|
dates.append(datetime.datetime.strftime(item.date, '%Y-%m-%d'))
|
|
if item.btc_minerrevusd < 0.0001:
|
|
costbtc.append('')
|
|
else:
|
|
costbtc.append(item.btc_minerrevusd)
|
|
now_btc = item.btc_minerrevusd
|
|
if item.xmr_minerrevusd < 0.0001:
|
|
costxmr.append('')
|
|
else:
|
|
costxmr.append(item.xmr_minerrevusd)
|
|
now_xmr = item.xmr_minerrevusd
|
|
|
|
now_btc = "$" + locale.format('%.2f', now_btc, grouping=True)
|
|
now_xmr = "$" + locale.format('%.2f', now_xmr, grouping=True)
|
|
|
|
dt = 'minerrev.html ' + locale.format('%.2f', datetime.datetime.now(timezone.utc).timestamp() - dt, grouping=True)+' seconds'
|
|
print(dt)
|
|
context = {'costxmr': costxmr, 'costbtc': costbtc, 'now_xmr': now_xmr, 'now_btc': now_btc, 'dates': dates}
|
|
return render(request, 'monerojnet/minerrev.html', context)
|
|
|
|
def minerrevntv(request):
|
|
dt = datetime.datetime.now(timezone.utc).timestamp()
|
|
data = DailyData.objects.order_by('date')
|
|
|
|
costbtc = []
|
|
costxmr = []
|
|
dates = []
|
|
now_btc = 0
|
|
now_xmr = 0
|
|
|
|
for item in data:
|
|
dates.append(datetime.datetime.strftime(item.date, '%Y-%m-%d'))
|
|
if item.btc_minerrevntv < 0.0001:
|
|
costbtc.append('')
|
|
else:
|
|
costbtc.append(item.btc_minerrevntv)
|
|
now_btc = item.btc_minerrevntv
|
|
if item.xmr_minerrevntv < 0.0001:
|
|
costxmr.append('')
|
|
else:
|
|
costxmr.append(item.xmr_minerrevntv)
|
|
now_xmr = item.xmr_minerrevntv
|
|
|
|
now_btc = locale.format('%.2f', now_btc, grouping=True)
|
|
now_xmr = locale.format('%.2f', now_xmr, grouping=True)
|
|
|
|
dt = 'minerrevntv.html ' + locale.format('%.2f', datetime.datetime.now(timezone.utc).timestamp() - dt, grouping=True)+' seconds'
|
|
print(dt)
|
|
context = {'costxmr': costxmr, 'costbtc': costbtc, 'now_xmr': now_xmr, 'now_btc': now_btc, 'dates': dates}
|
|
return render(request, 'monerojnet/minerrevntv.html', context)
|
|
|
|
def minerfeesntv(request):
|
|
dt = datetime.datetime.now(timezone.utc).timestamp()
|
|
data = DailyData.objects.order_by('date')
|
|
|
|
costbtc = []
|
|
costxmr = []
|
|
dates = []
|
|
now_btc = 0
|
|
now_xmr = 0
|
|
|
|
for item in data:
|
|
dates.append(datetime.datetime.strftime(item.date, '%Y-%m-%d'))
|
|
if item.btc_minerfeesntv < 0.1:
|
|
costbtc.append('')
|
|
else:
|
|
costbtc.append(item.btc_minerfeesntv)
|
|
now_btc = item.btc_minerfeesntv
|
|
if item.xmr_minerfeesntv < 0.1:
|
|
costxmr.append('')
|
|
else:
|
|
costxmr.append(item.xmr_minerfeesntv)
|
|
now_xmr = item.xmr_minerfeesntv
|
|
|
|
now_btc = locale.format('%.2f', now_btc, grouping=True)
|
|
now_xmr = locale.format('%.2f', now_xmr, grouping=True)
|
|
|
|
dt = 'minerfeesntv.html ' + locale.format('%.2f', datetime.datetime.now(timezone.utc).timestamp() - dt, grouping=True)+' seconds'
|
|
print(dt)
|
|
context = {'costxmr': costxmr, 'costbtc': costbtc, 'now_xmr': now_xmr, 'now_btc': now_btc, 'dates': dates}
|
|
return render(request, 'monerojnet/minerfeesntv.html', context)
|
|
|
|
def minerfees(request):
|
|
dt = datetime.datetime.now(timezone.utc).timestamp()
|
|
data = DailyData.objects.order_by('date')
|
|
|
|
costbtc = []
|
|
costxmr = []
|
|
dates = []
|
|
now_btc = 0
|
|
now_xmr = 0
|
|
|
|
for item in data:
|
|
dates.append(datetime.datetime.strftime(item.date, '%Y-%m-%d'))
|
|
if item.btc_minerfeesusd < 1:
|
|
costbtc.append('')
|
|
else:
|
|
costbtc.append(item.btc_minerfeesusd)
|
|
now_btc = item.btc_minerfeesusd
|
|
if item.xmr_minerfeesusd < 1:
|
|
costxmr.append('')
|
|
else:
|
|
costxmr.append(item.xmr_minerfeesusd)
|
|
now_xmr = item.xmr_minerfeesusd
|
|
|
|
now_btc = locale.format('%.2f', now_btc, grouping=True)
|
|
now_xmr = locale.format('%.2f', now_xmr, grouping=True)
|
|
|
|
dt = 'minerfees.html ' + locale.format('%.2f', datetime.datetime.now(timezone.utc).timestamp() - dt, grouping=True)+' seconds'
|
|
print(dt)
|
|
context = {'costxmr': costxmr, 'costbtc': costbtc, 'now_xmr': now_xmr, 'now_btc': now_btc, 'dates': dates}
|
|
return render(request, 'monerojnet/minerfees.html', context)
|
|
|
|
def dailyemissionntv(request):
|
|
dt = datetime.datetime.now(timezone.utc).timestamp()
|
|
data = DailyData.objects.order_by('date')
|
|
|
|
emissionbtc = []
|
|
emissionxmr = []
|
|
dates = []
|
|
now_btc = 0
|
|
now_xmr = 0
|
|
|
|
for item in data:
|
|
if item.btc_emissionntv == 0:
|
|
emissionbtc.append('')
|
|
else:
|
|
emissionbtc.append(item.btc_emissionntv)
|
|
now_btc = item.btc_emissionntv
|
|
|
|
if item.xmr_emissionntv == 0:
|
|
emissionxmr.append('')
|
|
else:
|
|
emissionxmr.append(item.xmr_emissionntv)
|
|
now_xmr = item.xmr_emissionntv
|
|
dates.append(datetime.datetime.strftime(item.date, '%Y-%m-%d'))
|
|
|
|
for i in range(500):
|
|
date_aux = item.date + timedelta(i)
|
|
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)
|
|
|
|
dt = 'dailyemissionntv.html ' + locale.format('%.2f', datetime.datetime.now(timezone.utc).timestamp() - dt, grouping=True)+' seconds'
|
|
print(dt)
|
|
context = {'emissionxmr': emissionxmr, 'emissionbtc': emissionbtc, 'now_xmr': now_xmr, 'now_btc': now_btc, 'dates': dates}
|
|
return render(request, 'monerojnet/dailyemissionntv.html', context)
|
|
|
|
def commit(request):
|
|
dt = datetime.datetime.now(timezone.utc).timestamp()
|
|
data = DailyData.objects.order_by('date')
|
|
|
|
costbtc = []
|
|
costxmr = []
|
|
dates = []
|
|
now_btc = 0
|
|
now_xmr = 0
|
|
|
|
for item in data:
|
|
dates.append(datetime.datetime.strftime(item.date, '%Y-%m-%d'))
|
|
if item.btc_commitusd < 0.000001:
|
|
costbtc.append('')
|
|
else:
|
|
costbtc.append(item.btc_commitusd)
|
|
now_btc = item.btc_commitusd
|
|
if item.xmr_commitusd < 0.000001:
|
|
costxmr.append('')
|
|
else:
|
|
costxmr.append(item.xmr_commitusd)
|
|
now_xmr = item.xmr_commitusd
|
|
|
|
now_btc = locale.format('%.2f', now_btc, grouping=True) + " hashs / dollar"
|
|
now_xmr = locale.format('%.2f', now_xmr, grouping=True) + " hashs / dollar"
|
|
|
|
dt = 'commit.html ' + locale.format('%.2f', datetime.datetime.now(timezone.utc).timestamp() - dt, grouping=True)+' seconds'
|
|
print(dt)
|
|
context = {'costxmr': costxmr, 'costbtc': costbtc, 'now_xmr': now_xmr, 'now_btc': now_btc, 'dates': dates}
|
|
return render(request, 'monerojnet/commit.html', context)
|
|
|
|
def commitntv(request):
|
|
dt = datetime.datetime.now(timezone.utc).timestamp()
|
|
data = DailyData.objects.order_by('date')
|
|
|
|
costbtc = []
|
|
costxmr = []
|
|
dates = []
|
|
now_btc = 0
|
|
now_xmr = 0
|
|
|
|
for item in data:
|
|
dates.append(datetime.datetime.strftime(item.date, '%Y-%m-%d'))
|
|
if item.btc_commitntv < 0.00001:
|
|
costbtc.append('')
|
|
else:
|
|
costbtc.append(item.btc_commitntv)
|
|
now_btc = item.btc_commitntv
|
|
if item.xmr_commitntv < 0.00001:
|
|
costxmr.append('')
|
|
else:
|
|
costxmr.append(item.xmr_commitntv)
|
|
now_xmr = item.xmr_commitntv
|
|
|
|
now_btc = locale.format('%.0f', now_btc, grouping=True) + " hashs / btc"
|
|
now_xmr = locale.format('%.0f', now_xmr, grouping=True) + " hashs / xmr"
|
|
|
|
dt = 'commitntv.html ' + locale.format('%.2f', datetime.datetime.now(timezone.utc).timestamp() - dt, grouping=True)+' seconds'
|
|
print(dt)
|
|
context = {'costxmr': costxmr, 'costbtc': costbtc, 'now_xmr': now_xmr, 'now_btc': now_btc, 'dates': dates}
|
|
return render(request, 'monerojnet/commitntv.html', context)
|
|
|
|
def competitorssats(request):
|
|
dt = datetime.datetime.now(timezone.utc).timestamp()
|
|
dates = []
|
|
xmr = []
|
|
dash = []
|
|
grin = []
|
|
zcash = []
|
|
count = 0
|
|
now_xmr = 0
|
|
now_dash = 0
|
|
now_grin = 0
|
|
now_zcash = 0
|
|
|
|
count = 0
|
|
coins_xmr = Coin.objects.order_by('date').filter(name='xmr')
|
|
for coin_xmr in coins_xmr:
|
|
if coin_xmr.pricebtc:
|
|
if count > 32:
|
|
xmr.append(coin_xmr.pricebtc/0.0058)
|
|
now_xmr = coin_xmr.pricebtc/0.0058
|
|
dates.append(count)
|
|
count += 1
|
|
elif count <= 63:
|
|
continue
|
|
else:
|
|
xmr.append('')
|
|
|
|
count = 0
|
|
coins_dash = Coin.objects.order_by('date').filter(name='dash')
|
|
for coin_dash in coins_dash:
|
|
count += 1
|
|
if coin_dash.pricebtc and count > 130:
|
|
dash.append(coin_dash.pricebtc/0.02)
|
|
now_dash = coin_dash.pricebtc/0.02
|
|
elif count <= 130:
|
|
continue
|
|
else:
|
|
dash.append('')
|
|
dates.append(count)
|
|
|
|
count = 0
|
|
coins_grin = Coin.objects.order_by('date').filter(name='grin')
|
|
for coin_grin in coins_grin:
|
|
count += 1
|
|
if coin_grin.pricebtc and count > 155:
|
|
grin.append(coin_grin.pricebtc/0.000513)
|
|
now_grin = coin_grin.pricebtc/0.000513
|
|
elif count <= 155:
|
|
continue
|
|
else:
|
|
grin.append('')
|
|
dates.append(count)
|
|
|
|
count = 0
|
|
coins_zcash = Coin.objects.order_by('date').filter(name='zec')
|
|
for coin_zcash in coins_zcash:
|
|
count += 1
|
|
if coin_zcash.pricebtc and count > 434:
|
|
zcash.append(coin_zcash.pricebtc/0.05)
|
|
now_zcash = coin_zcash.pricebtc/0.05
|
|
elif count <= 434:
|
|
continue
|
|
else:
|
|
zcash.append('')
|
|
dates.append(count)
|
|
|
|
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)
|
|
|
|
dt = 'competitorssats.html ' + locale.format('%.2f', datetime.datetime.now(timezone.utc).timestamp() - dt, grouping=True)+' seconds'
|
|
print(dt)
|
|
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, 'monerojnet/competitorssats.html', context)
|
|
|
|
def competitorssatslin(request):
|
|
dt = datetime.datetime.now(timezone.utc).timestamp()
|
|
dates = []
|
|
xmr = []
|
|
dash = []
|
|
grin = []
|
|
zcash = []
|
|
count = 0
|
|
now_xmr = 0
|
|
now_dash = 0
|
|
now_grin = 0
|
|
now_zcash = 0
|
|
|
|
count = 0
|
|
coins_xmr = Coin.objects.order_by('date').filter(name='xmr')
|
|
for coin_xmr in coins_xmr:
|
|
if coin_xmr.pricebtc:
|
|
if count > 32:
|
|
xmr.append(coin_xmr.pricebtc/0.0058)
|
|
now_xmr = coin_xmr.pricebtc/0.0058
|
|
dates.append(count)
|
|
count += 1
|
|
elif count <= 63:
|
|
continue
|
|
else:
|
|
xmr.append('')
|
|
|
|
count = 0
|
|
coins_dash = Coin.objects.order_by('date').filter(name='dash')
|
|
for coin_dash in coins_dash:
|
|
count += 1
|
|
if coin_dash.pricebtc and count > 130:
|
|
dash.append(coin_dash.pricebtc/0.02)
|
|
now_dash = coin_dash.pricebtc/0.02
|
|
elif count <= 130:
|
|
continue
|
|
else:
|
|
dash.append('')
|
|
dates.append(count)
|
|
|
|
count = 0
|
|
coins_grin = Coin.objects.order_by('date').filter(name='grin')
|
|
for coin_grin in coins_grin:
|
|
count += 1
|
|
if coin_grin.pricebtc and count > 155:
|
|
grin.append(coin_grin.pricebtc/0.000513)
|
|
now_grin = coin_grin.pricebtc/0.000513
|
|
elif count <= 155:
|
|
continue
|
|
else:
|
|
grin.append('')
|
|
dates.append(count)
|
|
|
|
count = 0
|
|
coins_zcash = Coin.objects.order_by('date').filter(name='zec')
|
|
for coin_zcash in coins_zcash:
|
|
count += 1
|
|
if coin_zcash.pricebtc and count > 434:
|
|
zcash.append(coin_zcash.pricebtc/0.05)
|
|
now_zcash = coin_zcash.pricebtc/0.05
|
|
elif count <= 434:
|
|
continue
|
|
else:
|
|
zcash.append('')
|
|
dates.append(count)
|
|
|
|
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)
|
|
|
|
dt = 'competitorssatslin.html ' + locale.format('%.2f', datetime.datetime.now(timezone.utc).timestamp() - dt, grouping=True)+' seconds'
|
|
print(dt)
|
|
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, 'monerojnet/competitorssatslin.html', context)
|
|
|
|
def dread_subscribers(request):
|
|
dt = datetime.datetime.now(timezone.utc).timestamp()
|
|
dates = []
|
|
data1 = []
|
|
data2 = []
|
|
now_xmr = 0
|
|
now_btc = 0
|
|
|
|
gc = pygsheets.authorize(service_file='service_account_credentials.json')
|
|
sh = gc.open('zcash_bitcoin')
|
|
wks = sh.worksheet_by_title('Sheet6')
|
|
|
|
values_mat = wks.get_values(start=(3,1), end=(99,3), returnas='matrix')
|
|
|
|
for k in range(0,len(values_mat)):
|
|
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]
|
|
if not(value1) or not(value2):
|
|
break
|
|
else:
|
|
dates.append(date)
|
|
data1.append(int(value1))
|
|
data2.append(int(value2))
|
|
now_xmr = int(value2)
|
|
now_btc = int(value1)
|
|
else:
|
|
break
|
|
|
|
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)
|
|
|
|
dt = 'dread_subscribers.html ' + locale.format('%.2f', datetime.datetime.now(timezone.utc).timestamp() - dt, grouping=True)+' seconds'
|
|
print(dt)
|
|
context = {'dates': dates, 'now_btc': now_btc, 'now_xmr': now_xmr, 'data1': data1, "data2": data2, "dominance": dominance}
|
|
return render(request, 'monerojnet/dread_subscribers.html', context)
|
|
|
|
def coincards(request):
|
|
dt = datetime.datetime.now(timezone.utc).timestamp()
|
|
dates = []
|
|
data1 = []
|
|
data2 = []
|
|
data3 = []
|
|
data4 = []
|
|
now_xmr = 0
|
|
now_btc = 0
|
|
|
|
gc = pygsheets.authorize(service_file='service_account_credentials.json')
|
|
sh = gc.open('zcash_bitcoin')
|
|
wks = sh.worksheet_by_title('Sheet2')
|
|
|
|
values_mat = wks.get_values(start=(3,1), end=(99,5), returnas='matrix')
|
|
|
|
for k in range(0,len(values_mat)):
|
|
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]
|
|
if not(value1) or not(value2) or not(value3) or not(value4):
|
|
break
|
|
else:
|
|
dates.append(date)
|
|
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(',','.'))
|
|
else:
|
|
break
|
|
|
|
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)
|
|
|
|
dt = 'coincards.html ' + locale.format('%.2f', datetime.datetime.now(timezone.utc).timestamp() - dt, grouping=True)+' seconds'
|
|
print(dt)
|
|
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, 'monerojnet/coincards.html', context)
|
|
|
|
def merchants(request):
|
|
dt = datetime.datetime.now(timezone.utc).timestamp()
|
|
dates = []
|
|
data1 = []
|
|
data2 = []
|
|
data3 = []
|
|
data4 = []
|
|
data5 = []
|
|
data6 = []
|
|
data7 = []
|
|
now_xmr = 0
|
|
now_btc = 0
|
|
now_eth = 0
|
|
|
|
gc = pygsheets.authorize(service_file='service_account_credentials.json')
|
|
sh = gc.open('zcash_bitcoin')
|
|
wks = sh.worksheet_by_title('Sheet3')
|
|
|
|
values_mat = wks.get_values(start=(3,1), end=(99,8), returnas='matrix')
|
|
|
|
for k in range(0,len(values_mat)):
|
|
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]
|
|
if not(value1) or not(value2) or not(value3) or not(value4) or not(value5) or not(value6) or not(value7):
|
|
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
|
|
|
|
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)
|
|
|
|
dt = 'merchants.html ' + locale.format('%.2f', datetime.datetime.now(timezone.utc).timestamp() - dt, grouping=True)+' seconds'
|
|
print(dt)
|
|
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, 'monerojnet/merchants.html', context)
|
|
|
|
def merchants_increase(request):
|
|
dt = datetime.datetime.now(timezone.utc).timestamp()
|
|
dates = []
|
|
data1 = []
|
|
data2 = []
|
|
data3 = []
|
|
data4 = []
|
|
data5 = []
|
|
data6 = []
|
|
data7 = []
|
|
now_xmr = 0
|
|
now_btc = 0
|
|
now_eth = 0
|
|
|
|
gc = pygsheets.authorize(service_file='service_account_credentials.json')
|
|
sh = gc.open('zcash_bitcoin')
|
|
wks = sh.worksheet_by_title('Sheet4')
|
|
|
|
values_mat = wks.get_values(start=(3,1), end=(99,8), returnas='matrix')
|
|
|
|
for k in range(0,len(values_mat)):
|
|
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]
|
|
if not(value1) or not(value2) or not(value3) or not(value4) or not(value5) or not(value6) or not(value7):
|
|
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
|
|
|
|
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)
|
|
|
|
dt = 'merchants_increase.html ' + locale.format('%.2f', datetime.datetime.now(timezone.utc).timestamp() - dt, grouping=True)+' seconds'
|
|
print(dt)
|
|
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, 'monerojnet/merchants_increase.html', context)
|
|
|
|
def merchants_percentage(request):
|
|
dt = datetime.datetime.now(timezone.utc).timestamp()
|
|
dates = []
|
|
data1 = []
|
|
data2 = []
|
|
data3 = []
|
|
data4 = []
|
|
data5 = []
|
|
data6 = []
|
|
data7 = []
|
|
now_xmr = 0
|
|
now_btc = 0
|
|
now_eth = 0
|
|
|
|
gc = pygsheets.authorize(service_file='service_account_credentials.json')
|
|
sh = gc.open('zcash_bitcoin')
|
|
wks = sh.worksheet_by_title('Sheet5')
|
|
|
|
values_mat = wks.get_values(start=(3,1), end=(99,8), returnas='matrix')
|
|
|
|
for k in range(0,len(values_mat)):
|
|
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]
|
|
if not(value1) or not(value2) or not(value3) or not(value4) or not(value5) or not(value6) or not(value7):
|
|
break
|
|
else:
|
|
dates.append(date)
|
|
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(',', '.'))
|
|
else:
|
|
break
|
|
|
|
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)
|
|
|
|
dt = 'merchants_percentage.html ' + locale.format('%.2f', datetime.datetime.now(timezone.utc).timestamp() - dt, grouping=True)+' seconds'
|
|
print(dt)
|
|
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, 'monerojnet/merchants_percentage.html', context)
|
|
|
|
def dominance(request):
|
|
dt = datetime.datetime.now(timezone.utc).timestamp()
|
|
symbol = 'xmr'
|
|
values = []
|
|
pricexmr = []
|
|
dates = []
|
|
now_value = 0
|
|
maximum = 0
|
|
|
|
coins = Coin.objects.order_by('date').filter(name=symbol)
|
|
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:
|
|
maximum = now_value
|
|
else:
|
|
values.append('')
|
|
except:
|
|
values.append('')
|
|
|
|
if coin.priceusd > 0.001:
|
|
pricexmr.append(coin.priceusd)
|
|
else:
|
|
pricexmr.append('')
|
|
|
|
coin.date = datetime.datetime.strftime(coin.date, '%Y-%m-%d')
|
|
dates.append(coin.date)
|
|
|
|
yesterday = date.today() - timedelta(1)
|
|
yesterday = datetime.datetime.strftime(yesterday, '%Y-%m-%d')
|
|
if coin.date == yesterday:
|
|
today = date.today()
|
|
today = datetime.datetime.strftime(today, '%Y-%m-%d')
|
|
try:
|
|
dominance = list(Dominance.objects.order_by('-date'))[0]
|
|
if str(dominance.date) == str(today):
|
|
now_value = dominance.dominance
|
|
dates.append(today)
|
|
values.append(now_value)
|
|
if now_value > maximum:
|
|
maximum = now_value
|
|
except:
|
|
pass
|
|
|
|
now_value = locale.format('%.2f', now_value, grouping=True)
|
|
maximum = locale.format('%.2f', maximum, grouping=True)
|
|
|
|
dt = 'dominance.html ' + locale.format('%.2f', datetime.datetime.now(timezone.utc).timestamp() - dt, grouping=True)+' seconds'
|
|
print(dt)
|
|
context = {'values': values, 'dates': dates, 'maximum': maximum, 'now_value': now_value, 'pricexmr': pricexmr}
|
|
return render(request, 'monerojnet/dominance.html', context)
|
|
|
|
def rank(request):
|
|
dt = datetime.datetime.now(timezone.utc).timestamp()
|
|
symbol = 'xmr'
|
|
values = []
|
|
pricexmr = []
|
|
dates = []
|
|
now_value = 25
|
|
maximum = 100
|
|
|
|
coins = Coin.objects.order_by('date').filter(name=symbol)
|
|
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:
|
|
maximum = now_value
|
|
else:
|
|
values.append(now_value)
|
|
except:
|
|
values.append(now_value)
|
|
|
|
if coin.priceusd > 0.001:
|
|
pricexmr.append(coin.priceusd)
|
|
else:
|
|
pricexmr.append('')
|
|
|
|
coin.date = datetime.datetime.strftime(coin.date, '%Y-%m-%d')
|
|
dates.append(coin.date)
|
|
|
|
yesterday = date.today() - timedelta(1)
|
|
yesterday = datetime.datetime.strftime(yesterday, '%Y-%m-%d')
|
|
if coin.date == yesterday:
|
|
today = date.today()
|
|
today = datetime.datetime.strftime(today, '%Y-%m-%d')
|
|
try:
|
|
rank = list(Rank.objects.order_by('-date'))[0]
|
|
if str(rank.date) == str(today):
|
|
now_value = rank.rank
|
|
dates.append(today)
|
|
values.append(now_value)
|
|
if now_value < maximum:
|
|
maximum = now_value
|
|
except:
|
|
pass
|
|
|
|
if now_value == 1:
|
|
now_value = locale.format('%.0f', now_value, grouping=True) + 'st'
|
|
if now_value == 2:
|
|
now_value = locale.format('%.0f', now_value, grouping=True) + 'nd'
|
|
if now_value == 3:
|
|
now_value = locale.format('%.0f', now_value, grouping=True) + 'rd'
|
|
if now_value > 3:
|
|
now_value = locale.format('%.0f', now_value, grouping=True) + 'th'
|
|
if maximum == 1:
|
|
maximum = locale.format('%.0f', maximum, grouping=True) + 'st'
|
|
if maximum == 2:
|
|
maximum = locale.format('%.0f', maximum, grouping=True) + 'nd'
|
|
if maximum == 3:
|
|
maximum = locale.format('%.0f', maximum, grouping=True) + 'rd'
|
|
if maximum > 3:
|
|
maximum = locale.format('%.0f', maximum, grouping=True) + 'th'
|
|
|
|
dt = 'rank.html ' + locale.format('%.2f', datetime.datetime.now(timezone.utc).timestamp() - dt, grouping=True)+' seconds'
|
|
print(dt)
|
|
context = {'values': values, 'dates': dates, 'maximum': maximum, 'now_value': now_value, 'pricexmr': pricexmr}
|
|
return render(request, 'monerojnet/rank.html', context)
|
|
|
|
def tail_emission(request):
|
|
dt = datetime.datetime.now(timezone.utc).timestamp()
|
|
inflationxmr = []
|
|
finflationxmr = []
|
|
dates = []
|
|
now_xmr = 999999
|
|
|
|
coins = Coin.objects.order_by('date').filter(name='xmr')
|
|
for coin in coins:
|
|
now_xmr = float(coin.inflation)
|
|
|
|
supply = int(coin.supply)*10**12
|
|
for i in range(210000):
|
|
supply = int(supply)
|
|
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)
|
|
date_aux = coin.date + timedelta(i)
|
|
dates.append(datetime.datetime.strftime(date_aux, '%Y-%m-%d'))
|
|
|
|
now_xmr = locale.format('%.2f', now_xmr, grouping=True) + '%'
|
|
|
|
dt = 'tail_emission.html ' + locale.format('%.2f', datetime.datetime.now(timezone.utc).timestamp() - dt, grouping=True)+' seconds'
|
|
print(dt)
|
|
context = {'inflationxmr': inflationxmr, 'finflationxmr': finflationxmr, 'now_xmr': now_xmr, 'dates': dates}
|
|
return render(request, 'monerojnet/tail_emission.html', context)
|
|
|
|
def privacymarketcap(request):
|
|
dt = datetime.datetime.now(timezone.utc).timestamp()
|
|
data = DailyData.objects.order_by('date')
|
|
|
|
dates = []
|
|
marketcaps = []
|
|
xmr_marketcaps = []
|
|
now_marketcap = 0
|
|
now_dominance = 0
|
|
top_marketcap = 0
|
|
top_dominance = 0
|
|
|
|
for item in data:
|
|
marketcap = 0
|
|
dominance = 0
|
|
dates.append(datetime.datetime.strftime(item.date, '%Y-%m-%d'))
|
|
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)
|
|
dominance = marketcap*xmr_dominance.dominance/item.xmr_marketcap
|
|
except:
|
|
dominance = now_dominance
|
|
|
|
xmr_marketcaps.append(item.xmr_marketcap)
|
|
else:
|
|
xmr_marketcaps.append('')
|
|
|
|
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:
|
|
marketcaps.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) + '%'
|
|
|
|
dt = 'privacymarketcap.html ' + locale.format('%.2f', datetime.datetime.now(timezone.utc).timestamp() - dt, grouping=True)+' seconds'
|
|
print(dt)
|
|
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, 'monerojnet/privacymarketcap.html', context)
|
|
|
|
def privacydominance(request):
|
|
dt = datetime.datetime.now(timezone.utc).timestamp()
|
|
data = DailyData.objects.order_by('date')
|
|
|
|
dates = []
|
|
marketcaps = []
|
|
dominances = []
|
|
now_marketcap = 0
|
|
now_dominance = 0
|
|
top_marketcap = 0
|
|
top_dominance = 0
|
|
|
|
for item in data:
|
|
marketcap = 0
|
|
dominance = 0
|
|
dates.append(datetime.datetime.strftime(item.date, '%Y-%m-%d'))
|
|
if item.zcash_marketcap > 100000:
|
|
marketcap += item.zcash_marketcap
|
|
|
|
if item.dash_marketcap > 100000:
|
|
marketcap += item.dash_marketcap
|
|
|
|
if item.grin_marketcap > 100000:
|
|
marketcap += item.grin_marketcap
|
|
|
|
if item.xmr_marketcap > 100000:
|
|
marketcap += item.xmr_marketcap
|
|
try:
|
|
xmr_dominance = Dominance.objects.get(date=item.date)
|
|
dominance = marketcap*xmr_dominance.dominance/item.xmr_marketcap
|
|
except:
|
|
dominance = now_dominance
|
|
|
|
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 > 300000:
|
|
marketcaps.append(marketcap)
|
|
else:
|
|
marketcaps.append('')
|
|
|
|
if dominance > 0:
|
|
dominances.append(dominance)
|
|
else:
|
|
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) + '%'
|
|
|
|
dt = 'privacymarketcap.html ' + locale.format('%.2f', datetime.datetime.now(timezone.utc).timestamp() - dt, grouping=True)+' seconds'
|
|
print(dt)
|
|
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, 'monerojnet/privacydominance.html', context)
|
|
|
|
def monerodominance(request):
|
|
dt = datetime.datetime.now(timezone.utc).timestamp()
|
|
data = DailyData.objects.order_by('date')
|
|
|
|
dates = []
|
|
marketcaps = []
|
|
xmr_dominance = []
|
|
now_marketcap = 0
|
|
now_dominance = 0
|
|
top_marketcap = 0
|
|
top_dominance = 0
|
|
|
|
for item in data:
|
|
marketcap = 0
|
|
dominance = 0
|
|
dates.append(datetime.datetime.strftime(item.date, '%Y-%m-%d'))
|
|
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
|
|
dominance = 100*item.xmr_marketcap/marketcap
|
|
|
|
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:
|
|
marketcaps.append('')
|
|
|
|
if dominance > 0:
|
|
xmr_dominance.append(dominance)
|
|
else:
|
|
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) + '%'
|
|
|
|
dt = 'privacymarketcap.html ' + locale.format('%.2f', datetime.datetime.now(timezone.utc).timestamp() - dt, grouping=True)+' seconds'
|
|
print(dt)
|
|
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, 'monerojnet/monerodominance.html', context)
|
|
|
|
###########################################
|
|
# Previous functions / Older versions
|
|
###########################################
|
|
|
|
def sfmodel_old(request):
|
|
dt = datetime.datetime.now(timezone.utc).timestamp()
|
|
|
|
update = True
|
|
symbol = 'xmr'
|
|
|
|
yesterday = date.today() - timedelta(1)
|
|
start_time = datetime.datetime.strftime(yesterday, '%Y-%m-%d')
|
|
try:
|
|
coin = Coin.objects.filter(name=symbol).get(date=yesterday)
|
|
if coin:
|
|
if (coin.inflation > 0) and (coin.priceusd > 0):
|
|
update = False
|
|
else:
|
|
now = datetime.datetime.now()
|
|
current_time = int(now.strftime("%H"))
|
|
if current_time >= 3:
|
|
coin.delete()
|
|
update = True
|
|
else:
|
|
update = True
|
|
except:
|
|
update = True
|
|
|
|
if update:
|
|
#print('social')
|
|
check_new_social('Bitcoin')
|
|
check_new_social('Monero')
|
|
check_new_social('CryptoCurrency')
|
|
|
|
#print('metrics')
|
|
with open("settings.json") as file:
|
|
data = json.load(file)
|
|
file.close()
|
|
|
|
symbol = 'btc'
|
|
url = data["metrics_provider"][0]["metrics_url"] + symbol + data["metrics_provider"][0]["metrics"] + '&start_time=' + start_time
|
|
get_latest_metrics(symbol, url)
|
|
symbol = 'dash'
|
|
url = data["metrics_provider"][0]["metrics_url"] + symbol + data["metrics_provider"][0]["metrics"] + '&start_time=' + start_time
|
|
get_latest_metrics(symbol, url)
|
|
symbol = 'grin'
|
|
url = data["metrics_provider"][0]["metrics_url"] + symbol + data["metrics_provider"][0]["metrics"] + '&start_time=' + start_time
|
|
get_latest_metrics(symbol, url)
|
|
symbol = 'zec'
|
|
url = data["metrics_provider"][0]["metrics_url"] + symbol + data["metrics_provider"][0]["metrics"] + '&start_time=' + start_time
|
|
get_latest_metrics(symbol, url)
|
|
symbol = 'xmr'
|
|
url = data["metrics_provider"][0]["metrics_url"] + symbol + data["metrics_provider"][0]["metrics"] + '&start_time=' + start_time
|
|
get_latest_metrics(symbol, url)
|
|
#print('done')
|
|
|
|
timevar = 1283
|
|
now_price = 0
|
|
now_sf = 0
|
|
now_inflation = 0.001
|
|
v0 = 0.002
|
|
delta = (0.015 - 0.002)/(6*365)
|
|
count = 0
|
|
supply = 0
|
|
stock = 0.000001
|
|
dates = []
|
|
stock_to_flow = []
|
|
projection = []
|
|
color = []
|
|
values = []
|
|
|
|
sf_aux = 0
|
|
skipped = 0
|
|
start_inflation = 0
|
|
count2 = 0
|
|
coins = Coin.objects.order_by('date').filter(name=symbol)
|
|
for coin in coins:
|
|
dates.append(datetime.datetime.strftime(coin.date, '%Y-%m-%d'))
|
|
values.append(coin.priceusd)
|
|
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')
|
|
if date_aux2 < date_aux1:
|
|
lastprice = coin.priceusd
|
|
start_inflation = coin.inflation
|
|
current_inflation = start_inflation
|
|
projection.append('')
|
|
count2 = 0
|
|
else:
|
|
day = date_aux2 - timedelta(timevar)
|
|
coin_aux1 = Coin.objects.filter(name=symbol).get(date=day)
|
|
day = date_aux2 - timedelta(timevar+1)
|
|
coin_aux2 = Coin.objects.filter(name=symbol).get(date=day)
|
|
date_aux3 = datetime.datetime.strptime('2017-12-29', '%Y-%m-%d')
|
|
|
|
if date_aux3 + timedelta(int(count2*2)) < datetime.datetime.strptime('2021-07-03', '%Y-%m-%d'):
|
|
day = date_aux3 + timedelta(int(count2*2))
|
|
coin_aux3 = Coin.objects.filter(name=symbol).get(date=day)
|
|
if coin_aux3:
|
|
if (coin_aux3.inflation/current_inflation) > 1.2 or (coin_aux3.inflation/current_inflation) < 0.8:
|
|
coin_aux3.inflation = current_inflation
|
|
else:
|
|
current_inflation = coin_aux3.inflation
|
|
supply2 = supply
|
|
else:
|
|
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
|
|
|
|
if coin_aux1 and coin_aux2:
|
|
lastprice += (coin_aux1.priceusd/coin_aux2.priceusd-1)*lastprice
|
|
actualprice = lastprice*(math.sqrt(start_inflation/current_inflation))
|
|
projection.append(actualprice)
|
|
if skipped < 12:
|
|
projection.append(actualprice)
|
|
else:
|
|
skipped = 0
|
|
else:
|
|
projection.append('')
|
|
skipped += 1
|
|
|
|
if coin.priceusd < 0.01:
|
|
coin.priceusd = 0.01
|
|
if coin.stocktoflow > sf_aux*2+250:
|
|
coin.stocktoflow = sf_aux
|
|
sf_aux = coin.stocktoflow
|
|
if coin.stocktoflow < 0.1:
|
|
coin.stocktoflow = 0.1
|
|
now_inflation = coin.inflation
|
|
now_price = coin.priceusd
|
|
now_sf = coin.stocktoflow
|
|
new_color = 30*coin.pricebtc/(count*delta + v0)
|
|
color.append(new_color)
|
|
supply = int(coin.supply)*10**12
|
|
stock_to_flow.append(coin.stocktoflow)
|
|
count += 1
|
|
count2 += 1
|
|
|
|
count = 0
|
|
for count in range(650):
|
|
date_now = date.today() + timedelta(count)
|
|
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)
|
|
inflation = 100*reward*720*365/supply
|
|
stock = (100/(inflation))**1.65
|
|
stock_to_flow.append(stock)
|
|
|
|
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)+'%'
|
|
|
|
dt = 'sfmodel.html ' + locale.format('%.2f', datetime.datetime.now(timezone.utc).timestamp() - dt, grouping=True)+' seconds'
|
|
print(dt)
|
|
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, 'monerojnet/sfmodel.html', context)
|
|
|
|
def sfmodellin_old(request):
|
|
dt = datetime.datetime.now(timezone.utc).timestamp()
|
|
symbol = 'xmr'
|
|
now_price = 0
|
|
now_sf = 0
|
|
now_inflation = 0.001
|
|
v0 = 0.002
|
|
delta = (0.015 - 0.002)/(6*365)
|
|
count = 0
|
|
maximum = 0
|
|
supply = 0
|
|
stock = 0.000001
|
|
dates = []
|
|
stock_to_flow = []
|
|
color = []
|
|
values = []
|
|
|
|
sf_aux = 0
|
|
coins = Coin.objects.order_by('date').filter(name=symbol)
|
|
for coin in coins:
|
|
dates.append(datetime.datetime.strftime(coin.date, '%Y-%m-%d'))
|
|
values.append(coin.priceusd)
|
|
now_inflation = coin.inflation
|
|
now_price = coin.priceusd
|
|
now_sf = coin.stocktoflow
|
|
lastprice = coin.priceusd
|
|
if now_price > maximum:
|
|
maximum = now_price
|
|
new_color = 30*coin.pricebtc/(count*delta + v0)
|
|
color.append(new_color)
|
|
supply = int(coin.supply)*10**12
|
|
if coin.stocktoflow > sf_aux*2+250:
|
|
coin.stocktoflow = sf_aux
|
|
sf_aux = coin.stocktoflow
|
|
stock_to_flow.append(coin.stocktoflow)
|
|
count += 1
|
|
|
|
count = 0
|
|
for count in range(1):
|
|
date_now = date.today() + timedelta(count)
|
|
dates.append(datetime.datetime.strftime(date_now, '%Y-%m-%d'))
|
|
day = date_now - timedelta(1700)
|
|
coin_aux1 = Coin.objects.filter(name=symbol).get(date=day)
|
|
day = date_now - timedelta(1701)
|
|
coin_aux2 = Coin.objects.filter(name=symbol).get(date=day)
|
|
if coin_aux1 and coin_aux2:
|
|
lastprice += (coin_aux1.priceusd/coin_aux2.priceusd-1)*lastprice*0.75
|
|
reward = (2**64 -1 - supply) >> 19
|
|
if reward < 0.6*(10**12):
|
|
reward = 0.6*( 10**12)
|
|
supply += int(720*reward)
|
|
stock = (100/(100*reward*720*365/supply))**1.65
|
|
stock_to_flow.append(stock)
|
|
|
|
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)+'%'
|
|
|
|
dt = 'sfmodellin.html ' + locale.format('%.2f', datetime.datetime.now(timezone.utc).timestamp() - dt, grouping=True)+' seconds'
|
|
print(dt)
|
|
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, 'monerojnet/sfmodellin.html', context)
|
|
|
|
def dailyemission_old(request):
|
|
dt = datetime.datetime.now(timezone.utc).timestamp()
|
|
coins_btc = Coin.objects.order_by('date').filter(name='btc')
|
|
|
|
emissionbtc = []
|
|
emissionxmr = []
|
|
dates = []
|
|
now_btc = 0
|
|
now_xmr = 0
|
|
high_btc = 0
|
|
high_xmr = 0
|
|
supplybtc = 0
|
|
supplyxmr = 0
|
|
valuebtc = 0
|
|
valuexmr = 0
|
|
|
|
for coin_btc in coins_btc:
|
|
valuebtc = (coin_btc.supply - supplybtc)*coin_btc.priceusd
|
|
if valuebtc < 1000:
|
|
emissionbtc.append('')
|
|
else:
|
|
emissionbtc.append(valuebtc)
|
|
supplybtc = coin_btc.supply
|
|
dates.append(datetime.datetime.strftime(coin_btc.date, '%Y-%m-%d'))
|
|
coins_xmr = Coin.objects.filter(name='xmr').filter(date=coin_btc.date)
|
|
if coins_xmr:
|
|
for coin_xmr in coins_xmr:
|
|
valuexmr = (coin_xmr.supply - supplyxmr)*coin_xmr.priceusd
|
|
supplyxmr = coin_xmr.supply
|
|
if valuexmr < 1000:
|
|
emissionxmr.append('')
|
|
else:
|
|
emissionxmr.append(valuexmr)
|
|
now_xmr = valuexmr
|
|
if valuexmr > high_xmr:
|
|
high_xmr = valuexmr
|
|
else:
|
|
emissionxmr.append('')
|
|
now_btc = valuebtc
|
|
if valuebtc > high_btc:
|
|
high_btc = int(valuebtc)
|
|
|
|
for i in range(500):
|
|
date_aux = coin_btc.date + timedelta(i)
|
|
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)
|
|
|
|
dt = 'dailyemission.html ' + locale.format('%.2f', datetime.datetime.now(timezone.utc).timestamp() - dt, grouping=True)+' seconds'
|
|
print(dt)
|
|
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, 'monerojnet/dailyemission.html', context)
|
|
|
|
def dailyemissionntv_old(request):
|
|
dt = datetime.datetime.now(timezone.utc).timestamp()
|
|
coins_btc = Coin.objects.order_by('date').filter(name='btc')
|
|
|
|
emissionbtc = []
|
|
emissionxmr = []
|
|
dates = []
|
|
now_btc = 0
|
|
now_xmr = 0
|
|
supply_btc = 0
|
|
supply_xmr = 0
|
|
|
|
for coin_btc in coins_btc:
|
|
dates.append(datetime.datetime.strftime(coin_btc.date, '%Y-%m-%d'))
|
|
valuebtc = coin_btc.supply - supply_btc
|
|
if valuebtc < 0.000001:
|
|
emissionbtc.append('')
|
|
else:
|
|
emissionbtc.append(valuebtc)
|
|
now_btc = valuebtc
|
|
supply_btc = coin_btc.supply
|
|
coins_xmr = Coin.objects.filter(name='xmr').filter(date=coin_btc.date)
|
|
if coins_xmr:
|
|
for coin_xmr in coins_xmr:
|
|
valuexmr = coin_xmr.supply - supply_xmr
|
|
if valuexmr < 0.000001:
|
|
emissionxmr.append('')
|
|
else:
|
|
emissionxmr.append(valuexmr)
|
|
now_xmr = valuexmr
|
|
supply_xmr = coin_xmr.supply
|
|
else:
|
|
emissionxmr.append('')
|
|
|
|
for i in range(500):
|
|
date_aux = coin_btc.date + timedelta(i)
|
|
dates.append(datetime.datetime.strftime(date_aux, '%Y-%m-%d'))
|
|
emissionbtc.append('')
|
|
emissionxmr.append('')
|
|
|
|
now_btc = locale.format('%.0f', now_btc, grouping=True)
|
|
now_xmr = locale.format('%.0f', now_xmr, grouping=True)
|
|
|
|
dt = 'dailyemissionntv.html ' + locale.format('%.2f', datetime.datetime.now(timezone.utc).timestamp() - dt, grouping=True)+' seconds'
|
|
print(dt)
|
|
context = {'emissionxmr': emissionxmr, 'emissionbtc': emissionbtc, 'now_xmr': now_xmr, 'now_btc': now_btc, 'dates': dates}
|
|
return render(request, 'monerojnet/dailyemissionntv.html', context)
|
|
|
|
def compinflation_old(request):
|
|
dt = datetime.datetime.now(timezone.utc).timestamp()
|
|
coins_btc = Coin.objects.order_by('date').filter(name='btc')
|
|
|
|
dates = []
|
|
inflationxmr = []
|
|
inflationdash = []
|
|
inflationgrin = []
|
|
inflationzcash = []
|
|
inflationbtc = []
|
|
now_xmr = 999999
|
|
now_dash = 999999
|
|
now_grin = 999999
|
|
now_zcash = 999999
|
|
now_btc = 999999
|
|
count = 0
|
|
|
|
for coin_btc in coins_btc:
|
|
count += 1
|
|
if coin_btc.inflation > 0.1:
|
|
inflationbtc.append(coin_btc.inflation)
|
|
else:
|
|
inflationbtc.append('')
|
|
dates.append(datetime.datetime.strftime(coin_btc.date, '%Y-%m-%d'))
|
|
if count < 1750:
|
|
inflationdash.append('')
|
|
inflationxmr.append('')
|
|
else:
|
|
coins_dash = Coin.objects.filter(name='dash').filter(date=coin_btc.date)
|
|
if coins_dash:
|
|
for coin_dash in coins_dash:
|
|
if coin_dash.inflation > 0.1:
|
|
inflationdash.append(coin_dash.inflation)
|
|
else:
|
|
inflationdash.append('')
|
|
else:
|
|
inflationdash.append('')
|
|
coins_xmr = Coin.objects.filter(name='xmr').filter(date=coin_btc.date)
|
|
if coins_xmr:
|
|
for coin_xmr in coins_xmr:
|
|
if coin_xmr.inflation > 0.1:
|
|
inflationxmr.append(coin_xmr.inflation)
|
|
else:
|
|
inflationxmr.append('')
|
|
else:
|
|
inflationxmr.append('')
|
|
|
|
if count < 2800:
|
|
inflationzcash.append('')
|
|
else:
|
|
coins_zcash = Coin.objects.filter(name='zec').filter(date=coin_btc.date)
|
|
if coins_zcash:
|
|
for coin_zcash in coins_zcash:
|
|
if coin_zcash.inflation > 0.1:
|
|
inflationzcash.append(coin_zcash.inflation)
|
|
else:
|
|
inflationzcash.append('')
|
|
else:
|
|
inflationzcash.append('')
|
|
|
|
if count < 3600:
|
|
inflationgrin.append('')
|
|
else:
|
|
coins_grin = Coin.objects.filter(name='grin').filter(date=coin_btc.date)
|
|
if coins_grin:
|
|
for coin_grin in coins_grin:
|
|
if coin_grin.inflation > 0.1:
|
|
inflationgrin.append(coin_grin.inflation)
|
|
else:
|
|
inflationgrin.append('')
|
|
else:
|
|
inflationgrin.append('')
|
|
|
|
if count > 4300:
|
|
now_grin = coin_grin.inflation
|
|
now_zcash = coin_zcash.inflation
|
|
now_btc = coin_btc.inflation
|
|
now_xmr = coin_xmr.inflation
|
|
now_dash = coin_dash.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) + '%'
|
|
|
|
dt = 'compinflation.html ' + locale.format('%.2f', datetime.datetime.now(timezone.utc).timestamp() - dt, grouping=True)+' seconds'
|
|
print(dt)
|
|
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, 'now_btc': now_btc, 'dates': dates}
|
|
return render(request, 'monerojnet/compinflation.html', context)
|
|
|
|
def bitcoin_old(request):
|
|
dt = datetime.datetime.now(timezone.utc).timestamp()
|
|
dates = []
|
|
dates3 = []
|
|
dates4 = []
|
|
btc = []
|
|
xmr3 = []
|
|
count1 = 0
|
|
count3 = 0
|
|
now_xmr = 0
|
|
now_btc = 0
|
|
|
|
coins_btc = Coin.objects.order_by('date').filter(name='btc')
|
|
for coin_btc in coins_btc:
|
|
if coin_btc.priceusd:
|
|
if count1 > 325: #450
|
|
btc.append(coin_btc.priceusd/30)
|
|
now_btc = coin_btc.priceusd/30
|
|
dates.append(count1)
|
|
count1 += 1 #1.4
|
|
elif count1 <= 325: #450
|
|
continue
|
|
else:
|
|
btc.append('')
|
|
|
|
coins_xmr = Coin.objects.order_by('date').filter(name='xmr')
|
|
|
|
for coin_xmr in coins_xmr:
|
|
if coin_xmr.priceusd:
|
|
if count3 > 30:
|
|
xmr3.append(coin_xmr.priceusd/5.01)
|
|
dates4.append(count3)
|
|
count3 += 0.82
|
|
elif count3 <= 30:
|
|
continue
|
|
else:
|
|
xmr3.append('')
|
|
|
|
dates2 = []
|
|
xmr2 = []
|
|
btc2 = []
|
|
|
|
for coin_btc in coins_btc:
|
|
if coin_btc.priceusd:
|
|
if coin_btc.priceusd/30 > 0.02:
|
|
btc2.append(coin_btc.priceusd/30)
|
|
else:
|
|
btc2.append('')
|
|
else:
|
|
btc2.append('')
|
|
dates2.append(datetime.datetime.strftime(coin_btc.date, '%Y-%m-%d'))
|
|
coins_xmr = Coin.objects.filter(name='xmr').filter(date=coin_btc.date)
|
|
if coins_xmr:
|
|
for coin_xmr in coins_xmr:
|
|
if coin_xmr.priceusd/5.01 > 0.02:
|
|
xmr2.append(coin_xmr.priceusd/5.01)
|
|
else:
|
|
xmr2.append('')
|
|
else:
|
|
xmr2.append('')
|
|
|
|
now_btc = locale.format('%.2f', now_btc, grouping=True)
|
|
now_xmr = locale.format('%.2f', now_xmr, grouping=True)
|
|
|
|
dt = 'bitcoin.html ' + locale.format('%.2f', datetime.datetime.now(timezone.utc).timestamp() - dt, grouping=True)+' seconds'
|
|
print(dt)
|
|
context = {'btc': btc, 'xmr2': xmr2, 'btc2': btc2, 'xmr3': xmr3, 'dates': dates, 'dates2': dates2, 'dates3': dates3, 'dates4': dates4}
|
|
return render(request, 'monerojnet/bitcoin.html', context)
|
|
|
|
def coins_old(request):
|
|
dt = datetime.datetime.now(timezone.utc).timestamp()
|
|
coins_btc = Coin.objects.order_by('date').filter(name='btc')
|
|
|
|
supplyxmr = []
|
|
supplybtc = []
|
|
fsupplyxmr = []
|
|
fsupplybtc = []
|
|
dates = []
|
|
now_xmr = 0
|
|
now_btc = 0
|
|
|
|
for coin_btc in coins_btc:
|
|
supplybtc.append(int(coin_btc.supply))
|
|
dates.append(datetime.datetime.strftime(coin_btc.date, '%Y-%m-%d'))
|
|
coins_xmr = Coin.objects.filter(name='xmr').filter(date=coin_btc.date)
|
|
if coins_xmr:
|
|
for coin_xmr in coins_xmr:
|
|
supplyxmr.append(int(coin_xmr.supply))
|
|
if coin_xmr.supply > now_xmr:
|
|
now_xmr = int(coin_xmr.supply)
|
|
else:
|
|
supplyxmr.append('')
|
|
if coin_btc.supply > now_btc:
|
|
now_btc = int(coin_btc.supply)
|
|
fsupplyxmr.append('')
|
|
fsupplybtc.append('')
|
|
|
|
rewardbtc = 900
|
|
supplybitcoin = coin_btc.supply
|
|
supply = int(coin_xmr.supply)*10**12
|
|
for i in range(365*(2060-2020)):
|
|
supply = int(supply)
|
|
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))
|
|
date_aux = coin_btc.date + timedelta(i)
|
|
dates.append(datetime.datetime.strftime(date_aux, '%Y-%m-%d'))
|
|
supplybitcoin += rewardbtc
|
|
if supplybitcoin > 21000000:
|
|
supplybitcoin = 21000000
|
|
fsupplybtc.append(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':
|
|
rewardbtc = 0
|
|
supplybitcoin = 21000000
|
|
supplyxmr.append('')
|
|
supplybtc.append('')
|
|
|
|
now_btc = locale.format('%.0f', now_btc, grouping=True)
|
|
now_xmr = locale.format('%.0f', now_xmr, grouping=True)
|
|
|
|
dt = 'coins.html ' + locale.format('%.2f', datetime.datetime.now(timezone.utc).timestamp() - dt, grouping=True)+' seconds'
|
|
print(dt)
|
|
context = {'supplyxmr': supplyxmr, 'supplybtc': supplybtc, 'fsupplyxmr': fsupplyxmr, 'fsupplybtc': fsupplybtc, 'now_xmr': now_xmr, 'now_btc': now_btc, 'dates': dates}
|
|
return render(request, 'monerojnet/coins.html', context)
|
|
|
|
def inflation_old(request):
|
|
dt = datetime.datetime.now(timezone.utc).timestamp()
|
|
coins_btc = Coin.objects.order_by('date').filter(name='btc')
|
|
|
|
inflationxmr = []
|
|
inflationbtc = []
|
|
finflationxmr = []
|
|
finflationbtc = []
|
|
dates = []
|
|
now_xmr = 999999
|
|
now_btc = 999999
|
|
|
|
for coin_btc in coins_btc:
|
|
if float(coin_btc.inflation) > 0.1:
|
|
inflationbtc.append(float(coin_btc.inflation))
|
|
now_btc = float(coin_btc.inflation)
|
|
else:
|
|
inflationbtc.append('')
|
|
dates.append(datetime.datetime.strftime(coin_btc.date, '%Y-%m-%d'))
|
|
coins_xmr = Coin.objects.order_by('date').filter(name='xmr').filter(date=coin_btc.date)
|
|
if coins_xmr:
|
|
for coin_xmr in coins_xmr:
|
|
inflationxmr.append(float(coin_xmr.inflation))
|
|
now_xmr = float(coin_xmr.inflation)
|
|
else:
|
|
inflationxmr.append('')
|
|
finflationxmr.append('')
|
|
finflationbtc.append('')
|
|
|
|
inflationbitcoin = 1.75
|
|
supply = int(coin_xmr.supply)*10**12
|
|
for i in range(2000):
|
|
supply = int(supply)
|
|
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)
|
|
date_aux = coin_btc.date + timedelta(i)
|
|
dates.append(datetime.datetime.strftime(date_aux, '%Y-%m-%d'))
|
|
finflationbtc.append(inflationbitcoin)
|
|
date_aux2 = datetime.datetime.strftime(date_aux, '%Y-%m-%d')
|
|
if date_aux2 == '2024-04-23':
|
|
inflationbitcoin = 0.65
|
|
inflationxmr.append('')
|
|
inflationbtc.append('')
|
|
|
|
now_btc = locale.format('%.2f', now_btc, grouping=True) + '%'
|
|
now_xmr = locale.format('%.2f', now_xmr, grouping=True) + '%'
|
|
|
|
dt = 'inflation.html ' + locale.format('%.2f', datetime.datetime.now(timezone.utc).timestamp() - dt, grouping=True)+' seconds'
|
|
print(dt)
|
|
context = {'inflationxmr': inflationxmr, 'inflationbtc': inflationbtc, 'finflationxmr': finflationxmr, 'finflationbtc': finflationbtc, 'now_xmr': now_xmr, 'now_btc': now_btc, 'dates': dates}
|
|
return render(request, 'monerojnet/inflation.html', context)
|
|
|
|
def extracoins_old(request):
|
|
dt = datetime.datetime.now(timezone.utc).timestamp()
|
|
coins_btc = Coin.objects.order_by('date').filter(name='btc')
|
|
|
|
nsupply = []
|
|
fsupply = []
|
|
dates = []
|
|
now_diff = 0
|
|
|
|
for coin_btc in coins_btc:
|
|
dates.append(datetime.datetime.strftime(coin_btc.date, '%Y-%m-%d'))
|
|
coins_xmr = Coin.objects.order_by('date').filter(name='xmr').filter(date=coin_btc.date)
|
|
if coins_xmr:
|
|
for coin_xmr in coins_xmr:
|
|
nsupply.append(int(- coin_xmr.supply + coin_btc.supply))
|
|
now_diff = int(- coin_xmr.supply + coin_btc.supply)
|
|
else:
|
|
nsupply.append(int(coin_btc.supply))
|
|
fsupply.append('')
|
|
|
|
rewardbtc = 900
|
|
supplybitcoin = coin_btc.supply
|
|
supply = int(coin_xmr.supply)*10**12
|
|
for i in range(365*(2060-2020)):
|
|
supply = int(supply)
|
|
reward = (2**64 -1 - supply) >> 19
|
|
if reward < 0.6*(10**12):
|
|
reward = 0.6*(10**12)
|
|
supply += int(720*reward)
|
|
date_aux = coin_btc.date + timedelta(i)
|
|
dates.append(datetime.datetime.strftime(date_aux, '%Y-%m-%d'))
|
|
supplybitcoin += rewardbtc
|
|
if supplybitcoin > 21000000:
|
|
supplybitcoin = 21000000
|
|
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':
|
|
rewardbtc = 0
|
|
supplybitcoin = 21000000
|
|
nsupply.append('')
|
|
|
|
now_diff = locale.format('%.0f', now_diff, grouping=True)
|
|
|
|
dt = 'extracoins.html ' + locale.format('%.2f', datetime.datetime.now(timezone.utc).timestamp() - dt, grouping=True)+' seconds'
|
|
print(dt)
|
|
context = {'nsupply': nsupply, 'fsupply': fsupply, 'dates': dates, 'now_diff': now_diff}
|
|
return render(request, 'monerojnet/extracoins.html', context)
|
|
|
|
def transcost_old(request):
|
|
dt = datetime.datetime.now(timezone.utc).timestamp()
|
|
coins_btc = Coin.objects.order_by('date').filter(name='btc')
|
|
|
|
costbtc = []
|
|
costxmr = []
|
|
dates = []
|
|
now_btc = 0
|
|
now_xmr = 0
|
|
|
|
for coin_btc in coins_btc:
|
|
dates.append(datetime.datetime.strftime(coin_btc.date, '%Y-%m-%d'))
|
|
if coin_btc.transactions == 0:
|
|
costbtc.append('')
|
|
else:
|
|
valuebtc = coin_btc.fee*coin_btc.priceusd/coin_btc.transactions
|
|
if valuebtc < 0.0001:
|
|
costbtc.append('')
|
|
else:
|
|
costbtc.append(valuebtc)
|
|
now_btc = valuebtc
|
|
coins_xmr = Coin.objects.filter(name='xmr').filter(date=coin_btc.date)
|
|
if coins_xmr:
|
|
for coin_xmr in coins_xmr:
|
|
if coin_xmr.transactions == 0:
|
|
costxmr.append('')
|
|
else:
|
|
valuexmr = coin_xmr.fee*coin_xmr.priceusd/coin_xmr.transactions
|
|
if valuexmr < 0.0001:
|
|
costxmr.append('')
|
|
else:
|
|
costxmr.append(valuexmr)
|
|
now_xmr = valuexmr
|
|
else:
|
|
costxmr.append('')
|
|
costxmr2.append('')
|
|
|
|
for i in range(500):
|
|
date_aux = coin_btc.date + timedelta(i)
|
|
dates.append(datetime.datetime.strftime(date_aux, '%Y-%m-%d'))
|
|
costbtc.append('')
|
|
costxmr.append('')
|
|
|
|
now_btc = "$" + locale.format('%.2f', now_btc, grouping=True)
|
|
now_xmr = "$" + locale.format('%.2f', now_xmr, grouping=True)
|
|
|
|
dt = 'transcost.html ' + locale.format('%.2f', datetime.datetime.now(timezone.utc).timestamp() - dt, grouping=True)+' seconds'
|
|
print(dt)
|
|
context = {'costxmr': costxmr, 'costbtc': costbtc, 'now_xmr': now_xmr, 'now_btc': now_btc, 'dates': dates}
|
|
return render(request, 'monerojnet/transcost.html', context)
|
|
|
|
def transcostntv_old(request):
|
|
dt = datetime.datetime.now(timezone.utc).timestamp()
|
|
coins_btc = Coin.objects.order_by('date').filter(name='btc')
|
|
|
|
costbtc = []
|
|
costxmr = []
|
|
dates = []
|
|
now_btc = 0
|
|
now_xmr = 0
|
|
|
|
for coin_btc in coins_btc:
|
|
dates.append(datetime.datetime.strftime(coin_btc.date, '%Y-%m-%d'))
|
|
if coin_btc.transactions == 0:
|
|
costbtc.append('')
|
|
else:
|
|
valuebtc = coin_btc.fee/coin_btc.transactions
|
|
if valuebtc < 0.000001:
|
|
costbtc.append('')
|
|
else:
|
|
costbtc.append(valuebtc)
|
|
now_btc = valuebtc
|
|
coins_xmr = Coin.objects.filter(name='xmr').filter(date=coin_btc.date)
|
|
if coins_xmr:
|
|
for coin_xmr in coins_xmr:
|
|
if coin_xmr.transactions == 0:
|
|
costxmr.append('')
|
|
else:
|
|
valuexmr = coin_xmr.fee/coin_xmr.transactions
|
|
if valuexmr < 0.000001:
|
|
costxmr.append('')
|
|
else:
|
|
costxmr.append(valuexmr)
|
|
now_xmr = valuexmr
|
|
else:
|
|
costxmr.append('')
|
|
|
|
for i in range(500):
|
|
date_aux = coin_btc.date + timedelta(i)
|
|
dates.append(datetime.datetime.strftime(date_aux, '%Y-%m-%d'))
|
|
costbtc.append('')
|
|
costxmr.append('')
|
|
|
|
now_btc = locale.format('%.6f', now_btc, grouping=True)
|
|
now_xmr = locale.format('%.6f', now_xmr, grouping=True)
|
|
|
|
dt = 'transcostntv.html ' + locale.format('%.2f', datetime.datetime.now(timezone.utc).timestamp() - dt, grouping=True)+' seconds'
|
|
print(dt)
|
|
context = {'costxmr': costxmr, 'costbtc': costbtc, 'now_xmr': now_xmr, 'now_btc': now_btc, 'dates': dates}
|
|
return render(request, 'monerojnet/transcostntv.html', context)
|
|
|
|
def metcalfesats_old(request):
|
|
dt = datetime.datetime.now(timezone.utc).timestamp()
|
|
symbol = 'xmr'
|
|
color = []
|
|
metcalfe = []
|
|
prices = []
|
|
dates = []
|
|
now_metcalfe = 0
|
|
now_price = 0
|
|
maximum = 0
|
|
v0 = 0.002
|
|
delta = (0.015 - 0.002)/(6*365)
|
|
count = 0
|
|
|
|
coins = Coin.objects.order_by('date').filter(name=symbol)
|
|
for coin in coins:
|
|
coins_aux = Coin.objects.order_by('date').filter(name='btc').filter(date=coin.date)
|
|
if coin.transactions < 500:
|
|
coin.transactions = 500
|
|
if coins_aux:
|
|
for coin_aux in coins_aux:
|
|
if coin_aux.supply > 0 and coin_aux.transactions > 0:
|
|
now_metcalfe = coin.transactions*coin.supply/(coin_aux.supply*coin_aux.transactions)
|
|
if now_metcalfe < 0.001:
|
|
now_metcalfe = 0.001
|
|
metcalfe.append(now_metcalfe)
|
|
if now_metcalfe > maximum:
|
|
maximum = now_metcalfe
|
|
if coin.pricebtc > 0:
|
|
now_price = coin.pricebtc
|
|
prices.append(coin.pricebtc)
|
|
new_color = 30*coin.pricebtc/(count*delta + v0)
|
|
color.append(new_color)
|
|
coin.date = datetime.datetime.strftime(coin.date, '%Y-%m-%d')
|
|
dates.append(coin.date)
|
|
count += 1
|
|
|
|
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'
|
|
|
|
dt = 'metcalfesats.html ' + locale.format('%.2f', datetime.datetime.now(timezone.utc).timestamp() - dt, grouping=True)+' seconds'
|
|
print(dt)
|
|
context = {'metcalfe': metcalfe, 'dates': dates, 'maximum': maximum, 'now_metcalfe': now_metcalfe, 'color': color, 'prices': prices, 'now_price': now_price}
|
|
return render(request, 'monerojnet/metcalfesats.html', context)
|
|
|
|
def metcalfeusd_old(request):
|
|
dt = datetime.datetime.now(timezone.utc).timestamp()
|
|
symbol = 'xmr'
|
|
color = []
|
|
metcalfe = []
|
|
prices = []
|
|
dates = []
|
|
now_metcalfe = 0
|
|
now_price = 0
|
|
maximum = 0
|
|
v0 = 0.002
|
|
delta = (0.015 - 0.002)/(6*365)
|
|
count = 0
|
|
|
|
coins = Coin.objects.order_by('date').filter(name=symbol)
|
|
for coin in coins:
|
|
coins_aux = Coin.objects.order_by('date').filter(name='btc').filter(date=coin.date)
|
|
if coin.transactions < 500:
|
|
coin.transactions = 500
|
|
if coins_aux:
|
|
for coin_aux in coins_aux:
|
|
if coin_aux.supply > 0 and coin_aux.transactions > 0:
|
|
now_metcalfe = coin_aux.priceusd*coin.transactions*coin.supply/(coin_aux.supply*coin_aux.transactions)
|
|
if now_metcalfe < 0.23:
|
|
now_metcalfe = 0.23
|
|
metcalfe.append(now_metcalfe)
|
|
if now_metcalfe > maximum:
|
|
maximum = now_metcalfe
|
|
if coin.priceusd > 0:
|
|
now_price = coin.priceusd
|
|
prices.append(now_price)
|
|
new_color = 30*coin.pricebtc/(count*delta + v0)
|
|
color.append(new_color)
|
|
coin.date = datetime.datetime.strftime(coin.date, '%Y-%m-%d')
|
|
dates.append(coin.date)
|
|
count += 1
|
|
|
|
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)
|
|
|
|
dt = 'metcalfeusd.html ' + locale.format('%.2f', datetime.datetime.now(timezone.utc).timestamp() - dt, grouping=True)+' seconds'
|
|
print(dt)
|
|
context = {'metcalfe': metcalfe, 'dates': dates, 'maximum': maximum, 'now_metcalfe': now_metcalfe, 'color': color, 'prices': prices, 'now_price': now_price}
|
|
return render(request, 'monerojnet/metcalfeusd.html', context)
|
|
|
|
def minerrevcap_old(request):
|
|
dt = datetime.datetime.now(timezone.utc).timestamp()
|
|
coins_btc = Coin.objects.order_by('date').filter(name='btc')
|
|
|
|
costbtc = []
|
|
costxmr = []
|
|
dates = []
|
|
now_btc = 0
|
|
now_xmr = 0
|
|
|
|
for coin_btc in coins_btc:
|
|
dates.append(datetime.datetime.strftime(coin_btc.date, '%Y-%m-%d'))
|
|
if coin_btc.supply == 0:
|
|
valuebtc = 0
|
|
else:
|
|
valuebtc = 365*100*coin_btc.revenue/coin_btc.supply
|
|
if valuebtc < 0.0000001:
|
|
costbtc.append('')
|
|
else:
|
|
costbtc.append(valuebtc)
|
|
now_btc = valuebtc
|
|
coins_xmr = Coin.objects.filter(name='xmr').filter(date=coin_btc.date)
|
|
if coins_xmr:
|
|
for coin_xmr in coins_xmr:
|
|
if coin_xmr.supply == 0:
|
|
valuexmr = 0
|
|
else:
|
|
valuexmr = 365*100*coin_xmr.revenue/coin_xmr.supply
|
|
if valuexmr < 0.0000001:
|
|
costxmr.append('')
|
|
else:
|
|
costxmr.append(valuexmr)
|
|
now_xmr = valuexmr
|
|
else:
|
|
costxmr.append('')
|
|
|
|
for i in range(500):
|
|
date_aux = coin_btc.date + timedelta(i)
|
|
dates.append(datetime.datetime.strftime(date_aux, '%Y-%m-%d'))
|
|
costbtc.append('')
|
|
costxmr.append('')
|
|
|
|
now_btc = locale.format('%.2f', now_btc, grouping=True) + "%"
|
|
now_xmr = locale.format('%.2f', now_xmr, grouping=True) + "%"
|
|
|
|
dt = 'minerrevcap.html ' + locale.format('%.2f', datetime.datetime.now(timezone.utc).timestamp() - dt, grouping=True)+' seconds'
|
|
print(dt)
|
|
context = {'costxmr': costxmr, 'costbtc': costbtc, 'now_xmr': now_xmr, 'now_btc': now_btc, 'dates': dates}
|
|
return render(request, 'monerojnet/minerrevcap.html', context)
|
|
|
|
def marketcap_old(request):
|
|
dt = datetime.datetime.now(timezone.utc).timestamp()
|
|
dates = []
|
|
xmr = []
|
|
dash = []
|
|
grin = []
|
|
zcash = []
|
|
now_xmr = 0
|
|
now_dash = 0
|
|
now_grin = 0
|
|
now_zcash = 0
|
|
|
|
coins_xmr = Coin.objects.order_by('date').filter(name='xmr')
|
|
for coin_xmr in coins_xmr:
|
|
dates.append(datetime.datetime.strftime(coin_xmr.date, '%Y-%m-%d'))
|
|
if coin_xmr.priceusd:
|
|
xmr.append(coin_xmr.priceusd*coin_xmr.supply)
|
|
now_xmr = coin_xmr.priceusd*coin_xmr.supply
|
|
else:
|
|
xmr.append('')
|
|
|
|
try:
|
|
coin_dash = Coin.objects.filter(name='dash').get(date=coin_xmr.date)
|
|
now_dash = coin_dash.priceusd*coin_dash.supply
|
|
if now_dash > 1000000:
|
|
dash.append(now_dash)
|
|
else:
|
|
dash.append('')
|
|
except:
|
|
dash.append('')
|
|
|
|
try:
|
|
coin_zcash = Coin.objects.filter(name='zec').get(date=coin_xmr.date)
|
|
now_zcash = coin_zcash.priceusd*coin_zcash.supply
|
|
if now_zcash > 1000000:
|
|
zcash.append(now_zcash)
|
|
else:
|
|
zcash.append('')
|
|
except:
|
|
zcash.append('')
|
|
|
|
try:
|
|
coin_grin = Coin.objects.filter(name='grin').get(date=coin_xmr.date)
|
|
now_grin = coin_grin.priceusd*coin_grin.supply
|
|
if now_grin > 1000000:
|
|
grin.append(now_grin)
|
|
else:
|
|
grin.append('')
|
|
except:
|
|
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)
|
|
|
|
dt = 'marketcap.html ' + locale.format('%.2f', datetime.datetime.now(timezone.utc).timestamp() - dt, grouping=True)+' seconds'
|
|
print(dt)
|
|
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, 'monerojnet/marketcap.html', context)
|
|
|
|
def social_old(request):
|
|
dt = datetime.datetime.now(timezone.utc).timestamp()
|
|
dates = []
|
|
dates2 = []
|
|
social_xmr = []
|
|
social_crypto = []
|
|
social_btc = []
|
|
last_xmr = 0
|
|
last_btc = 0
|
|
last_crypto = 0
|
|
socials = Social.objects.order_by('date').filter(name='Bitcoin')
|
|
for social in socials:
|
|
dates.append(datetime.datetime.strftime(social.date, '%Y-%m-%d'))
|
|
if social.subscriberCount > last_btc:
|
|
last_btc = social.subscriberCount
|
|
social_btc.append(social.subscriberCount)
|
|
else:
|
|
social_btc.append(last_btc)
|
|
socialscrypto = Social.objects.filter(date=social.date).filter(name='CryptoCurrency')
|
|
if socialscrypto:
|
|
for socialcrypto in socialscrypto:
|
|
if socialcrypto.subscriberCount > last_crypto:
|
|
social_crypto.append(socialcrypto.subscriberCount)
|
|
last_crypto = socialcrypto.subscriberCount
|
|
else:
|
|
social_crypto.append(last_crypto)
|
|
else:
|
|
social_crypto.append(last_crypto)
|
|
|
|
socialsxmr = Social.objects.order_by('date').filter(name='Monero')
|
|
for socialxmr in socialsxmr:
|
|
dates2.append(datetime.datetime.strftime(socialxmr.date, '%Y-%m-%d'))
|
|
if socialxmr.subscriberCount > last_xmr:
|
|
social_xmr.append(socialxmr.subscriberCount)
|
|
last_xmr = socialxmr.subscriberCount
|
|
else:
|
|
social_xmr.append(last_xmr)
|
|
|
|
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)
|
|
|
|
dt = 'social.html ' + locale.format('%.2f', datetime.datetime.now(timezone.utc).timestamp() - dt, grouping=True)+' seconds'
|
|
print(dt)
|
|
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, 'monerojnet/social.html', context)
|
|
|
|
def social2_old(request):
|
|
dt = datetime.datetime.now(timezone.utc).timestamp()
|
|
dates = []
|
|
social_btc = []
|
|
last_btc = 0
|
|
N = 1
|
|
|
|
socials = Social.objects.order_by('date').filter(name='Bitcoin')
|
|
for social in socials:
|
|
coins = Coin.objects.filter(date=social.date).filter(name='btc')
|
|
if coins:
|
|
for coin in coins:
|
|
if social.subscriberCount > 0 and coin.priceusd > 0 and coin.supply > 0:
|
|
last_btc = ((coin.priceusd*coin.supply)**N)/social.subscriberCount
|
|
social_btc.append(last_btc)
|
|
dates.append(datetime.datetime.strftime(social.date, '%Y-%m-%d'))
|
|
dates2 = []
|
|
social_xmr = []
|
|
last_xmr = 0
|
|
N = 1
|
|
|
|
socials = Social.objects.order_by('date').filter(name='Monero')
|
|
for social in socials:
|
|
coins = Coin.objects.filter(date=social.date).filter(name='xmr')
|
|
if coins:
|
|
for coin in coins:
|
|
if social.subscriberCount > 0 and coin.priceusd > 0 and coin.supply > 0:
|
|
last_xmr = ((coin.priceusd*coin.supply)**N)/social.subscriberCount
|
|
social_xmr.append(last_xmr)
|
|
dates2.append(datetime.datetime.strftime(social.date, '%Y-%m-%d'))
|
|
|
|
last_xmr = '$' + locale.format('%.0f', last_xmr, grouping=True)
|
|
last_btc = '$' + locale.format('%.0f', last_btc, grouping=True)
|
|
|
|
dt = 'social2.html ' + locale.format('%.2f', datetime.datetime.now(timezone.utc).timestamp() - dt, grouping=True)+' seconds'
|
|
print(dt)
|
|
context = {'dates': dates, 'dates2': dates2, 'social_btc': social_btc, 'social_xmr': social_xmr, 'last_xmr': last_xmr, 'last_btc': last_btc}
|
|
return render(request, 'monerojnet/social2.html', context)
|
|
|
|
def social3_old(request):
|
|
dt = datetime.datetime.now(timezone.utc).timestamp()
|
|
dates = []
|
|
social_xmr = []
|
|
last_xmr = 0.001
|
|
social_crypto = []
|
|
last_crypto = 0.001
|
|
|
|
socials = Social.objects.order_by('date').filter(name='Bitcoin')
|
|
for social in socials:
|
|
dates.append(datetime.datetime.strftime(social.date, '%Y-%m-%d'))
|
|
socialsxmr = Social.objects.filter(date=social.date).filter(name='Monero')
|
|
if socialsxmr:
|
|
for socialxmr in socialsxmr:
|
|
if socialxmr.subscriberCount > 0.001 and social.subscriberCount > 0.001:
|
|
if socialxmr.subscriberCount/social.subscriberCount > 0.001:
|
|
last_xmr = 100*(socialxmr.subscriberCount/social.subscriberCount)
|
|
social_xmr.append(last_xmr)
|
|
else:
|
|
social_xmr.append(last_xmr)
|
|
else:
|
|
social_xmr.append(last_xmr)
|
|
else:
|
|
social_xmr.append(last_xmr)
|
|
|
|
socialscrypto = Social.objects.filter(date=social.date).filter(name='CryptoCurrency')
|
|
if socialscrypto:
|
|
for socialcrypto in socialscrypto:
|
|
if socialcrypto.subscriberCount > 0.001 and social.subscriberCount > 0.001:
|
|
if socialcrypto.subscriberCount/social.subscriberCount > 0.001:
|
|
last_crypto = 100*(socialcrypto.subscriberCount/social.subscriberCount)
|
|
social_crypto.append(last_crypto)
|
|
else:
|
|
social_crypto.append(last_crypto)
|
|
else:
|
|
social_crypto.append(last_crypto)
|
|
else:
|
|
social_crypto.append(last_crypto)
|
|
|
|
last_xmr = locale.format('%.1f', last_xmr, grouping=True)+ '%'
|
|
last_crypto = locale.format('%.1f', last_crypto, grouping=True)+ '%'
|
|
|
|
dt = 'social3.html ' + locale.format('%.2f', datetime.datetime.now(timezone.utc).timestamp() - dt, grouping=True)+' seconds'
|
|
print(dt)
|
|
context = {'dates': dates, 'social_xmr': social_xmr, 'social_crypto': social_crypto, 'last_xmr': last_xmr, 'last_crypto': last_crypto}
|
|
return render(request, 'monerojnet/social3.html', context)
|
|
|
|
def social4_old(request):
|
|
dt = datetime.datetime.now(timezone.utc).timestamp()
|
|
socials = Social.objects.order_by('date').filter(name='Bitcoin')
|
|
dates = []
|
|
social_xmr = []
|
|
social_crypto = []
|
|
social_btc = []
|
|
last_xmr = 0
|
|
last_btc = 0
|
|
last_crypto = 0
|
|
socials = Social.objects.order_by('date').filter(name='Bitcoin')
|
|
for social in socials:
|
|
dates.append(datetime.datetime.strftime(social.date, '%Y-%m-%d'))
|
|
if social.subscriberCount > last_btc:
|
|
last_btc = social.subscriberCount
|
|
social_btc.append(social.subscriberCount)
|
|
else:
|
|
social_btc.append(last_btc)
|
|
socialscrypto = Social.objects.filter(date=social.date).filter(name='CryptoCurrency')
|
|
if socialscrypto:
|
|
for socialcrypto in socialscrypto:
|
|
if socialcrypto.subscriberCount > last_crypto:
|
|
social_crypto.append(socialcrypto.subscriberCount)
|
|
last_crypto = socialcrypto.subscriberCount
|
|
else:
|
|
social_crypto.append(last_crypto)
|
|
else:
|
|
social_crypto.append(last_crypto)
|
|
socialsxmr = Social.objects.filter(date=social.date).filter(name='Monero')
|
|
if socialsxmr:
|
|
for socialxmr in socialsxmr:
|
|
if socialxmr.subscriberCount > last_xmr:
|
|
social_xmr.append(socialxmr.subscriberCount)
|
|
last_xmr = socialxmr.subscriberCount
|
|
else:
|
|
social_xmr.append(last_xmr)
|
|
else:
|
|
social_xmr.append(last_xmr)
|
|
|
|
N = 30
|
|
last_btc = ''
|
|
speed_btc = []
|
|
for i in range(len(social_btc)):
|
|
if i < N:
|
|
speed_btc.append(last_btc)
|
|
else:
|
|
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]
|
|
if last_btc < 0.2:
|
|
last_btc = 0.2
|
|
if last_btc > 1000:
|
|
last_btc = ''
|
|
else:
|
|
last_btc = ''
|
|
speed_btc.append(last_btc)
|
|
|
|
last_btc = ''
|
|
newcomers_btc = []
|
|
for i in range(len(social_btc)):
|
|
if i < N:
|
|
newcomers_btc.append(last_btc)
|
|
else:
|
|
last_btc = (social_btc[i] - social_btc[i-N])
|
|
if last_btc < 10:
|
|
last_btc = ''
|
|
newcomers_btc.append(last_btc)
|
|
|
|
last_crypto = ''
|
|
speed_crypto = []
|
|
for i in range(len(social_crypto)):
|
|
if i < N:
|
|
speed_crypto.append(last_crypto)
|
|
else:
|
|
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]
|
|
if last_crypto < 0.2:
|
|
last_crypto = 0.2
|
|
if last_crypto > 1000:
|
|
last_crypto = ''
|
|
else:
|
|
last_crypto = ''
|
|
speed_crypto.append(last_crypto)
|
|
|
|
last_crypto = ''
|
|
newcomers_crypto = []
|
|
for i in range(len(social_crypto)):
|
|
if i < N:
|
|
newcomers_crypto.append(last_crypto)
|
|
else:
|
|
last_crypto = (social_crypto[i] - social_crypto[i-N])
|
|
if last_crypto < 2:
|
|
last_crypto = ''
|
|
newcomers_crypto.append(last_crypto)
|
|
|
|
|
|
last_xmr = ''
|
|
speed_xmr = []
|
|
for i in range(len(social_xmr)):
|
|
if i < N:
|
|
speed_xmr.append(last_xmr)
|
|
else:
|
|
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]
|
|
if last_xmr < 0.2:
|
|
last_xmr = 0.2
|
|
if last_xmr > 1000:
|
|
last_xmr = ''
|
|
else:
|
|
last_xmr = ''
|
|
speed_xmr.append(last_xmr)
|
|
|
|
last_xmr = ''
|
|
newcomers_xmr = []
|
|
for i in range(len(social_xmr)):
|
|
if i < N:
|
|
newcomers_xmr.append(last_xmr)
|
|
else:
|
|
last_xmr = (social_xmr[i] - social_xmr[i-N])
|
|
if last_xmr < 0:
|
|
last_xmr = ''
|
|
newcomers_xmr.append(last_xmr)
|
|
|
|
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)
|
|
|
|
dt = 'social4.html ' + locale.format('%.2f', datetime.datetime.now(timezone.utc).timestamp() - dt, grouping=True)+' seconds'
|
|
print(dt)
|
|
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, 'monerojnet/social4.html', context)
|
|
|
|
def social5_old(request):
|
|
dt = datetime.datetime.now(timezone.utc).timestamp()
|
|
symbol = 'xmr'
|
|
transactions = []
|
|
pricexmr = []
|
|
dates = []
|
|
now_transactions = 0
|
|
dates = []
|
|
social_xmr = []
|
|
last_xmr = 0
|
|
coins = Coin.objects.order_by('date').filter(name=symbol)
|
|
if coins:
|
|
for coin in coins:
|
|
dates.append(datetime.datetime.strftime(coin.date, '%Y-%m-%d'))
|
|
socials = Social.objects.filter(date=coin.date).filter(name='Monero')
|
|
if socials:
|
|
for social in socials:
|
|
if social.subscriberCount > last_xmr:
|
|
last_xmr = social.subscriberCount
|
|
social_xmr.append(social.subscriberCount)
|
|
else:
|
|
social_xmr.append(last_xmr)
|
|
else:
|
|
social_xmr.append(last_xmr)
|
|
if coin.transactions > 200:
|
|
transactions.append(coin.transactions)
|
|
now_transactions = coin.transactions
|
|
else:
|
|
transactions.append('')
|
|
if coin.priceusd > 0.001:
|
|
pricexmr.append(coin.priceusd)
|
|
else:
|
|
pricexmr.append('')
|
|
else:
|
|
pricexmr.append('')
|
|
transactions.append('')
|
|
|
|
last_xmr = locale.format('%.0f', last_xmr, grouping=True)
|
|
now_transactions = locale.format('%.0f', now_transactions, grouping=True)
|
|
|
|
dt = 'social5.html ' + locale.format('%.2f', datetime.datetime.now(timezone.utc).timestamp() - dt, grouping=True)+' seconds'
|
|
print(dt)
|
|
context = {'dates': dates, 'social_xmr': social_xmr, 'last_xmr': last_xmr, 'now_transactions': now_transactions, 'transactions': transactions, 'pricexmr': pricexmr}
|
|
return render(request, 'monerojnet/social5.html', context)
|
|
|
|
def social6_old(request):
|
|
dt = datetime.datetime.now(timezone.utc).timestamp()
|
|
socials = Social.objects.order_by('date').filter(name='Bitcoin')
|
|
dates = []
|
|
social_xmr = []
|
|
social_crypto = []
|
|
social_btc = []
|
|
last_xmr = 0
|
|
last_btc = 0
|
|
last_crypto = 0
|
|
socials = Social.objects.order_by('date').filter(name='Bitcoin')
|
|
for social in socials:
|
|
dates.append(datetime.datetime.strftime(social.date, '%Y-%m-%d'))
|
|
if social.commentsPerHour*24 < last_btc/4:
|
|
social_btc.append(last_btc)
|
|
else:
|
|
social_btc.append(social.commentsPerHour*24)
|
|
last_btc = social.commentsPerHour*24
|
|
socialscrypto = Social.objects.filter(date=social.date).filter(name='CryptoCurrency')
|
|
if socialscrypto:
|
|
for socialcrypto in socialscrypto:
|
|
if socialcrypto.commentsPerHour*24 < last_crypto/4:
|
|
social_crypto.append(last_crypto)
|
|
else:
|
|
social_crypto.append(socialcrypto.commentsPerHour*24)
|
|
last_crypto = socialcrypto.commentsPerHour*24
|
|
else:
|
|
social_crypto.append(last_crypto)
|
|
socialsxmr = Social.objects.filter(date=social.date).filter(name='Monero')
|
|
if socialsxmr:
|
|
for socialxmr in socialsxmr:
|
|
if socialxmr.commentsPerHour*24 < last_xmr/4:
|
|
social_xmr.append(last_xmr)
|
|
else:
|
|
social_xmr.append(socialxmr.commentsPerHour*24)
|
|
last_xmr = socialxmr.commentsPerHour*24
|
|
|
|
else:
|
|
social_xmr.append(last_xmr)
|
|
|
|
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)
|
|
|
|
dt = 'social6.html ' + locale.format('%.2f', datetime.datetime.now(timezone.utc).timestamp() - dt, grouping=True)+' seconds'
|
|
print(dt)
|
|
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, 'monerojnet/social6.html', context)
|
|
|
|
def social7_old(request):
|
|
dt = datetime.datetime.now(timezone.utc).timestamp()
|
|
socials = Social.objects.order_by('date').filter(name='Bitcoin')
|
|
dates = []
|
|
social_xmr = []
|
|
social_crypto = []
|
|
social_btc = []
|
|
last_xmr = 0
|
|
last_btc = 0
|
|
last_crypto = 0
|
|
socials = Social.objects.order_by('date').filter(name='Bitcoin')
|
|
for social in socials:
|
|
dates.append(datetime.datetime.strftime(social.date, '%Y-%m-%d'))
|
|
social_btc.append(social.postsPerHour*24)
|
|
last_btc = social.postsPerHour*24
|
|
socialscrypto = Social.objects.filter(date=social.date).filter(name='CryptoCurrency')
|
|
if socialscrypto:
|
|
for socialcrypto in socialscrypto:
|
|
social_crypto.append(socialcrypto.postsPerHour*24)
|
|
last_crypto = socialcrypto.postsPerHour*24
|
|
else:
|
|
social_crypto.append(last_crypto)
|
|
socialsxmr = Social.objects.filter(date=social.date).filter(name='Monero')
|
|
if socialsxmr:
|
|
for socialxmr in socialsxmr:
|
|
social_xmr.append(socialxmr.postsPerHour*24)
|
|
last_xmr = socialxmr.postsPerHour*24
|
|
|
|
else:
|
|
social_xmr.append(last_xmr)
|
|
|
|
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)
|
|
|
|
dt = 'social7.html ' + locale.format('%.2f', datetime.datetime.now(timezone.utc).timestamp() - dt, grouping=True)+' seconds'
|
|
print(dt)
|
|
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, 'monerojnet/social7.html', context)
|
|
|
|
def minerrev_old(request):
|
|
dt = datetime.datetime.now(timezone.utc).timestamp()
|
|
coins_btc = Coin.objects.order_by('date').filter(name='btc')
|
|
|
|
costbtc = []
|
|
costxmr = []
|
|
dates = []
|
|
now_btc = 0
|
|
now_xmr = 0
|
|
|
|
for coin_btc in coins_btc:
|
|
dates.append(datetime.datetime.strftime(coin_btc.date, '%Y-%m-%d'))
|
|
valuebtc = coin_btc.revenue*coin_btc.priceusd
|
|
if valuebtc < 0.0001:
|
|
costbtc.append('')
|
|
else:
|
|
costbtc.append(valuebtc)
|
|
now_btc = valuebtc
|
|
coins_xmr = Coin.objects.filter(name='xmr').filter(date=coin_btc.date)
|
|
if coins_xmr:
|
|
for coin_xmr in coins_xmr:
|
|
valuexmr = coin_xmr.revenue*coin_xmr.priceusd
|
|
if valuexmr < 0.0001:
|
|
costxmr.append('')
|
|
else:
|
|
costxmr.append(valuexmr)
|
|
now_xmr = valuexmr
|
|
else:
|
|
costxmr.append('')
|
|
|
|
for i in range(500):
|
|
date_aux = coin_btc.date + timedelta(i)
|
|
dates.append(datetime.datetime.strftime(date_aux, '%Y-%m-%d'))
|
|
costbtc.append('')
|
|
costxmr.append('')
|
|
|
|
now_btc = "$" + locale.format('%.2f', now_btc, grouping=True)
|
|
now_xmr = "$" + locale.format('%.2f', now_xmr, grouping=True)
|
|
|
|
dt = 'minerrev.html ' + locale.format('%.2f', datetime.datetime.now(timezone.utc).timestamp() - dt, grouping=True)+' seconds'
|
|
print(dt)
|
|
context = {'costxmr': costxmr, 'costbtc': costbtc, 'now_xmr': now_xmr, 'now_btc': now_btc, 'dates': dates}
|
|
return render(request, 'monerojnet/minerrev.html', context)
|
|
|
|
def minerrevntv_old(request):
|
|
dt = datetime.datetime.now(timezone.utc).timestamp()
|
|
coins_btc = Coin.objects.order_by('date').filter(name='btc')
|
|
|
|
costbtc = []
|
|
costxmr = []
|
|
dates = []
|
|
now_btc = 0
|
|
now_xmr = 0
|
|
|
|
for coin_btc in coins_btc:
|
|
dates.append(datetime.datetime.strftime(coin_btc.date, '%Y-%m-%d'))
|
|
valuebtc = coin_btc.revenue
|
|
if valuebtc < 0.000001:
|
|
costbtc.append('')
|
|
else:
|
|
costbtc.append(valuebtc)
|
|
now_btc = valuebtc
|
|
coins_xmr = Coin.objects.filter(name='xmr').filter(date=coin_btc.date)
|
|
if coins_xmr:
|
|
for coin_xmr in coins_xmr:
|
|
valuexmr = coin_xmr.revenue
|
|
if valuexmr < 0.000001:
|
|
costxmr.append('')
|
|
else:
|
|
costxmr.append(valuexmr)
|
|
now_xmr = valuexmr
|
|
else:
|
|
costxmr.append('')
|
|
|
|
for i in range(500):
|
|
date_aux = coin_btc.date + timedelta(i)
|
|
dates.append(datetime.datetime.strftime(date_aux, '%Y-%m-%d'))
|
|
costbtc.append('')
|
|
costxmr.append('')
|
|
|
|
now_btc = locale.format('%.2f', now_btc, grouping=True)
|
|
now_xmr = locale.format('%.2f', now_xmr, grouping=True)
|
|
|
|
dt = 'minerrevntv.html ' + locale.format('%.2f', datetime.datetime.now(timezone.utc).timestamp() - dt, grouping=True)+' seconds'
|
|
print(dt)
|
|
context = {'costxmr': costxmr, 'costbtc': costbtc, 'now_xmr': now_xmr, 'now_btc': now_btc, 'dates': dates}
|
|
return render(request, 'monerojnet/minerrevntv.html', context)
|
|
|
|
def minerfees_old(request):
|
|
dt = datetime.datetime.now(timezone.utc).timestamp()
|
|
coins_btc = Coin.objects.order_by('date').filter(name='btc')
|
|
|
|
costbtc = []
|
|
costxmr = []
|
|
dates = []
|
|
now_btc = 0
|
|
now_xmr = 0
|
|
supply_btc = 0
|
|
supply_xmr = 0
|
|
|
|
for coin_btc in coins_btc:
|
|
dates.append(datetime.datetime.strftime(coin_btc.date, '%Y-%m-%d'))
|
|
valuebtc = (coin_btc.revenue - coin_btc.supply + supply_btc)*coin_btc.priceusd
|
|
supply_btc = coin_btc.supply
|
|
if valuebtc < 1:
|
|
costbtc.append('')
|
|
else:
|
|
costbtc.append(valuebtc)
|
|
now_btc = valuebtc
|
|
coins_xmr = Coin.objects.filter(name='xmr').filter(date=coin_btc.date)
|
|
if coins_xmr:
|
|
for coin_xmr in coins_xmr:
|
|
valuexmr = (coin_xmr.revenue - coin_xmr.supply + supply_xmr)*coin_xmr.priceusd
|
|
supply_xmr = coin_xmr.supply
|
|
if valuexmr < 1:
|
|
costxmr.append('')
|
|
else:
|
|
costxmr.append(valuexmr)
|
|
now_xmr = valuexmr
|
|
else:
|
|
costxmr.append('')
|
|
|
|
for i in range(500):
|
|
date_aux = coin_btc.date + timedelta(i)
|
|
dates.append(datetime.datetime.strftime(date_aux, '%Y-%m-%d'))
|
|
costbtc.append('')
|
|
costxmr.append('')
|
|
|
|
now_btc = locale.format('%.2f', now_btc, grouping=True)
|
|
now_xmr = locale.format('%.2f', now_xmr, grouping=True)
|
|
|
|
dt = 'minerfees.html ' + locale.format('%.2f', datetime.datetime.now(timezone.utc).timestamp() - dt, grouping=True)+' seconds'
|
|
print(dt)
|
|
context = {'costxmr': costxmr, 'costbtc': costbtc, 'now_xmr': now_xmr, 'now_btc': now_btc, 'dates': dates}
|
|
return render(request, 'monerojnet/minerfees.html', context)
|
|
|
|
def minerfeesntv_old(request):
|
|
dt = datetime.datetime.now(timezone.utc).timestamp()
|
|
coins_btc = Coin.objects.order_by('date').filter(name='btc')
|
|
|
|
costbtc = []
|
|
costxmr = []
|
|
dates = []
|
|
now_btc = 0
|
|
now_xmr = 0
|
|
supply_btc = 0
|
|
supply_xmr = 0
|
|
|
|
for coin_btc in coins_btc:
|
|
dates.append(datetime.datetime.strftime(coin_btc.date, '%Y-%m-%d'))
|
|
valuebtc = coin_btc.revenue - coin_btc.supply + supply_btc
|
|
supply_btc = coin_btc.supply
|
|
if valuebtc < 0.1:
|
|
costbtc.append('')
|
|
else:
|
|
costbtc.append(valuebtc)
|
|
now_btc = valuebtc
|
|
coins_xmr = Coin.objects.filter(name='xmr').filter(date=coin_btc.date)
|
|
if coins_xmr:
|
|
for coin_xmr in coins_xmr:
|
|
valuexmr = coin_xmr.revenue - coin_xmr.supply + supply_xmr
|
|
supply_xmr = coin_xmr.supply
|
|
if valuexmr < 0.1:
|
|
costxmr.append('')
|
|
else:
|
|
costxmr.append(valuexmr)
|
|
now_xmr = valuexmr
|
|
else:
|
|
costxmr.append('')
|
|
|
|
for i in range(500):
|
|
date_aux = coin_btc.date + timedelta(i)
|
|
dates.append(datetime.datetime.strftime(date_aux, '%Y-%m-%d'))
|
|
costbtc.append('')
|
|
costxmr.append('')
|
|
|
|
now_btc = locale.format('%.2f', now_btc, grouping=True)
|
|
now_xmr = locale.format('%.2f', now_xmr, grouping=True)
|
|
|
|
dt = 'minerfeesntv.html ' + locale.format('%.2f', datetime.datetime.now(timezone.utc).timestamp() - dt, grouping=True)+' seconds'
|
|
print(dt)
|
|
context = {'costxmr': costxmr, 'costbtc': costbtc, 'now_xmr': now_xmr, 'now_btc': now_btc, 'dates': dates}
|
|
return render(request, 'monerojnet/minerfeesntv.html', context)
|
|
|
|
def commit_old(request):
|
|
dt = datetime.datetime.now(timezone.utc).timestamp()
|
|
coins_btc = Coin.objects.order_by('date').filter(name='btc')
|
|
|
|
costbtc = []
|
|
costxmr = []
|
|
dates = []
|
|
now_btc = 0
|
|
now_xmr = 0
|
|
|
|
for coin_btc in coins_btc:
|
|
dates.append(datetime.datetime.strftime(coin_btc.date, '%Y-%m-%d'))
|
|
if coin_btc.revenue*coin_btc.priceusd < 0.01:
|
|
costbtc.append('')
|
|
else:
|
|
valuebtc = coin_btc.hashrate/(coin_btc.revenue*coin_btc.priceusd)
|
|
costbtc.append(valuebtc)
|
|
now_btc = valuebtc
|
|
coins_xmr = Coin.objects.filter(name='xmr').filter(date=coin_btc.date)
|
|
if coins_xmr:
|
|
for coin_xmr in coins_xmr:
|
|
if coin_xmr.revenue*coin_xmr.priceusd < 0.01:
|
|
costxmr.append('')
|
|
else:
|
|
valuexmr = coin_xmr.hashrate/(coin_xmr.revenue*coin_xmr.priceusd)
|
|
costxmr.append(valuexmr)
|
|
now_xmr = valuexmr
|
|
else:
|
|
costxmr.append('')
|
|
|
|
for i in range(500):
|
|
date_aux = coin_btc.date + timedelta(i)
|
|
dates.append(datetime.datetime.strftime(date_aux, '%Y-%m-%d'))
|
|
costbtc.append('')
|
|
costxmr.append('')
|
|
|
|
now_btc = locale.format('%.2f', now_btc, grouping=True) + " hashs / dollar"
|
|
now_xmr = locale.format('%.2f', now_xmr, grouping=True) + " hashs / dollar"
|
|
|
|
dt = 'commit.html ' + locale.format('%.2f', datetime.datetime.now(timezone.utc).timestamp() - dt, grouping=True)+' seconds'
|
|
print(dt)
|
|
context = {'costxmr': costxmr, 'costbtc': costbtc, 'now_xmr': now_xmr, 'now_btc': now_btc, 'dates': dates}
|
|
return render(request, 'monerojnet/commit.html', context)
|
|
|
|
def commitntv_old(request):
|
|
dt = datetime.datetime.now(timezone.utc).timestamp()
|
|
coins_btc = Coin.objects.order_by('date').filter(name='btc')
|
|
|
|
costbtc = []
|
|
costxmr = []
|
|
dates = []
|
|
now_btc = 0
|
|
now_xmr = 0
|
|
|
|
for coin_btc in coins_btc:
|
|
dates.append(datetime.datetime.strftime(coin_btc.date, '%Y-%m-%d'))
|
|
if coin_btc.revenue < 0.01:
|
|
costbtc.append('')
|
|
else:
|
|
valuebtc = coin_btc.hashrate/coin_btc.revenue
|
|
if valuebtc < 0.001:
|
|
costbtc.append('')
|
|
else:
|
|
costbtc.append(valuebtc)
|
|
now_btc = valuebtc
|
|
coins_xmr = Coin.objects.filter(name='xmr').filter(date=coin_btc.date)
|
|
if coins_xmr:
|
|
for coin_xmr in coins_xmr:
|
|
if coin_xmr.revenue < 0.01:
|
|
costxmr.append('')
|
|
else:
|
|
valuexmr = coin_xmr.hashrate/coin_xmr.revenue
|
|
if valuexmr < 0.001:
|
|
costxmr.append('')
|
|
else:
|
|
costxmr.append(valuexmr)
|
|
now_xmr = valuexmr
|
|
else:
|
|
costxmr.append('')
|
|
|
|
for i in range(500):
|
|
date_aux = coin_btc.date + timedelta(i)
|
|
dates.append(datetime.datetime.strftime(date_aux, '%Y-%m-%d'))
|
|
costbtc.append('')
|
|
costxmr.append('')
|
|
|
|
now_btc = locale.format('%.0f', now_btc, grouping=True) + " hashs / btc"
|
|
now_xmr = locale.format('%.0f', now_xmr, grouping=True) + " hashs / xmr"
|
|
|
|
dt = 'commitntv.html ' + locale.format('%.2f', datetime.datetime.now(timezone.utc).timestamp() - dt, grouping=True)+' seconds'
|
|
print(dt)
|
|
context = {'costxmr': costxmr, 'costbtc': costbtc, 'now_xmr': now_xmr, 'now_btc': now_btc, 'dates': dates}
|
|
return render(request, 'monerojnet/commitntv.html', context)
|
|
|
|
def percentage_old(request):
|
|
dt = datetime.datetime.now(timezone.utc).timestamp()
|
|
symbol = 'xmr'
|
|
transactions = []
|
|
dates = []
|
|
now_transactions = 0
|
|
maximum = 0
|
|
|
|
coins = Coin.objects.order_by('date').filter(name=symbol)
|
|
for coin in coins:
|
|
coins_aux = Coin.objects.order_by('date').filter(name='btc').filter(date=coin.date)
|
|
if coin.transactions < 500:
|
|
coin.transactions = 500
|
|
if coins_aux:
|
|
for coin_aux in coins_aux:
|
|
if coin_aux.supply > 0 and coin_aux.transactions > 0:
|
|
now_transactions = 100*coin.transactions/coin_aux.transactions
|
|
if now_transactions > maximum:
|
|
maximum = now_transactions
|
|
if now_transactions < 0.001:
|
|
now_transactions = 0.001
|
|
transactions.append(now_transactions)
|
|
coin.date = datetime.datetime.strftime(coin.date, '%Y-%m-%d')
|
|
dates.append(coin.date)
|
|
|
|
now_transactions = locale.format('%.1f', now_transactions, grouping=True) + '%'
|
|
maximum = locale.format('%.1f', maximum, grouping=True) + '%'
|
|
|
|
dt = 'percentage.html ' + locale.format('%.2f', datetime.datetime.now(timezone.utc).timestamp() - dt, grouping=True)+' seconds'
|
|
print(dt)
|
|
context = {'transactions': transactions, 'dates': dates, 'now_transactions': now_transactions, 'maximum': maximum}
|
|
return render(request, 'monerojnet/percentage.html', context)
|
|
|
|
def pricesats_old(request):
|
|
dt = datetime.datetime.now(timezone.utc).timestamp()
|
|
symbol = 'xmr'
|
|
projection = []
|
|
color = []
|
|
values = []
|
|
dates = []
|
|
now_price = 0
|
|
maximum = 0
|
|
bottom = 1
|
|
v0 = 0.002
|
|
delta = (0.015 - 0.002)/(6*365)
|
|
count = 0
|
|
|
|
coins = Coin.objects.order_by('date').filter(name=symbol)
|
|
for coin in coins:
|
|
dates.append(datetime.datetime.strftime(coin.date, '%Y-%m-%d'))
|
|
if coin.pricebtc > 0.001:
|
|
values.append(coin.pricebtc)
|
|
else:
|
|
values.append('')
|
|
date_aux1 = datetime.datetime.strptime('2021-03-15', '%Y-%m-%d')
|
|
date_aux2 = datetime.datetime.strftime(coin.date, '%Y-%m-%d')
|
|
date_aux2 = datetime.datetime.strptime(date_aux2, '%Y-%m-%d')
|
|
if date_aux2 < date_aux1:
|
|
lastprice = coin.pricebtc
|
|
projection.append('')
|
|
else:
|
|
day = date_aux2 - timedelta(1700)
|
|
coin_aux1 = Coin.objects.filter(name=symbol).get(date=day)
|
|
day = date_aux2 - timedelta(1701)
|
|
coin_aux2 = Coin.objects.filter(name=symbol).get(date=day)
|
|
if coin_aux1 and coin_aux2:
|
|
lastprice += (coin_aux1.pricebtc/coin_aux2.pricebtc-1)*lastprice*0.75
|
|
projection.append(lastprice)
|
|
else:
|
|
projection.append('')
|
|
if coin.pricebtc > 0:
|
|
now_price = coin.pricebtc
|
|
if now_price > maximum:
|
|
maximum = now_price
|
|
if now_price > 0:
|
|
if now_price < bottom:
|
|
bottom = now_price
|
|
new_color = 30*coin.pricebtc/(count*delta + v0)
|
|
color.append(new_color)
|
|
count += 1
|
|
|
|
count = 0
|
|
for count in range(300):
|
|
date_now = date.today() + timedelta(count)
|
|
dates.append(datetime.datetime.strftime(date_now, '%Y-%m-%d'))
|
|
day = date_now - timedelta(1900)
|
|
coin_aux1 = Coin.objects.filter(name=symbol).get(date=day)
|
|
day = date_now - timedelta(1901)
|
|
coin_aux2 = Coin.objects.filter(name=symbol).get(date=day)
|
|
if coin_aux1 and coin_aux2:
|
|
lastprice += (coin_aux1.pricebtc/coin_aux2.pricebtc-1)*lastprice*0.75
|
|
projection.append(lastprice)
|
|
else:
|
|
projection.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'
|
|
|
|
dt = 'pricesats.html ' + locale.format('%.2f', datetime.datetime.now(timezone.utc).timestamp() - dt, grouping=True)+' seconds'
|
|
print(dt)
|
|
context = {'values': values, 'dates': dates, 'maximum': maximum, 'now_price': now_price, 'color': color, 'projection': projection, 'bottom': bottom}
|
|
return render(request, 'monerojnet/pricesats.html', context) |