Es laeuft: TikTok baut die Seite nur fuer Handys -- und zwei Vorlagen statt einer

Filipes Kachel ging nicht. Der Grund war nicht TikTok, sondern EIN WORT
in unserer Kennung.

DAS WORT HEISST "Mobile"
  Gestern hiess es hier noch "17 KB, keine Daten, von jedem Weg aus".
  Nachgemessen mit einem Keksglas und fuenf Kennungen:

    Desktop-Kennung, ohne Kekse      17 KB   keine Daten
    Desktop-Kennung, MIT Keksen      17 KB   keine Daten
    Android-Kennung, ohne Kekse     939 KB   DATEN
    iPhone-Kennung,  mit Keksen     939 KB   DATEN
    TikTok-App,      mit Keksen      42 KB   keine Daten

  TikTok baut die Seite serverseitig NUR fuer die Handyfassung auf; am
  Rechner laedt sie sich mit JavaScript nach. Kekse, Sprache und
  Accept spielen keine Rolle -- einzeln nachgemessen.

  UND WIR BLEIBEN EHRLICH: Unser Name und unsere Adresse stehen hinten
  an der Kennung. Nachgemessen liefert TikTok damit dieselben 939 KB.
  Es kostet also nichts. Die Pruefung verlangt jetzt BEIDES: "Mobile"
  (sonst kommt nichts an) und unseren Namen (sonst ist es eine
  Verkleidung).

ZWEI VORLAGEN, NICHT EINE
  Filipes Einladung fuehrt zu "LIVE Glow Up" -- und die ist ganz
  anders gebaut als "Gipfelstuermer". Ihr fehlen gleich DREI
  Bausteine, auf denen der Bauplan beruht: live_rule_introduction,
  live_reward_introduction, live_campaign_intro. Stattdessen hat sie
  live_task_group (Aufgaben als Reiter) und live_secondary_gift.

  Der Leser kann jetzt beide. Gemessen:

    Gipfelstuermer  5 Aufgaben, 5 Geschenke, 6 Preisgruppen, 0 Hinweise
    LIVE Glow Up    2 Aufgaben, 1 Geschenk,  0 Preise,       2 Hinweise

  Die doppelten Reiter fallen weg: Die Vorlage legt je Reiter zwei
  Eintraege an (Creator und Zuschauer), und zweimal derselbe Haken
  waere ein Haken an zwei Stellen.

"HAT KEINE" IST ETWAS ANDERES ALS "KONNTE NICHT GELESEN WERDEN"
  Ohne diese Unterscheidung haette LIVE Glow Up vier Hinweise gemeldet,
  die alle nach einem Fehler klingen -- obwohl schlicht nichts da ist.
  Das eine schickt jemanden suchen, das andere sagt ihm, dass nichts
  fehlt. Entsprechend haengt der Regeltext auch kein pauschales "Bitte
  nachtragen" mehr an: Jeder Hinweis sagt selbst, ob etwas zu tun ist.

FUENFTE PRUEFDATEI
  kampagne-aufgabengruppe.html.br -- die echte Seite von LIVE Glow Up,
  unveraendert, unangemeldet geholt (uid "0", anchor_id leer),
  147 KB gepackt, sofort zurueckgelesen und Byte fuer Byte verglichen.
  Ohne sie koennte der Leser eine Vorlage und faellt bei der naechsten
  Einladung um.

GEPRUEFT
  pruef-kampagne-lesen 112 -> 128 (eigener Abschnitt fuer die zweite
  Vorlage, mit Gegenprobe: Gipfelstuermer meldet weiterhin nichts) ·
  pruef-kampagne 102 -> 103 · pruef-struktur, pruef-zeichen, pruef-video

Co-Authored-By: Claude Opus 5 <[email protected]>
This commit is contained in:
2026-10-07 18:15:50 +02:00
co-authored by Claude Opus 5
parent 015ac7738e
commit b49a03d811
53 changed files with 940 additions and 720 deletions
+21 -6
View File
@@ -437,11 +437,26 @@ melde("=== 2. Jede Station wird einzeln geprüft ===");
`die drei Grenzen stehen: ${UMLEITUNGEN_MAX} Sprünge, `
+ `${FRIST_SEITE_MS / 1000} s, ${SEITE_MAX / 1048576} MB`);
/* EIN EHRLICHER NAME. Kein Abruf gibt sich als Browser aus. */
ok(gesehen.length > 0 && gesehen.every((g) => g.kennung.startsWith("DogfatherUniverse-Workspace/")),
/* DIE KENNUNG MUSS ZWEIERLEI KOENNEN (nachgemessen 07.10.2026).
1. NACH DER HANDYFASSUNG FRAGEN. TikTok baut die Seite
serverseitig nur fuer Handys auf. Gemessen: Desktop-Kennung
17 KB ohne Daten, Android-Kennung 939 KB mit Daten -- und es
haengt allein an diesem einen Wort.
2. SAGEN, WER FRAGT. Unser Name und unsere Adresse stehen
hinten dran. Nachgemessen liefert TikTok damit dieselben
939 KB -- es kostet also nichts, ehrlich zu sein.
Beides zusammen ist keine Verkleidung: Wir wollen die
Handyfassung und sagen dabei, wer wir sind. Faellt Teil 2 weg,
ist es eine; faellt Teil 1 weg, kommt nichts an. Deshalb wird
hier BEIDES verlangt. */
ok(gesehen.length > 0 && gesehen.every((g) => g.kennung.includes("DogfatherUniverse-Workspace/")),
`alle ${gesehen.length} Abrufe nennen, wer fragt`);
ok(/workspace\.dogfather-universe\.com/.test(KENNUNG) && !/Mozilla/i.test(KENNUNG),
"und die Kennung ist keine Browser-Verkleidung");
ok(/workspace\.dogfather-universe\.com/.test(KENNUNG),
" mit Adresse zum Nachsehen");
ok(/\bMobile\b/.test(KENNUNG),
" und sie fragt nach der Handyfassung -- sonst kommt nur eine leere Hülle");
}
/* =====================================================================
@@ -726,10 +741,10 @@ melde("=== 9. Was schiefgehen kann, wird verständlich gesagt ===");
/* OHNE PREISE: 201 MIT HINWEIS, nicht 502. Unvollständig ist etwas
anderes als falsch. */
const op = await einlesen(`Klick: ${TIK}/t/ohnepreise`);
ok(op.code === 201 && (op.j.hinweise || []).some((h) => h.includes("Preise")),
ok(op.code === 201 && (op.j.hinweise || []).some((h) => /Preis/.test(h)),
`ohne Preise: HTTP ${op.code} mit Hinweis „${(op.j.hinweise || [])[0]}“`);
const opZ = dbLesen("SELECT event_regeln FROM eintraege WHERE id = ?", op.j.id)[0];
ok(/Bitte nachtragen/.test(opZ.event_regeln || ""),
ok(/Preis/.test(opZ.event_regeln || ""),
"und die Kachel selbst sagt, dass etwas nachzutragen ist");
}