implement state update on background (basics for subscription feature)

This commit is contained in:
yggverse 2026-03-26 20:58:31 +02:00
parent e77d101b70
commit 8daa729bf9
8 changed files with 167 additions and 96 deletions

View file

@ -2,46 +2,53 @@
{% block content %}
<h2>Game</h2>
{% if servers %}
<table>
<thead>
<tr>
<th>Address</th>
<th>Host</th>
<th>Ping</th>
<th>Protocol</th>
<th>Gamedir</th>
<th>Map</th>
<th>Team</th>
<th>Coop</th>
<th>Password</th>
<th>Dedicated</th>
<th>DM</th>
<th>Max</th>
<th>Online</th>
<th>Status</th>
</tr>
<thead>
</tbody>
{% for server in servers %}
<tr>
<td>{{ server.address }}</td>
<td>{{ server.host }}</td>
<td>{{ server.ping }}</td>
<td>{{ server.protocol }}</td>
<td>{{ server.gamedir }}</td>
<td>{{ server.map }}</td>
<td>{{ server.team }}</td>
<td>{{ server.coop }}</td>
<td>{{ server.password }}</td>
<td>{{ server.dedicated }}</td>
<td>{{ server.dm }}</td>
<td>{{ server.maxcl }}</td>
<td>{{ server.numcl }}</td>
<td>{{ server.status }}</td>
</tr>
{% endfor %}
</tbody>
</table>
<form name="subscribe" method="get" action="/">
<table>
<thead>
<tr>
{# @TODO subscribe<th></th>#}
<th>Address</th>
<th>Host</th>
<th>Ping</th>
<th>Protocol</th>
<th>Gamedir</th>
<th>Map</th>
<th>Team</th>
<th>Coop</th>
<th>Password</th>
<th>Dedicated</th>
<th>DM</th>
<th>Max</th>
<th>Online</th>
<th>Status</th>
</tr>
<thead>
</tbody>
{% for server in servers %}
<tr>
{# @TODO subscribe<td><input type="checkbox" name="server[]" value="{{ server.address }}" /></td>#}
<td>{{ server.address }}</td>
<td>{{ server.host }}</td>
<td>{{ server.ping }}</td>
<td>{{ server.protocol }}</td>
<td>{{ server.gamedir }}</td>
<td>{{ server.map }}</td>
<td>{{ server.team }}</td>
<td>{{ server.coop }}</td>
<td>{{ server.password }}</td>
<td>{{ server.dedicated }}</td>
<td>{{ server.dm }}</td>
<td>{{ server.maxcl }}</td>
<td>{{ server.numcl }}</td>
<td>{{ server.status }}</td>
</tr>
{% endfor %}
</tbody>
</table>
{# @TODO subscribe
<input type="number" name="online" value="1" />
<input type="submit" value="Subscribe" />#}
</form>
{% else %}
<div>
<p>Nobody.</p>

View file

@ -9,7 +9,7 @@
padding: 0;
font-family: monospace;
color-scheme: light dark;
--container-max-width: 1024px;
--container-max-width: 1128px;
--color-success: #4bc432;
--color-warning: #f37b21;
--color-error: #ff6363;
@ -75,6 +75,19 @@
position: relative;
}
header > div {
display: inline-block;
}
header > div:first-child {
float: left;
}
header > div:last-child {
float: right;
text-align: right;
}
main {
display: block;
margin: 16px auto;
@ -101,10 +114,7 @@
<body>
<header>
<h1></h1>
<div class="float-left">
</div>
<div class="float-right">
<div>
<strong>
<a href="/">{{ title }}</a> |
<a href="https://store.steampowered.com/app/70/HalfLife/" target="_blank">Game</a> |
@ -113,18 +123,21 @@
<a href="https://github.com/YGGverse/hlstate-rs" target="_blank" title="v{{ version }}">GitHub</a>
</strong>
</div>
<div>
{% if updated %}{{ updated }}{% endif %}
</div>
</header>
<main>
{% block content %}{% endblock content %}
</main>
<footer>
<h2>Master</h2>
<h2>Masters</h2>
{% if masters %}
<ul>
{% for master in masters %}
<li{# class="online" #}>{{ master }}</li>
{% endfor %}
<ul>
</ul>
{% endif %}
</footer>
</body>