Zentrale: "0 betreut" war fuer die Community dieselbe tote Zahl

Im Code stand die Loesung schon -- fuer jemand anderen. Am 10.09.2026
wurde dort vermerkt:

  "BETREUT" IST FUER EINEN MODI IMMER NULL. Er betreut keine Creator.
  Auf seiner Startseite stand deshalb dauerhaft "0 betreut": eine
  Zahl, die nie etwas anderes sagen kann, und damit schlimmer als
  keine. Wer sie sieht, sucht nach dem Fehler.

Fuer ein Mitglied der Community gilt das erst recht -- und dort blieb
es stehen. Dieselbe Zahl, derselbe Grund, dieselbe Wirkung.

Jetzt steht dort, was die Community wirklich betrifft: WUENSCHE OFFEN.
Der Ort, an dem sie mitentscheidet, was als Naechstes passiert -- eine
Zahl, die zum Hingehen einlaedt, statt eine, die nichts sagt.

WORAN DIE ENTSCHEIDUNG HAENGT: `freigabeBedingung` gibt nur fuer Leute
von aussen eine SQL-Bedingung zurueck, sonst null. Damit ist die Frage
"ist das jemand aus der Community" schon beantwortet, ohne dass hier
ein Rollenname steht -- und dieselbe Bedingung sorgt dafuer, dass nur
gezaehlt wird, was diese Person auch sehen darf.

GEMESSEN, beide Seiten:
  Community : "4 Wuensche offen"
  DogFather : "2 im Team" (unveraendert)
pruef-zentrale-ring: 14 Pruefungen, 0 Fehler.

Co-Authored-By: Claude Opus 5 <[email protected]>
This commit is contained in:
2026-09-18 21:44:27 +02:00
co-authored by Claude Opus 5
parent 4f5ac04bc9
commit c2a8c5f15f
2 changed files with 61 additions and 6 deletions
+23
View File
@@ -237,6 +237,23 @@ console.log("");
const zahlenlinks = await seite.evaluate(() =>
[...document.querySelectorAll("#zahlen a")].map((a2) => a2.getAttribute("href")));
console.log(` Zahlen-Links: ${zahlenlinks.length}`);
/* DIE ZENTRALE OBEN: Ring, drei Zaehler, Uhr. Was davon betrifft
ein Mitglied ueberhaupt? */
const zentrale = await seite.evaluate(() => {
const txt = (w) => (document.querySelector(w)?.textContent || "").replace(/\s+/g, " ").trim();
return {
ring: txt(".ring, .ringblock, [class*='ring']"),
zaehler: [...document.querySelectorAll(".standzahl, .stand, [class*='stand']")]
.map((e) => e.textContent.replace(/\s+/g, " ").trim()).filter(Boolean).slice(0, 6),
kopfzeilen: [...document.querySelectorAll(".zentrale *")]
.map((e) => e.children.length ? "" : (e.textContent || "").replace(/\s+/g, " ").trim())
.filter((t) => t && t.length < 60).slice(0, 14),
};
});
console.log(` Ring: „${zentrale.ring.slice(0, 60)}"`);
console.log(` Zaehler: ${zentrale.zaehler.join(" | ") || "(nicht gefunden)"}`);
console.log(` Texte oben: ${zentrale.kopfzeilen.join(" · ")}`);
if (zahlenlinks.length) {
const ziel = new URL(zahlenlinks[0], `${BASIS}/workspace/`).href;
const antwort = await seite.goto(ziel, { waitUntil: "domcontentloaded" });
@@ -319,11 +336,17 @@ console.log(fehlerAufSeite.length
block: !document.getElementById("zahlen-block")?.hidden,
links: document.querySelectorAll("#zahlen a").length,
satz: document.body.innerText.includes("Vorarbeiten"),
/* Behaelt DogFather seine dritte Zahl? „Wuensche offen" waere fuer
ihn die falsche -- er sieht ohnehin alles. */
drittezahl: [...document.querySelectorAll(".standzahl, .stand, [class*='stand']")]
.map((e) => e.textContent.replace(/\s+/g, " ").trim())
.find((t) => /betreut|im Team|Wünsche offen/.test(t)) || "(keine)",
}));
console.log("");
console.log("=== Gegenprobe: DogFather auf derselben Seite ===");
console.log(` Aufgabenblock: ${z.block ? "DA" : "FEHLT"} · Zahlen-Links: ${z.links}`
+ ` · „Vorarbeiten": ${z.satz ? "ja" : "nein"}`);
console.log(` Dritte Zahl: ${z.drittezahl}`);
await ctx2.close();
}