home: some stats
This commit is contained in:
parent
a33ef03607
commit
662e5a34e9
2 changed files with 42 additions and 2 deletions
|
@ -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")
|
||||||
|
|
|
@ -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 %}
|
Loading…
Add table
Add a link
Reference in a new issue