feat: v0.5.8 - Anfragen taeglich zuruecksetzen, Kommando-Badges entfernt
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
This commit is contained in:
parent
1d768c6921
commit
0232dfccd5
|
|
@ -1,5 +1,10 @@
|
|||
# Changelog
|
||||
|
||||
## [0.5.8] - 2026-02-17
|
||||
### Changed
|
||||
- Anfragen-Zaehler zeigt nur noch Anfragen von heute (Reset um Mitternacht)
|
||||
- Kommando-Badges entfernt, nur noch Kanal-Aufschluesselung angezeigt
|
||||
|
||||
## [0.5.7] - 2026-02-17
|
||||
### Added
|
||||
- Anfragen-Aufschluesselung pro Kanal mit Kanalnamen im Dashboard
|
||||
|
|
|
|||
|
|
@ -1,4 +1,4 @@
|
|||
version: "0.5.7"
|
||||
version: "0.5.8"
|
||||
|
||||
bot:
|
||||
name: "MeshDD-Bot"
|
||||
|
|
|
|||
|
|
@ -1,6 +1,7 @@
|
|||
import aiosqlite
|
||||
import time
|
||||
import logging
|
||||
from datetime import datetime
|
||||
|
||||
logger = logging.getLogger(__name__)
|
||||
|
||||
|
|
@ -192,14 +193,14 @@ class Database:
|
|||
"SELECT COUNT(*) FROM nodes WHERE last_seen >= ?", (day_ago,)
|
||||
) as c:
|
||||
stats["nodes_24h"] = (await c.fetchone())[0]
|
||||
async with self.db.execute("SELECT COUNT(*) FROM commands") as c:
|
||||
today_start = datetime.now().replace(hour=0, minute=0, second=0, microsecond=0).timestamp()
|
||||
async with self.db.execute(
|
||||
"SELECT COUNT(*) FROM commands WHERE timestamp >= ?", (today_start,)
|
||||
) as c:
|
||||
stats["total_commands"] = (await c.fetchone())[0]
|
||||
async with self.db.execute(
|
||||
"SELECT command, COUNT(*) as cnt FROM commands GROUP BY command ORDER BY cnt DESC"
|
||||
) as cursor:
|
||||
stats["command_breakdown"] = {row[0]: row[1] async for row in cursor}
|
||||
async with self.db.execute(
|
||||
"SELECT channel, COUNT(*) as cnt FROM commands GROUP BY channel ORDER BY cnt DESC"
|
||||
"SELECT channel, COUNT(*) as cnt FROM commands WHERE timestamp >= ? GROUP BY channel ORDER BY cnt DESC",
|
||||
(today_start,),
|
||||
) as cursor:
|
||||
stats["channel_breakdown"] = {row[0]: row[1] async for row in cursor}
|
||||
return stats
|
||||
|
|
|
|||
|
|
@ -102,17 +102,11 @@
|
|||
</div>
|
||||
</div>
|
||||
|
||||
<!-- Command Breakdown -->
|
||||
<!-- Channel Breakdown -->
|
||||
<div class="card card-outline mb-2">
|
||||
<div class="card-body py-2 px-3 d-flex flex-column gap-1">
|
||||
<div class="d-flex align-items-center gap-2 flex-wrap">
|
||||
<small class="text-body-secondary"><i class="bi bi-bar-chart-fill me-1"></i>Anfragen:</small>
|
||||
<span id="commandBreakdown" class="d-flex gap-1 flex-wrap"></span>
|
||||
</div>
|
||||
<div class="d-flex align-items-center gap-2 flex-wrap">
|
||||
<small class="text-body-secondary"><i class="bi bi-broadcast me-1"></i>Kanaele:</small>
|
||||
<span id="channelBreakdown" class="d-flex gap-1 flex-wrap"></span>
|
||||
</div>
|
||||
<div class="card-body py-2 px-3 d-flex align-items-center gap-2 flex-wrap">
|
||||
<small class="text-body-secondary"><i class="bi bi-broadcast me-1"></i>Anfragen/Kanal:</small>
|
||||
<span id="channelBreakdown" class="d-flex gap-1 flex-wrap"></span>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
|
|
|
|||
|
|
@ -166,16 +166,6 @@ function updateStats(stats) {
|
|||
document.getElementById('statNodes24h').textContent = stats.nodes_24h || 0;
|
||||
document.getElementById('statCommands').textContent = stats.total_commands || 0;
|
||||
|
||||
const breakdown = document.getElementById('commandBreakdown');
|
||||
const cmds = stats.command_breakdown || {};
|
||||
if (Object.keys(cmds).length > 0) {
|
||||
breakdown.innerHTML = Object.entries(cmds).map(([cmd, count]) =>
|
||||
`<span class="badge bg-primary bg-opacity-75">${escapeHtml(cmd)} <span class="badge bg-light text-dark ms-1">${count}</span></span>`
|
||||
).join('');
|
||||
} else {
|
||||
breakdown.innerHTML = '<span class="text-body-secondary small">Noch keine Anfragen</span>';
|
||||
}
|
||||
|
||||
const chBreakdown = document.getElementById('channelBreakdown');
|
||||
const chCounts = stats.channel_breakdown || {};
|
||||
if (Object.keys(chCounts).length > 0) {
|
||||
|
|
|
|||
Loading…
Reference in a new issue