electric banana

revamp-ui
lza_menace 2 years ago
parent 8e5f35b0d3
commit e6733cd939

@ -79,14 +79,14 @@ def check_node(_node):
node.datetime_checked = now node.datetime_checked = now
node.save() node.save()
hc.save() hc.save()
if ( # if (
node.get_failed_checks().count() == node.get_all_checks().count() # node.get_failed_checks().count() == node.get_all_checks().count()
and node.get_all_checks().count() > 5 # and node.get_all_checks().count() > 5
): # ):
print("this node fails all of its health checks - deleting it!") # print("this node fails all of its health checks - deleting it!")
for _hc in node.get_all_checks(): # for _hc in node.get_all_checks():
_hc.delete_instance() # _hc.delete_instance()
node.delete_instance() # node.delete_instance()
@bp.cli.command("get_peers") @bp.cli.command("get_peers")

@ -55,6 +55,15 @@ def index():
nodes = [n for n in nodes] nodes = [n for n in nodes]
shuffle(nodes) shuffle(nodes)
countries = {}
for node in nodes:
c = node.country_code
if c is None:
c = '??'
if c not in countries:
countries[c] = 0
countries[c] += 1
return render_template( return render_template(
"index.html", "index.html",
nodes=nodes, nodes=nodes,
@ -64,6 +73,7 @@ def index():
crypto=crypto, crypto=crypto,
form=form, form=form,
web_compatible=web_compatible, web_compatible=web_compatible,
countries=countries
) )

@ -5,6 +5,10 @@ body {
font-size: 14px; font-size: 14px;
} }
.checkbox:hover, .radio:hover {
color: #f9f9f9;
}
.media-content .title { .media-content .title {
color: #1B2432; color: #1B2432;
} }
@ -59,7 +63,7 @@ body {
} }
#addNodeForm { #addNodeForm {
width: 50%; width: 80%;
} }
#webCompat { #webCompat {

