Code-Review: tote Stellen entfernt, Umwege vereinfacht
- SQLite-Import, migrate.sh, notes/migrations.md und altes jQuery-Skript entfernt - Backend: scanEntry/queryEntries statt doppelter Scan-Liste, Feed-Queries direkt statt feedWhere, Thread ohne Map-Umweg, gemeinsame Helfer für Cookie-Löschen und Mediennamen, usernameTaken - Frontend: PostForm für Beitrag und Antwort, EntryCard in Deleted/LiveCard aufgeteilt, tote CSS-Regeln und Typen entfernt, Strich-Regeln zusammengelegt - Rechtstexte verlinken /stats; Kommentare ohne Vorgeschichte Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01TiXsPUqw7oeomZ8wZrQW5q
This commit is contained in:
co-authored by
Claude Opus 5.5
parent
d1bd0f5f1d
commit
df0cfec132
@@ -220,6 +220,22 @@ func recordImpression(path, anonIP, asn string) {
|
||||
)
|
||||
}
|
||||
|
||||
// handleStats liefert die Kennzahlen für die Statuszeile unter dem Titel:
|
||||
// registrierte Nutzer und nicht-gelöschte Beiträge.
|
||||
func handleStats(w http.ResponseWriter, r *http.Request) error {
|
||||
var users, entries int64
|
||||
if err := db.QueryRow(
|
||||
`SELECT (SELECT COUNT(*) FROM account), (SELECT COUNT(*) FROM entry WHERE deleted = 0)`).
|
||||
Scan(&users, &entries); err != nil {
|
||||
return Internal(err)
|
||||
}
|
||||
writeJSON(w, http.StatusOK, map[string]any{
|
||||
"users": users,
|
||||
"entries": entries,
|
||||
})
|
||||
return nil
|
||||
}
|
||||
|
||||
// handleStatsDetail liefert die Kennzahlen für die Statistik-Seite. Anders als
|
||||
// /stats (Tagline, bei jedem Aufruf) darf das hier ruhig mehrere Aggregate
|
||||
// rechnen. Öffentlich, kein Auth.
|
||||
|
||||
Reference in New Issue
Block a user