Neue Seite /stats.html: Basiszahlen, Reichweite, Netze nach Betreiber
(ASN), Aufrufe pro Tag und beliebteste Seiten. Diagramme als CSS-Balken
(Breite per CSSOM, kein Inline-style) statt Chart-Library -- bleibt
CSP-konform. Verlinkt in der Legal-Nav aller Seiten.
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
paste-Listener am Formular übernimmt ein Clipboard-Bild in den File-Input
(via DataTransfer), benennt es zu zwischenablage.<ext> und zeigt einen
grauen Hinweis über dem Datei-Input. Kein Bild -> normaler Text-Paste.
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
Schlanke Wiederbelebung des alten Uptime-Schriftzugs aus der Python-Version,
jetzt als kleine Zeile direkt unter dem Titel: Tage seit fixem Startpunkt
(13.12.2025, Kontinuität) plus aktuelle Profil- und Beitragszahlen.
- /stats: neuer öffentlicher Endpunkt (COUNT user / COUNT entry WHERE deleted=0)
- app.js: renderStats() rechnet die Tage und füllt #stats per textContent
- index.html: <p id="stats" class="tagline"> unter der h1
- app.css: kleine graue .tagline-Zeile
Kein Inline-JS/CSS -> strikte CSP bleibt unangetastet.
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
Impressum/Datenschutz/Beitragsordnung als Links ueber der Ueberschrift,
Ueberschrift in "Kontrollverlust" umbenannt (verlinkt auf den Feed),
"mein Profil" und "zurueck zum Feed" im Button-Layout. datenschutz.html
aus bb6b966 wiederhergestellt, damit der Link nicht ins Leere fuehrt.
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
- Account-Section nur sichtbar wenn eingeloggt; zeigt Nutzername und
Mitglied-seit-Datum aus /user/info
- Konto loeschen in aufklappbarer Danger-Zone, Passwortbestaetigung
plus zusaetzliche confirm()-Rueckfrage (unwiderruflich)
- nach Loeschung zurueck zur Login-Ansicht via refreshHeader
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
Reimplements the Flask app as a Go HTTP API (chi + modernc sqlite) with a
minimal vanilla-JS frontend in web/. Endpoints mirror the original Flask
routes but return JSON instead of HTML.
- auth: login/logout/register/sessioninfo/headerbar with crypto/rand tokens
- entry: paginated feed (single JOIN), create with image scaling
- user: profile, userinfo; delete still a stub
- requireAuth middleware passes uid via context
- notes/api.md documents the API and schema
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>