refactor crypto tracking and html
This commit is contained in:
parent
3d238846b8
commit
41abc64dd5
|
@ -8,7 +8,7 @@ from datetime import datetime
|
|||
from flask import Flask, request, redirect
|
||||
from flask import render_template, flash, url_for
|
||||
from urllib.parse import urlparse
|
||||
from xmrnodes.helpers import is_monero
|
||||
from xmrnodes.helpers import determine_crypto
|
||||
from xmrnodes.forms import SubmitNode
|
||||
from xmrnodes.models import Node
|
||||
|
||||
|
@ -33,7 +33,16 @@ def index():
|
|||
flash("Wow, wtf hackerman. Cool it.")
|
||||
page = 1
|
||||
|
||||
nodes = Node.select().where(Node.validated==True).where(Node.is_monero==True).order_by(
|
||||
nettype = request.args.get("nettype", "mainnet")
|
||||
crypto = request.args.get("crypto", "monero")
|
||||
|
||||
nodes = Node.select().where(
|
||||
Node.validated==True
|
||||
).where(
|
||||
Node.nettype==nettype
|
||||
).where(
|
||||
Node.crypto==crypto
|
||||
).order_by(
|
||||
Node.datetime_entered.desc()
|
||||
)
|
||||
paginated = nodes.paginate(page, itp)
|
||||
|
@ -115,6 +124,7 @@ def validate():
|
|||
assert "height" in r.json()
|
||||
assert "nettype" in r.json()
|
||||
nettype = r.json()["nettype"]
|
||||
crypto = determine_crypto(node.url)
|
||||
logging.info("success")
|
||||
if nettype in ["mainnet", "stagenet", "testnet"]:
|
||||
node.nettype = nettype
|
||||
|
@ -122,7 +132,7 @@ def validate():
|
|||
node.validated = True
|
||||
node.last_height = r.json()["height"]
|
||||
node.datetime_checked = now
|
||||
node.is_monero = is_monero(node.url)
|
||||
node.crypto = crypto
|
||||
node.save()
|
||||
else:
|
||||
logging.info("unexpected nettype")
|
||||
|
|
|
@ -1,17 +1,28 @@
|
|||
from requests import get as r_get
|
||||
|
||||
def is_monero(url):
|
||||
def determine_crypto(url):
|
||||
data = {"method": "get_block_header_by_height", "params": {"height": 0}}
|
||||
known_hashes = [
|
||||
hashes = {
|
||||
"monero": [
|
||||
"418015bb9ae982a1975da7d79277c2705727a56894ba0fb246adaabb1f4632e3", #mainnet
|
||||
"48ca7cd3c8de5b6a4d53d2861fbdaedca141553559f9be9520068053cda8430b", #testnet
|
||||
"76ee3cc98646292206cd3e86f74d88b4dcc1d937088645e9b0cbca84b7ce74eb" #stagenet
|
||||
],
|
||||
"wownero": [
|
||||
"a3fd635dd5cb55700317783469ba749b5259f0eeac2420ab2c27eb3ff5ffdc5c", #mainnet
|
||||
"d81a24c7aad4628e5c9129f8f2ec85888885b28cf468597a9762c3945e9f29aa", #testnet
|
||||
]
|
||||
}
|
||||
try:
|
||||
r = r_get(url + "/json_rpc", json=data, timeout=5)
|
||||
r.raise_for_status()
|
||||
assert "result" in r.json()
|
||||
is_xmr = r.json()["result"]["block_header"]["hash"] in known_hashes
|
||||
return is_xmr
|
||||
hash = r.json()["result"]["block_header"]["hash"]
|
||||
crypto = "unknown"
|
||||
for c, h in hashes.items():
|
||||
if hash in h:
|
||||
crypto = c
|
||||
break
|
||||
return crypto
|
||||
except:
|
||||
return False
|
||||
return "unknown"
|
||||
|
|
|
@ -14,7 +14,7 @@ class Node(Model):
|
|||
validated = BooleanField(default=False)
|
||||
nettype = CharField(null=True)
|
||||
last_height = IntegerField(null=True)
|
||||
is_monero = BooleanField(default=False)
|
||||
crypto = CharField(null=True)
|
||||
datetime_entered = DateTimeField(default=datetime.utcnow)
|
||||
datetime_checked = DateTimeField(default=None, null=True)
|
||||
datetime_failed = DateTimeField(default=None, null=True)
|
||||
|
|
|
@ -23,3 +23,11 @@ input[type="text"] {
|
|||
.flashes {
|
||||
padding-top: 1em;
|
||||
}
|
||||
|
||||
.search-btn {
|
||||
margin: 2em .5em 0 .5em;
|
||||
}
|
||||
|
||||
.wownero {
|
||||
background-color: rgb(235, 74, 206);
|
||||
}
|
||||
|
|
|
@ -63,6 +63,11 @@
|
|||
{% else %}
|
||||
<p>No nodes in the database yet...</p>
|
||||
{% endif %}
|
||||
<br>
|
||||
<a href="/?nettype=mainnet"><button class="pure-button search-btn">Mainnet</button></a>
|
||||
<a href="/?nettype=testnet"><button class="pure-button search-btn">Testnet</button></a>
|
||||
<a href="/?nettype=stagenet"><button class="pure-button search-btn">Stagenet</button></a>
|
||||
<a href="/?crypto=wownero"><button class="pure-button search-btn wownero">Wownero</button></a>
|
||||
</div>
|
||||
|
||||
</div>
|
||||
|
|
Loading…
Reference in New Issue