1
0
mirror of https://github.com/donaldzou/WGDashboard.git synced 2024-06-30 22:50:14 +02:00

Auto Refresh

This commit is contained in:
donaldzou 2020-10-18 01:42:45 -04:00
parent 785d7a932e
commit 9146e60c3c
2 changed files with 23 additions and 17 deletions

View File

@ -2,7 +2,7 @@ import os
from flask import Flask, request, render_template
from tinydb import TinyDB, Query
import subprocess
from datetime import datetime
from datetime import datetime, date, time, timedelta
conf_location = "/etc/wireguard"
@ -48,9 +48,14 @@ def get_conf_peers_data(config_name):
data_usage = data_usage.decode("UTF-8").split()
count = 0
now = datetime.now()
b = timedelta(minutes=2)
for i in range(int(len(data_usage)/2)):
minus = now - datetime.fromtimestamp(int(data_usage[count+1]))
if minus < b:
peer_data[data_usage[count]]['status'] = "running"
else:
peer_data[data_usage[count]]['status'] = "stopped"
peer_data[data_usage[count]]['latest_handshake'] = minus
count += 2
@ -79,7 +84,6 @@ def get_conf_listen_port(config_name):
return pub_key.decode("UTF-8")
def get_conf_total_data(config_name):
try: data_usage = subprocess.check_output("wg show "+config_name+" transfer", shell=True)
except Exception: return "stopped"
@ -132,6 +136,5 @@ def conf(config_name):
"peer_data":get_conf_peers_data(config_name)
}
return render_template('configuration.html', conf=get_conf_list(), conf_data=conf_data)
app.run(host='0.0.0.0',debug=False, port=10086)

View File

@ -70,9 +70,19 @@
<hr>
</div>
{% for i in conf_data['peer_data']%}
<div class="card mt-3">
<div class="card mb-3">
<div class="card-body">
<div class="row">
<div class="col-sm">
<small class="text-muted"><strong>STATUS</strong></small>
<h6 style="text-transform: uppercase;">{{conf_data['peer_data'][i]['status']}}<span class="dot dot-{{conf_data['peer_data'][i]['status']}}"></span></h6>
</div>
<div class="col-sm">
<small class="text-muted"><strong>PEER</strong></small>
<h6 style="text-transform: uppercase;"><samp>{{i}}</samp></h6>
</div>
<div class="w-100"></div>
<div class="col-sm">
<small class="text-muted"><strong>ALLOWED IP</strong></small>
<h6 style="text-transform: uppercase;">{{conf_data['peer_data'][i]['allowed_ip']}}</h6>
@ -81,11 +91,6 @@
<small class="text-muted"><strong>LATEST HANDSHAKE</strong></small>
<h6 style="text-transform: uppercase;">{{conf_data['peer_data'][i]['latest_handshake']}}</h6>
</div>
<div class="w-100"></div>
<div class="col-sm">
<small class="text-muted"><strong>PEER</strong></small>
<h6 style="text-transform: uppercase;"><samp>{{i}}</samp></h6>
</div>
<div class="col-sm">
<small class="text-muted"><strong>END POINT</strong></small>
<h6 style="text-transform: uppercase;">{{conf_data['peer_data'][i]['endpoint']}}</h6>
@ -119,12 +124,10 @@
<script src="https://cdn.jsdelivr.net/npm/bootstrap@4.5.3/dist/js/bootstrap.min.js"
integrity="sha384-w1Q4orYjBQndcko6MimVbzY0tgp4pWB4lZ7lr30WKz0vr/aWKhXdBNmNb5D92v7s"
crossorigin="anonymous"></script>
<script>
// $.get("/get_conf", function(data, status){
// for (var i = 0; i < data['data'].length; i++){
// $(".nav").append('<li class="nav-item"><a class="nav-link" href="/conf/'+data['data'][i]['conf']+'">'+data['data'][i]['conf']+'</a></li>');
// $("main").append('<div class="card mt-3"><div class="card-body"><a href="/conf/'+data['data'][i]['conf']+'"><h5 class="card-title">'+data['data'][i]['conf']+'</h5></a><h6 class="card-subtitle mb-2 text-muted">Status: '+data['data'][i]['status']+'<span class="dot dot-'+data['data'][i]['status']+'"></span></h6></div></div>')
// }
// });
setInterval(function(){
location.reload();
},10000)
</script>
</html>