Alten Flask/Python-Code und Jinja-Templates entfernt

Go-Reimplementierung hat Feature-Paritaet (inkl. URL-Linkify im
JS-Frontend via linkify()). static/ bleibt (Go liefert /static/* aus
und legt Uploads unter static/media/ ab); alte Flask-Assets dort
unberuehrt.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
This commit is contained in:
2026-06-01 11:37:47 +02:00
co-authored by Claude Opus 4.8
parent e210df3e2e
commit 2ab08ebf9a
26 changed files with 0 additions and 888 deletions
-17
View File
@@ -1,17 +0,0 @@
<div id="headerbar">
<div class="headerbar-left">
{% if loggedin %}
<!--button hx-get="/auth/sessioninfo" hx-target="#main-frame">Username</button-->
<button onclick="if(confirm('Abmelden?')){location.href = '/auth/logout';}">Abmelden</button>
{% else %}
<button hx-get="/auth/login" hx-target="#main-frame">Anmelden</button>
<button hx-get="/auth/newuser" hx-target="#main-frame">Neuen Account erstellen</button>
{% endif %}
</div>
<div class="headerbar-right">
<a href="/static/docs/impressum.html">Impressum</a>
<a href="/static/docs/beitragsordnung.html">Beitragsordnung</a>
<a href="/static/docs/datenschutz.html">Datenschutz</a>
<a href="/static/docs/kontakt.html">Kontakt</a>
</div>
</div>
-17
View File
@@ -1,17 +0,0 @@
<h2>Einloggen</h2>
<form hx-post="/auth/login" hx-target="#main-frame">
<input type="text" name="user" placeholder="Nutzername" value="{{ username }}"><br>
<input type="password" name="pass" placeholder="Passphrase"><br>
<label>Automatisch abmelden in:</label>
<select name="timeout">
<option value="1200">20 Minuten</option>
<option value="3600" selected="selected">1 Stunde</option>
<option value="18000">5 Stunden</option>
<option value="86400">24 Stunden</option>
<option value="31536000">1 Jahr</option>
</select>
<button type="submit">Anmelden</button>
<div>
{{response}}
</div>
</form>
-3
View File
@@ -1,3 +0,0 @@
<h1>Willkommen, {{username}}!</h1>
<button hx-get="/auth/logout" hx-swap="outerHTML">Abmelden...</button>
-15
View File
@@ -1,15 +0,0 @@
<h2>Neuen Account registrieren</h2>
<form hx-post="/auth/newuser" hx-target="#main-frame" method="post">
<input type="text" name="user" placeholder="Nutzername" value="{{ username }}"><br>
<input type="password" name="pass1" placeholder="Passphrase"><br>
<input type="password" name="pass2" placeholder="Passphrase wiederholen"><br>
<label><input type="checkbox" name="pass2"> Ich bin mit der <a href="">Datenschutzerklärung</a> einverstanden!</label>
<button type="submit">Account registrieren!</button>
<div>
{% for r in responses %}
{{ r }} <br>
{% endfor %}
</div>
</form>
-4
View File
@@ -1,4 +0,0 @@
<h2>Willkommen im Kontrollverlust!</h2>
<p>Du kannst dich nun als {{username}} <button hx-get="/auth/login" hx-target="#main-frame">Anmelden</button>
!</p>
-5
View File
@@ -1,5 +0,0 @@
Sessionid: {{ sessionid }} <br>
UID: {{ uid }} <br>
Created: {{ created_at | timestamp }} <br>
Expires: {{ expires | timestamp }} <br>
Description: {{ description }} <br>
-67
View File
@@ -1,67 +0,0 @@
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8" />
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
<meta http-equiv="X-UA-Compatible" content="ie=edge" />
<title>{% block title %}{% endblock %}</title>
<link
rel="stylesheet"
href="https://cdnjs.cloudflare.com/ajax/libs/normalize/8.0.1/normalize.min.css"
integrity="sha512-NhSC1YmyruXifcj/KFRWoC561YpHpc5Jtzgvbuzx5VozKpWvQ+4nXhPdFgmx8xqexRcpAglTj9sIBWINXa8x5w=="
crossorigin="anonymous"
referrerpolicy="no-referrer"
/>
<link rel="stylesheet" href="/static/css/main.css" />
<script
src="https://cdn.jsdelivr.net/npm/htmx.org@2.0.8/dist/htmx.min.js"
integrity="sha384-/TgkGk7p307TH7EXJDuUlgG3Ce1UVolAOFopFekQkkXihi5u/6OCvVKyz1W+idaz"
crossorigin="anonymous"
></script>
<script
src="https://code.jquery.com/jquery-3.7.1.min.js"
integrity="sha256-/JqT3SQfawRcv/BIHPThkBvs0OEvtFFmqPF/lYI/Cxo="
crossorigin="anonymous"
></script>
<script src="/static/js/main.js"></script>
</head>
<body>
<div id="contentnotice">
<h1>Achtung!</h1>
<h3>Kontrollverlust</h3>
<div>
<p>Dieses Forum richtet sich ausschließlich an <strong>erwachsene Besucher:innen</strong>.</p>
<p>
Die Inhalte könnten <strong>explizite Sprache, anstößige Themen, gewalthaltige Äußerungen, sowie pornografische Darstellungen in Text-, Zeichnungs- oder angedeuteter Form</strong> enthalten.
</p>
<p>
<strong>Fotografische Nacktheit, reale Gewalt, Gore oder NSFL-Inhalte sind verboten</strong> – dennoch können Diskussionen und Beiträge für sensible Personen belastend sein.
</p>
<p>
Wenn du mit solchen Inhalten nicht konfrontiert werden möchtest, <a href="https://optical.toys/">verlasse die Seite jetzt</a>. Durch das Fortsetzen erklärst du dich damit einverstanden, dass du die Inhalte auf eigene Verantwortung nutzt.
</p>
</div>
<button onclick="location.href='https://optical.toys/'" >Ich möchte lieber etwas anderes sehen!</button>
<button onclick="setCookie('agreedToWarning', 'True', '1'); $('#contentnotice').hide()" >Ich bin erwachsen und verstehe die Warnung – weiter</button>
<br style="margin: 30px;">
</div>
<div hx-get="/auth/headerbar" hx-trigger="load"></div>
<div class="htmx-indicator" id="loading"></div>
<h1>Kontrollverlust</h1>
<br />
<span> Verbuggte scheise hier. Komm hack mich doch, trau dich! </span>
<br />
<span id="uptime-counter"></span>
<br />
<br />
<div id="main-frame" hx-indicator="#loading">
{% block content %}{% endblock %}
</div>
</body>
</html>
-15
View File
@@ -1,15 +0,0 @@
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<meta http-equiv="X-UA-Compatible" content="ie=edge">
<title>Database</title>
<link rel="stylesheet" href="style.css">
</head>
<body>
{% for tablename in tables %}
<a href="/database/{{ tablename[0] }}">{{ tablename[0] }}</a><br>
{% endfor %}
</body>
</html>
-9
View File
@@ -1,9 +0,0 @@
<table>
{% for row in data %}
<tr>
{% for column in row %}
<td>{{ column }}</td>
{% endfor %}
</tr>
{% endfor %}
</table>
-11
View File
@@ -1,11 +0,0 @@
<form hx-post="/entry/create" hx-target="#entry-rendertarget" method="post" enctype="multipart/form-data">
<textarea name="content"></textarea>
<input type="file" name="file">
<button type="submit">Beitrag erstellen!</button>
<div>
{% for r in responses %}
{{ r }} <br>
{% endfor %}
</div>
</form>
-31
View File
@@ -1,31 +0,0 @@
{% for p in posts %}
<div class="entry">
<div class="meta">{{ p[6] }} - {{ p[3] | timestamp }}<br /></div>
{% if p[4] != '' %}
<div class="content">
<p>{{ p[4] | content | safe}}</p>
</div>
{% endif %}
{% if p[5] != 'none' %}
<img src="/{{ p[5] }}" />
{% endif %}
<div
class="interactions"
id="int-{{p[1]}}"
hx-get="/entry/{{p[1]}}/interactions/none"
hx-trigger="load"
></div>
</div>
<hr />
{% endfor %}
<div
id="infinite-scroll-indicator"
hx-get="/entry/feed/{{page+1}}"
hx-trigger="revealed"
hx-swap="outerHTML"
>
<h2>Loading more...</h2>
</div>
-3
View File
@@ -1,3 +0,0 @@
<button hx-get="/entry/{{pid}}/interactions/left" hx-target="#int-{{pid}}">Links</button>
<span>{{stats}}</span>
<button hx-get="/entry/{{pid}}/interactions/right" hx-target="#int-{{pid}}">Rechts</button>
-6
View File
@@ -1,6 +0,0 @@
<button onclick="$('#auth-visible').show()" hx-get="/auth/login" hx-target="#auth-rendertarget">Anmelden</button>
<button onclick="$('#auth-visible').show()" hx-get="/auth/newuser" hx-target="#auth-rendertarget">Account erstellen</button>
<div id="auth-visible">
<div id="auth-rendertarget"></div>
<button onclick="$('#auth-visible').hide()">Abbrechen</button>
</div>
-17
View File
@@ -1,17 +0,0 @@
{% extends "baseof.html" %}
{% block title %}Kontrollverlust{% endblock %}
{% block content %}
<div id="auth-rendertarget"></div>
<hr>
<div hx-get="/entry/create" hx-trigger="load" id="entry-rendertarget"></div>
<hr>
<div hx-get="/entry/feed/0" hx-trigger="load" hx-indicator="none"></div>
{% endblock %}
-22
View File
@@ -1,22 +0,0 @@
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<meta http-equiv="X-UA-Compatible" content="ie=edge">
<title>My new Site!</title>
<link rel="stylesheet" href="style.css">
</head>
<body>
<h1>Upload new File</h1>
<span>{{ state }}</span>
<form method="post" enctype="multipart/form-data">
<input type=file name=file>
<input type=submit value=Upload>
</form>
{% for id in imagedata %}
{{ id }}
{% endfor %}
</body>
</html>
-13
View File
@@ -1,13 +0,0 @@
<div id="deleteuser-rendertarget">
<h2>Account dauerhaft löschen</h2>
<form hx-post="/user/delete" hx-target="#deleteuser-rendertarget" method="post">
<input type="password" name="pass1" placeholder="Passphrase"><br>
<button type="submit">Account Löschen!</button>
<div>
{% for r in responses %}
{{ r }} <br>
{% endfor %}
</div>
</form>
</div>
-10
View File
@@ -1,10 +0,0 @@
{% extends "baseof.html" %}
{% block content %}
Username: {{ username }} <br>
ID: {{ uid }} <br>
Profil erstellt: {{ created_at | timestamp }} <br>
<div hx-get="/user/delete" hx-trigger="load"></div>
{% endblock %}