Files
dogfather-universe/workspace/teilen.html
T
DogFatherGitandClaude Opus 5 d231e989cf Screenshots an einen Beitrag hängen
Filipe (Runde vom 23.09.2026): „mach das man da bitte screenshots
oder kurzschnitte von den live reinposten kann. nach dem selben
prinzip wie bei den anderen nebendran."

ES FEHLTE WENIGER, ALS MEINE EIGENE NOTIZ BEHAUPTETE. Dort stand „ein
eigener Brocken (Upload, Groessenpruefung, Sicherheit), kein
Nebenbei". Nachgemessen statt geglaubt: Die Spalte `dateien.eintrag_id`
gibt es seit dem Video-Einlesen, die Karten zeichnen ihren
Bildstreifen bereits, und die Auslieferung entscheidet die
Sichtbarkeit schon am BEITRAG statt an der Ablage. Gefehlt hat genau
ein Weg -- das Hochladen. Wieder ein Beleg dafuer, dass auch meine
eigenen Listen altern.

„NACH DEM SELBEN PRINZIP" IST WOERTLICH GENOMMEN: `dateiErkennen` aus
dem Chat (eine Fassung, drei Benutzer -- Chat, Support, Beitraege),
derselbe Ordner wie die Dateiablage (die Auslieferung kennt nur einen
Pfad), `express.raw` mit Rechtepruefung VOR der Annahme des Rumpfes.

DER KNOPF STEHT AN DER KARTE, nicht im Anlege-Formular. Ein
Bildschirmfoto faellt einem meist spaeter ein -- beim Nachschauen,
wenn jemand fragt. Wer es nur beim Anlegen mitgeben koennte, muesste
den Beitrag loeschen und neu schreiben. Er erscheint nur, solange
noch Platz ist (drei je Beitrag), damit er nie eine Absage bringt.

ZWEI FEHLER IN MEINEM EIGENEN CODE, beide beim ersten Laden gefunden:
`DATEN_ORDNER` war nicht importiert, und `bereichVon()` hatte ich
erfunden -- es gibt sie nicht. Der Bereich steht am Eintrag selbst
und ist dort auch richtiger: Er kommt aus der Datenbank, nicht aus
der Adresse.

UND ZWEI MESSFEHLER, beide dieselbe Sorte wie den ganzen Tag: Ich
fragte „darf die Community?" an einem Beitrag, den sie gar nicht
sieht (404 -- richtige Antwort, falsche Frage), dann an einem
freigegebenen (403 -- sie braucht eine Stufe zum Schreiben, auch das
richtig). Die Frage, die wirklich zaehlt, ist eine andere: Gilt fuer
ein Bild dieselbe Regel wie fuer einen Beitrag? Gemessen: Beitrag
403, Bild 403. Ein zweiter Weg mit anderen Rechten waere die Tuer,
die niemand bemerkt.

Gemessen: pruef-eintrag-bild, 24 Pruefungen, 0 Fehler -- darunter
als Bild getarntes HTML (415), SVG (415, es ist XML und darf Skripte
enthalten), PDF (415), die Grenze von drei am Server, und das
Abnehmen samt Datei. Gruen: pruef-highlights (31), pruef-anhaenge,
pruef-fassungen, pruef-galerie, pruef-video, pruef-css-klassen.

Co-Authored-By: Claude Opus 5 <[email protected]>
2026-09-24 11:44:01 +02:00