@ -3,9 +3,10 @@
{% block content %} {% block content %}
<div id="index" class="container"> <div class="container">
<div id="addnode" class="section"> <div class="columns section">
<div class="column">
<h2 class="title is-4">Add A Node</h2> <h2 class="title is-4">Add A Node</h2>
<form method="POST" action="{{ url_for('meta.add') }}" id="addNodeForm"> <form method="POST" action="{{ url_for('meta.add') }}" id="addNodeForm">
{{ form.csrf_token }} {{ form.csrf_token }}
@ -26,49 +27,58 @@
</ul> </ul>
</form> </form>
</div> </div>
<div class="column">
<div id="nodes" class="section">
<h2 class="title is-4">Find a Node</h2> <h2 class="title is-4">Find a Node</h2>
<div class="" id="filters">
<form> <form>
<span> <div class="field">
<label for="chainSelect">Chain:</label> <div class="control">
<select name="chain" id="chainSelect"> <div class="select">
<select name="chain">
<option value="monero" {% if request.args.get('chain') == 'monero' %}selected{% endif %}>Monero</option> <option value="monero" {% if request.args.get('chain') == 'monero' %}selected{% endif %}>Monero</option>
<option value="wownero" {% if request.args.get('chain') == 'wownero' %}selected{% endif %}>Wownero</option> <option value="wownero" {% if request.args.get('chain') == 'wownero' %}selected{% endif %}>Wownero</option>
</select> </select>
</span> </div>
<span> <div class="select">
<label for="networkSelect">Network:</label>
<select name="network" id="networkSelect"> <select name="network" id="networkSelect">
<option value="mainnet" {% if request.args.get('network') == 'mainnet' %}selected{% endif %}>Mainnet</option> <option value="mainnet" {% if request.args.get('network') == 'mainnet' %}selected{% endif %}>Mainnet</option>
<option value="testnet" {% if request.args.get('network') == 'testnet' %}selected{% endif %}>Testnet</option> <option value="testnet" {% if request.args.get('network') == 'testnet' %}selected{% endif %}>Testnet</option>
<option value="stagenet" {% if request.args.get('network') == 'stagenet' %}selected{% endif %}>Stagenet</option> <option value="stagenet" {% if request.args.get('network') == 'stagenet' %}selected{% endif %}>Stagenet</option>
</select> </select>
</span> </div>
<span> <label class="checkbox">
<label for="cors">CORS:</label> CORS:
<input type="checkbox" name="cors" id="cors" {% if request.args.get('cors') == 'on' %}checked{% endif %}> <input type="checkbox" name="cors" {% if request.args.get('cors') == 'on' %}checked{% endif %}>
</span> </label>
<span> <label class="checkbox">
<label for="onion">Onion:</label> Onion:
<input type="checkbox" name="onion" id="onion" {% if request.args.get('onion') == 'on' %}checked{% endif %}> <input type="checkbox" name="onion" id="onion" {% if request.args.get('onion') == 'on' %}checked{% endif %}>
</span> </label>
<span> <label type="checkbox">
<label for="i2p">I2P:</label> I2P:
<input type="checkbox" name="i2p" id="i2p" {% if request.args.get('i2p') == 'on' %}checked{% endif %}> <input type="checkbox" name="i2p" id="i2p" {% if request.args.get('i2p') == 'on' %}checked{% endif %}>
</span> </label>
<span> </div>
<input type="submit" value="Filter" class="pure-button pure-pink"> </div>
</span> <div class="field is-grouped">
<span> <div class="control">
<a href="/"><input type="button" value="Reset" class="pure-button pure-grey"></a> <button class="button is-link">Submit</button>
</span> </div>
<div class="control">
<a href="/" class="button is-link is-light">Cancel</a>
</div>
</div>
</form> </form>
</div> </div>
</div>
{% if nodes %} <div id="nodes" class="section">
<div class="xmrnodes"> {% if (nodes | length) == 0 %}
<div class="section">
<h1 class="title is-5">No nodes in the database yet...</h1>
</div>
{% else %}
<div>
<h1 class="title">Nodes</h1>
<p class=""> <p class="">
{% if web_compatible %} {% if web_compatible %}
<div class="notification is-info is-light" id="webCompat"> <div class="notification is-info is-light" id="webCompat">
@ -76,7 +86,7 @@
The more nodes there are running with these settings the more robust web clients will be in the future. The more nodes there are running with these settings the more robust web clients will be in the future.
</div> </div>
{% endif %} {% endif %}
<a href="{{ url_for('meta.haproxy', chain=request.args.get('chain'), network=request.args.get('network'), cors=request.args.get('cors'), onion=request.args.get('onion')) }}">Download HAProxy config</a><br /><br /> <!-- <a href="{{ url_for('meta.haproxy', chain=request.args.get('chain'), network=request.args.get('network'), cors=request.args.get('cors'), onion=request.args.get('onion')) }}">Download HAProxy config</a><br /><br /> -->
Tracking {{ nodes_all }} {{ nettype }} {{ crypto | capitalize }} nodes in the database. Tracking {{ nodes_all }} {{ nettype }} {{ crypto | capitalize }} nodes in the database.
<br> <br>
Of those, {{ nodes_unhealthy }} nodes failed their last check-in (unresponsive to ping or over 500 blocks away from highest reported block). Of those, {{ nodes_unhealthy }} nodes failed their last check-in (unresponsive to ping or over 500 blocks away from highest reported block).
@ -88,11 +98,18 @@
<a href="{{ request.path }}?{{ request.args | pop_arg('all') }}">Show Active</a> <a href="{{ request.path }}?{{ request.args | pop_arg('all') }}">Show Active</a>
{% endif %} {% endif %}
</p> </p>
{% for country in countries %}
<span class="tag is-dark">
<span class="fflag fflag-{{ country }} ff-md m-4" title="{{ country }}"></span>
{{ country }}
({{ countries[country] }})
</span>
{% endfor %}
<br> <br>
<div> <div>
<div class="columns"> <div class="columns">
<div class="column"> <div class="column">
{% for node in nodes %} {% for node in nodes %}
<div class="card"> <div class="card">
@ -200,17 +217,9 @@
</a> </a>
</article> </article>
</div> </div>
</div> </div>
<!-- </tbody>
</table> -->
</div> </div>
</div> </div>
{% else %}
<p class="center">No nodes in the database yet...</p>
{% endif %} {% endif %}
</div> </div>

Loading…
Cancel
Save