Eine Null zu viel -- HasiDog-Videos waeren abgelehnt worden
In KANAELE stand "@hasidog00804". Der Account heisst "@hasidog0804". Nachgemessen bei TikTok selbst: der richtige hat 65 Follower, der andere liefert "Couldn't find this account". Das war nicht kosmetisch. `kanalVonHandle` ordnet ein hochgeladenes Video ueber genau diesen Text einem Kanal zu. Ein echtes HasiDog-Video waere mit 403 abgelehnt worden -- und die Begruendung haette gelautet: "ist keiner deiner Kanaele. Moeglich sind: @dogfather0804, @hasidog00804, @dogis.modi.gang." Eine Sackgasse, die zusaetzlich eine Adresse nennt, die es nicht gibt. WARUM ES KEINE PRUEFUNG GEFUNDEN HAT: pruef-kanalzeile und pruef-teilen hatten denselben Handle abgeschrieben. Zwei Abschriften desselben Tippfehlers bestaetigen sich gegenseitig -- beide waren gruen. Sie leiten ihn jetzt aus KANAELE ab und koennen ihn damit gar nicht mehr eigenstaendig falsch haben. Gefunden hat es ein Vergleich: Die oeffentliche Website verlinkt dieselben Accounts und hatte die richtige Schreibweise. Genau das ist jetzt Abschnitt 7 von pruef-kanaele -- alle Handles muessen auch draussen vorkommen, mit Gegenprobe, dass eine falsche Adresse durchfaellt. Ohne Netz, damit eine Stoerung bei TikTok nicht zu einem roten Alarm im Haus wird. Co-Authored-By: Claude Opus 5 <[email protected]>
This commit is contained in:
@@ -271,6 +271,75 @@ melde("=== 6. Nicht nur nachgeplappert ===");
|
||||
.map((v) => `${v.kanal ?? "leer"}:${v.n}`).join(" ")})`);
|
||||
}
|
||||
|
||||
/* =======================================================================
|
||||
7. STIMMEN DIE ADRESSEN MIT DER OEFFENTLICHEN SEITE UEBEREIN?
|
||||
======================================================================= */
|
||||
melde("");
|
||||
melde("=== 7. Dieselben Accounts wie draussen ===");
|
||||
{
|
||||
/* WARUM DIESER ABSCHNITT AM 21.09.2026 DAZUKAM.
|
||||
|
||||
In KANAELE stand "@hasidog00804" -- eine Null zu viel. Nachgemessen
|
||||
bei TikTok selbst: "@hasidog0804" hat 65 Follower, "@hasidog00804"
|
||||
liefert "Couldn't find this account". Der Tippfehler war nicht
|
||||
kosmetisch: `kanalVonHandle` ordnet ein hochgeladenes Video ueber
|
||||
genau diesen Text einem Kanal zu. Ein echtes HasiDog-Video waere
|
||||
abgelehnt worden -- mit dem Satz "ist keiner deiner Kanaele.
|
||||
Moeglich sind: ..." und einer Adresse darin, die es nicht gibt.
|
||||
Eine Sackgasse, die auch noch falsch erklaert, wo sie hinfuehrt.
|
||||
|
||||
GEFUNDEN HAT ES KEINE PRUEFUNG, sondern ein Vergleich: Die
|
||||
oeffentliche Website verlinkt dieselben Accounts, und dort stand
|
||||
die richtige Schreibweise. Zwei Orte im selben Haus, die dasselbe
|
||||
behaupten und sich widersprechen -- das ist messbar, ohne irgendwen
|
||||
im Netz zu fragen.
|
||||
|
||||
WARUM NICHT BEI TIKTOK NACHFRAGEN: Das waere die direktere Frage,
|
||||
haengt aber an einem fremden Dienst. Faellt er aus, wird aus einer
|
||||
Stoerung ein roter Alarm (der Fall vom 04.09. in der Buchhaltung).
|
||||
Der Vergleich im Haus braucht kein Netz und kann deshalb immer
|
||||
antworten. */
|
||||
const { readFileSync, readdirSync } = await import("node:fs");
|
||||
const { fileURLToPath } = await import("node:url");
|
||||
const { KANAELE } = await import("./workspace.js");
|
||||
const wurzel = fileURLToPath(new URL("../", import.meta.url));
|
||||
|
||||
const draussen = new Set();
|
||||
let gelesen = 0;
|
||||
for (const f of readdirSync(wurzel)) {
|
||||
if (!f.endsWith(".html")) continue;
|
||||
gelesen++;
|
||||
const text = readFileSync(wurzel + f, "utf8");
|
||||
for (const m of text.matchAll(/tiktok\.com\/@([A-Za-z0-9._-]+)/g)) {
|
||||
draussen.add("@" + m[1].toLowerCase());
|
||||
}
|
||||
}
|
||||
|
||||
/* DIE ZAHL GEHOERT IN DIE BEDINGUNG. Faende die Suche gar nichts --
|
||||
weil die Seiten umgezogen sind oder anders verlinken --, waere
|
||||
"keiner fehlt" wahr und vollkommen wertlos. */
|
||||
ok(gelesen > 10 && draussen.size >= 3,
|
||||
`auf ${gelesen} oeffentlichen Seiten stehen ${draussen.size} TikTok-Adressen`);
|
||||
|
||||
const fehlend = KANAELE.filter((k) => !draussen.has(k.handle.toLowerCase()));
|
||||
ok(fehlend.length === 0,
|
||||
fehlend.length
|
||||
? `DIESE ADRESSEN KENNT DIE OEFFENTLICHE SEITE NICHT: `
|
||||
+ fehlend.map((k) => `${k.name} ${k.handle}`).join(", ")
|
||||
+ ` -- eine davon ist falsch geschrieben, und Videos von diesem `
|
||||
+ `Account wuerden abgelehnt`
|
||||
: `alle ${KANAELE.length} Accounts stehen genauso auch draussen `
|
||||
+ `(${KANAELE.map((k) => k.handle).join(", ")})`);
|
||||
|
||||
/* GEGENPROBE: Kann dieser Vergleich ueberhaupt "nicht in Ordnung"
|
||||
sagen? Eine erfundene Adresse muss durchfallen -- sonst wuerde
|
||||
oben auch der echte Tippfehler durchrutschen. */
|
||||
ok(!draussen.has("@hasidog00804"),
|
||||
"Gegenprobe: die falsch geschriebene Adresse findet sich draussen NICHT");
|
||||
ok(!draussen.has("@diesen-account-gibt-es-nicht"),
|
||||
"Gegenprobe: eine erfundene Adresse wuerde auffallen");
|
||||
}
|
||||
|
||||
/* ------------------------------------------------------------------- */
|
||||
melde("");
|
||||
melde(`${geprueft} Pruefungen, ${fehler} Fehler`);
|
||||
|
||||
Reference in New Issue
Block a user