127 lines
5.1 KiB
HTML
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
<!doctype html>
<html lang="de">
<head>
<meta charset="utf-8" />
<meta name="viewport" content="width=device-width, initial-scale=1, viewport-fit=cover" />
<title>Video übernehmen · Spicy &amp; Dogi</title>
<meta name="robots" content="noindex, nofollow" />
<link rel="manifest" href="/workspace/app.webmanifest" />
<meta name="theme-color" content="#06090f" />
<link rel="icon" type="image/png" href="/assets/img/app-symbole/workspace-32.png?v=202609241143" />
<link rel="apple-touch-icon" href="/assets/img/app-symbole/workspace-180.png?v=202609241143" />
<link rel="stylesheet" href="assets/css/gate.css?v=202609241143" />
<link rel="stylesheet" href="assets/css/start.css?v=202609241143" />
<link rel="stylesheet" href="assets/css/bereich.css?v=202609241143" />
<link rel="stylesheet" href="assets/css/module.css?v=202609241143" />
<link rel="stylesheet" href="assets/css/haus.css?v=202609241143" />
</head>
<body class="start">
<div class="schleier" aria-hidden="true"></div>
<header class="kopfleiste">
<button type="button" class="zurueck-knopf" id="zurueck" hidden>
<svg class="zurueck-knopf__pfeil" viewBox="0 0 24 24" aria-hidden="true">
<path d="M14.5 5.5 8 12l6.5 6.5" />
</svg>
<span class="zurueck-knopf__text">Zurück</span>
</button>
<p class="marke"><span class="marke__text"><a class="zurueck" href="start.html">Team&nbsp;Dogi</a> · Video übernehmen</span></p>
<div class="kopfleiste__rechts">
<span class="wer" id="wer">…</span>
<button type="button" class="abmelden" id="abmelden">Abmelden</button>
</div>
</header>
<main class="inhalt">
<!-- ==================================================================
AUS „TEILEN" WIRD EIN TIPP (17.09.2026)
Schritt 4 aus dem Video-Plan.
Filipe postet ein Video auf dem Handy. Bisher hätte er den Link
kopieren, die App öffnen, den richtigen Bereich suchen und das
Feld finden müssen – fünf Schritte, von denen jeder einzelne der
Grund sein kann, es später zu machen. Und später heißt nie.
Jetzt: in TikTok auf „Teilen", „DogFather" wählen, fertig. Diese
Seite ist das Ziel dieses Tipps.
WARUM SIE NICHT SOFORT EINTRÄGT: Weil sie nicht wissen kann, ob
der Griff in die Tasche gemeint war. Ein Video, das ungefragt in
den Highlights landet, muss jemand wieder löschen – und das ist
mehr Arbeit als ein Tipp auf „Übernehmen". Sie zeigt also, was
sie verstanden hat, und wartet auf eine Bestätigung.
WOHIN, IST EINE FRAGE UND KEINE ANNAHME: Highlights sind
vorausgewählt, weil dort die Videos hingehören. Aber ein Clip
kann auch eine Antwort auf einen Wunsch sein.
============================================================== -->
<section class="kopf-zeile">
<div>
<p class="marke">Geteilt</p>
<h1 class="titel">Video übernehmen</h1>
<p class="unterzeile">
Titel und Coverbild werden von TikTok geholt – du musst nichts abtippen.
</p>
</div>
</section>
<p class="fehler" id="fehler" role="alert" aria-live="polite"></p>
<section class="tl-seite" id="teilen" aria-busy="true">
<p class="leise" id="ladezeile">einen Moment …</p>
<!-- Was angekommen ist. Steht ganz oben, weil es die erste Frage
beantwortet: „hat er den richtigen Link erwischt?" -->
<div class="tl-fund" id="fund" hidden>
<p class="tl-label">Dieser Link ist angekommen:</p>
<p class="tl-url" id="url-text"></p>
</div>
<!-- Wohin. -->
<div class="tl-wahl" id="wahl" hidden>
<p class="tl-label" id="wohin-label">Wohin soll es?</p>
<div class="tl-bretter" role="group" aria-labelledby="wohin-label" id="bretter"></div>
</div>
<div class="tl-knoepfe" id="knoepfe" hidden>
<button type="button" class="knopf" id="uebernehmen">Übernehmen</button>
<a class="schritt" href="start.html" id="abbrechen">Doch nicht</a>
</div>
<!-- Wenn gar kein Link dabei war. Kein Formular als Strafe, sondern
ein Feld zum Einfügen – man ist ja schon hier. -->
<div class="tl-haendisch" id="haendisch" hidden>
<label class="tl-label" for="eingabe">Link zum Video</label>
<input type="url" id="eingabe" inputmode="url" autocomplete="off"
placeholder="https://www.tiktok.com/@dogfather0804/video/…" />
</div>
<!-- Das Ergebnis. -->
<div class="tl-fertig" id="fertig" hidden>
<p class="tl-fertig-satz" id="fertig-satz"></p>
<div class="tl-knoepfe">
<a class="knopf" id="hin" href="start.html">Ansehen</a>
<a class="schritt" href="start.html">Fertig</a>
</div>
</div>
</section>
</main>
<script src="assets/js/meldung.js?v=202609241143" defer></script>
<script src="assets/js/nachfrage.js?v=202609241143" defer></script>
<script src="assets/js/wahl.js?v=202609241143" defer></script>
<script src="assets/js/bereiche.js?v=202609241143" defer></script>
<script src="assets/js/installieren.js?v=202609241143" defer></script>
<script src="assets/js/kopf.js?v=202609241143" defer></script>
<script src="assets/js/glocke.js?v=202609241143" defer></script>
<script src="assets/js/teilen.js?v=202609241143" defer></script>
</body>
</html>