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)