home: some stats

This commit is contained in:
Iain Learmonth 2022-04-21 17:10:38 +01:00
parent a33ef03607
commit 662e5a34e9
2 changed files with 42 additions and 2 deletions

View file

@ -14,7 +14,7 @@ portal = Blueprint("portal", __name__, template_folder="templates", static_folde
@portal.app_template_filter("mirror_expiry") @portal.app_template_filter("mirror_expiry")
def calculate_mirror_expiry(s): def calculate_mirror_expiry(s):
expiry = s + timedelta(days=3) expiry = s + timedelta(days=3)
countdown = expiry - datetime.utcnow() countdown = expiry - datetime.now(timezone.utc)
if countdown.days == 0: if countdown.days == 0:
return f"{countdown.seconds // 3600} hours" return f"{countdown.seconds // 3600} hours"
return f"{countdown.days} days" return f"{countdown.days} days"
@ -29,7 +29,12 @@ def format_datetime(s):
@portal.route("/") @portal.route("/")
def portal_home(): def portal_home():
return render_template("home.html.j2", section="home") groups = Group.query.order_by(Group.group_name).all()
now = datetime.now(timezone.utc)
last24 = len(Proxy.query.filter(Proxy.deprecated > (now - timedelta(days=1))).all())
last72 = len(Proxy.query.filter(Proxy.deprecated > (now - timedelta(days=3))).all())
lastweek = len(Proxy.query.filter(Proxy.deprecated > (now - timedelta(days=7))).all())
return render_template("home.html.j2", section="home", groups=groups, last24=last24, last72=last72, lastweek=lastweek)
@portal.route("/groups") @portal.route("/groups")

View file

@ -3,4 +3,39 @@
{% block content %} {% block content %}
<h1 class="h2 mt-3">Welcome</h1> <h1 class="h2 mt-3">Welcome</h1>
<p>Welcome to the Bypass Censorship portal.</p> <p>Welcome to the Bypass Censorship portal.</p>
<div class="row row-cols-1 row-cols-md-3 g-4">
<div class="col">
<div class="card h-100">
<h3 class="h4 card-header">Groups</h3>
<div class="card-body">
<h5 class="card-title">Active Groups: {{ groups | count }}</h5>
<p class="card-text">{% for group in groups %}<a href="{{ url_for("portal.edit_group", group_id=group.id) }}" title="{{ group.description }}">{{ group.group_name }}</a>{{ ", " if not loop.last else "" }}{% endfor %}</p>
</div>
</div>
</div>
<div class="col">
<div class="card h-100">
<h3 class="h4 card-header">Proxies</h3>
<div class="card-body">
<h5 class="card-title">Total proxies running: {{ proxies | count }}</h5>
<p class="card-text">Marked blocked:
<ul class="card-text">
<li>Last 24 hours: {{ last24 }}</li>
<li>Last 72 hours: {{ last72 }}</li>
<li>Last week: {{ lastweek }}</li>
</ul>
</div>
</div>
</div>
<div class="col">
<div class="card h-100">
<h3 class="h4 card-header">More stats</h3>
<div class="card-body">
<h5 class="card-title">Future dev goal</h5>
<p class="card-text">This is a longer card with supporting text below as a natural lead-in to additional content.</p>
</div>
</div>
</div>
</div>
{% endblock %} {% endblock %}