Eigene Buehnen fuer die Modi-App -- und die Kopfleiste dazu
Filipe: "auch die hintergrund bilder vom crew espace sollen anderes
aussehen, der community angepasst wie die zugangscode seite die ist
mega."
UMFAERBEN HAETTE HIER NICHT GEREICHT. Bei der Zugangswand war Rot das
Problem; innen zeigen die neun Buehnen das SPICY-MEDIA-LOGO selbst, in
`halle` und `arena` vielfach nebeneinander. Ein blaues fremdes Logo
waere schlimmer gewesen als ein rotes.
Die Motive gibt es laengst -- auf der oeffentlichen Dogfather-Seite:
studio/lounge "Team Dogi -- Familie. Treue. Zusammenhalt."
halle TEAM DOGI mit den Menschen des Teams
skyline/portal "Streamplan": Dogi und HasiDog auf der Buehne
arena "DogFathers Galerie": Filmrollen, ein Archiv
garage "Der Streamer": Filipe an seinem Platz
Fuer `garage` stand zuerst der Holo-Kontrollraum da -- grossartiges
Bild, aber darauf steht "WERDE MODI". Eine Einladung hinter dem
Aufgabenbrett von Leuten, die laengst dabei sind, liest sich falsch.
Ein Bild sagt etwas, auch wenn es nur Hintergrund ist.
DIE ABDUNKLUNG IST GERECHNET, NICHT GEWAEHLT
Mein erster fester Wert haette 18 von 27 Fassungen HELLER gemacht als
die, die sie ersetzen (114 gegen 67) -- ueber ihnen steht derselbe
kleine Text. Das Werkzeug misst jetzt jede Fassung gegen die bestehende
Buehne derselben Szene und senkt sie genau auf deren Wert.
Ueber eine KURVE statt eines schwarzen Schleiers: v' = 255*(v/255)^g
senkt die Lichter viel staerker als die Tiefen -- das Bild wird dunkler
und behaelt seine Zeichnung. Ein Schleier haette bei den hellsten
Motiven ueber 80 % gebraucht, und darunter liegt dann Nebel statt Bild
(derselbe Fehler wie beim Tresorbild).
Der erste Anlauf mit einer geschlossenen Formel war falsch: Die Kurve
wirkt auf jeden FARBKANAL, die Helligkeit ist eine gewichtete Summe der
drei, und L(v^g) ist nicht L(v)^g. Die Rechnung sagte 61,5 und heraus
kamen 67. Jetzt wird genaehert und nachgemessen, hoechstens sechsmal.
Beim Hochkant-Ausschnitt wird zusaetzlich das FENSTER GESUCHT: fuenf
Kandidaten, erst "dunkel genug", dann "am meisten Motiv". Die Mitte --
die das Haus sonst nimmt -- ist bei diesen Bildern das Hellste.
ZWEI FUNDE AUS DEM BILDSCHIRMFOTO, die nichts mit den Buehnen zu tun
hatten:
1. DIE KOPFLEISTE sagte "SPICY & DOGI · CREATOR WORKSPACE". Reitertitel,
Begruessung und Symbol waren laengst richtig -- nur die Zeile, die
man als Erstes ansieht, nicht. Der Grund: Auf Unterseiten traegt die
Leiste einen Rueckweg-Verweis, auf der Startseite blossen Text; mein
Code kannte nur die erste Bauform.
2. DAS CHILI-ZEICHEN kommt aus dem CSS als Bild, an drei Stellen
(Kopfleiste, Siegel im Ring, die schwebenden Wasserzeichen). Auf
crew. wird die Datei serverseitig durch den Husky ersetzt -- alle
drei auf einmal, und ohne Flackern, weil schon der erste Abruf das
richtige Bild bekommt.
GEMESSEN
pruef-crew-adresse 123 (statt 117): Fuer JEDE Buehne aus start.css --
die Namen werden dort GELESEN, nicht abgeschrieben --
gibt es auf crew. ein eigenes Motiv, auf workspace.
das alte, und die beiden sind nachweislich
verschiedene Dateien.
pruef-rollen 274 pruef-start-ansicht, pruef-zwischenspeicher 21
pruef-modi-wortleck 5 -- er hat wieder angeschlagen, zweimal auf
Kommentare, die ich selbst geschrieben hatte.
27 Fassungen, 3,5 MB (die bisherigen neun Szenen brauchen 7,1).
Co-Authored-By: Claude Opus 5 <[email protected]>
This commit is contained in:
@@ -255,6 +255,56 @@ export function crewWeiche(req, res, next) {
|
||||
return next();
|
||||
}
|
||||
|
||||
/* DIE BUEHNEN INNEN GEHOEREN AUCH DER MODI-APP (10.09.2026).
|
||||
|
||||
Filipe: "auch die hintergrund bilder vom crew espace sollen anderes
|
||||
aussehen, der community angepasst wie die zugangscode seite die ist
|
||||
mega."
|
||||
|
||||
Die neun Buehnen hinter den Seiten zeigen nicht bloss rotes Licht,
|
||||
sondern das Spicy-Media-Logo selbst -- in `halle` und `arena` sogar
|
||||
vielfach nebeneinander. Umfaerben haette daraus ein blaues fremdes
|
||||
Logo gemacht, also etwas Schlimmeres. Es gibt jetzt eigene Motive
|
||||
aus den Community-Bildern der Dogfather-Seite (tools/crew-buehnen.mjs).
|
||||
|
||||
WARUM DIE ADRESSE UMGEBOGEN WIRD UND NICHT DAS CSS: `start.css`
|
||||
nennt die neun Bilder in neun Zeilen und wird an alle
|
||||
ausgeliefert. Eine zweite Zeile je Szene fuer die Modi-App waere
|
||||
achtzehn Zeilen, die zusammenpassen muessen -- und der Name der
|
||||
Szene stuende dann doppelt da. Hier steht eine Regel.
|
||||
|
||||
UND SIE HAT KEIN FLACKERN: Das Bild wird beim ERSTEN Abruf schon
|
||||
als das richtige geliefert. Eine Umschaltung per JavaScript haette
|
||||
erst die Spicy-Buehne gezeigt und dann getauscht -- sichtbar, und
|
||||
ausgerechnet auf der Seite, die niemand sehen soll. */
|
||||
const buehne = /^\/workspace\/assets\/img\/(buehne-[a-z]+-(?:uhd|breit|schmal)\.webp)$/
|
||||
.exec(req.path);
|
||||
if (buehne) {
|
||||
req.url = `/workspace/assets/img/crew-${buehne[1]}`;
|
||||
return next();
|
||||
}
|
||||
|
||||
/* DAS ZEICHEN IN DER KOPFLEISTE (10.09.2026).
|
||||
|
||||
`start.css` setzt links neben den Namen eine Chili -- als
|
||||
CSS-Hintergrund, nicht als Bild im HTML. Auf der Modi-Adresse stand
|
||||
damit oben links das Zeichen von Spicy Media, auf jeder Seite, den
|
||||
ganzen Tag. Im Bildschirmfoto der Startseite war es das Erste, was
|
||||
auffiel.
|
||||
|
||||
UEBER DIE ADRESSE UND NICHT UEBER JAVASCRIPT: Eine Umschaltung im
|
||||
Browser haette erst die Chili gezeigt und sie dann getauscht --
|
||||
sichtbar, und ausgerechnet an der Stelle, die man zuerst ansieht.
|
||||
So kommt beim ersten Abruf schon der Husky.
|
||||
|
||||
Er liegt laengst da (marke-husky.webp) und wird auf der Zugangswand
|
||||
und im App-Symbol ohnehin benutzt. Ein neues Bild waere eine Datei
|
||||
mehr fuer dasselbe Zeichen. */
|
||||
if (req.path === "/workspace/assets/img/marke-spicy.webp") {
|
||||
req.url = "/workspace/assets/img/marke-husky.webp";
|
||||
return next();
|
||||
}
|
||||
|
||||
if (istWorkspacePfad(req.path) || req.path.startsWith("/assets/")) return next();
|
||||
return res.redirect(302, "/workspace/");
|
||||
}
|
||||
|
||||
@@ -484,6 +484,72 @@ for (const b of buehnen) {
|
||||
ok(buehnen.length >= 8 && buehnenDa === buehnen.length,
|
||||
`crew.: alle ${buehnenDa} von ${buehnen.length} Buehnenbildern werden ausgeliefert`);
|
||||
|
||||
/* =====================================================================
|
||||
DIE BUEHNEN INNEN (10.09.2026)
|
||||
|
||||
Filipe: "auch die hintergrund bilder vom crew espace sollen anderes
|
||||
aussehen, der community angepasst wie die zugangscode seite".
|
||||
|
||||
DIE SZENENNAMEN WERDEN AUS start.css GELESEN, nicht hier
|
||||
abgeschrieben. Eine Liste an zwei Stellen ist eine Liste, die
|
||||
auseinanderlaeuft -- und dann faellt eine neue Szene ohne eigenes
|
||||
Motiv niemandem auf: Auf der Modi-Seite stuende ploetzlich wieder
|
||||
ein fremdes Logo im Hintergrund, und zwar genau auf der Seite, an
|
||||
die niemand gedacht hat.
|
||||
===================================================================== */
|
||||
console.log("");
|
||||
console.log("--- Die Buehnen innen ---");
|
||||
{
|
||||
const { readFileSync } = await import("node:fs");
|
||||
const { dirname, join } = await import("node:path");
|
||||
const { fileURLToPath } = await import("node:url");
|
||||
const css = readFileSync(
|
||||
join(dirname(fileURLToPath(import.meta.url)), "..", "workspace", "assets", "css", "start.css"),
|
||||
"utf8");
|
||||
const namen = [...new Set((css.match(/buehne-[a-z]+-(?:uhd|breit|schmal)\.webp/g) || []))];
|
||||
|
||||
/* Die Zahl gehoert in die Bedingung: Faende das Muster nichts --
|
||||
umbenannte Dateien, anderer Ordner --, waere alles darunter gruen,
|
||||
ohne dass ein einziges Bild angesehen wurde. */
|
||||
ok(namen.length >= 5, `${namen.length} Buehnenbilder in start.css gefunden`);
|
||||
|
||||
let eigene = 0, alte = 0;
|
||||
const fehlend = [];
|
||||
for (const name of namen) {
|
||||
const aufCrew = await hole(`/workspace/assets/img/${name}`, { host: CREW });
|
||||
const aufWs = await hole(`/workspace/assets/img/${name}`, { host: WS });
|
||||
if (aufCrew.status === 200) eigene++; else fehlend.push(name);
|
||||
if (aufWs.status === 200) alte++;
|
||||
}
|
||||
ok(eigene === namen.length,
|
||||
`crew.: fuer alle ${namen.length} gibt es ein eigenes Motiv`
|
||||
+ (fehlend.length ? ` -- es fehlt: ${fehlend.slice(0, 3).join(", ")}` : ""));
|
||||
ok(alte === namen.length, `workspace.: dort liegen unveraendert die alten (${alte})`);
|
||||
|
||||
/* DAS ZEICHEN IN DER KOPFLEISTE. Es kommt aus dem CSS als
|
||||
Hintergrundbild -- auf der Modi-Adresse stand dort die Chili von
|
||||
Spicy Media, auf jeder Seite. */
|
||||
const zeichenCrew = await hole("/workspace/assets/img/marke-spicy.webp", { host: CREW });
|
||||
const zeichenWs = await hole("/workspace/assets/img/marke-spicy.webp", { host: WS });
|
||||
const husky = await hole("/workspace/assets/img/marke-husky.webp", { host: WS });
|
||||
ok(zeichenCrew.status === 200 && husky.status === 200
|
||||
&& zeichenCrew.text === husky.text,
|
||||
"crew.: oben links kommt der Husky, nicht die Chili");
|
||||
ok(zeichenWs.status === 200 && zeichenWs.text !== husky.text,
|
||||
"workspace.: dort bleibt es die Chili (Gegenprobe)");
|
||||
|
||||
/* UND SIE MUESSEN VERSCHIEDEN SEIN. Beide Adressen antworten mit 200
|
||||
-- das sagt noch nicht, dass es zwei verschiedene Bilder sind. Ohne
|
||||
diese Zeile waere die Pruefung auch dann gruen, wenn die Weiche gar
|
||||
nicht greift. */
|
||||
const probe = namen.find((n) => n.endsWith("-breit.webp")) || namen[0];
|
||||
const a1 = await hole(`/workspace/assets/img/${probe}`, { host: CREW });
|
||||
const a2 = await hole(`/workspace/assets/img/${probe}`, { host: WS });
|
||||
ok(a1.text.length > 0 && a2.text.length > 0 && a1.text !== a2.text,
|
||||
`und es sind zwei verschiedene Bilder (${probe}: `
|
||||
+ `${Math.round(a1.text.length / 1024)} KB gegen ${Math.round(a2.text.length / 1024)} KB)`);
|
||||
}
|
||||
|
||||
/* =====================================================================
|
||||
DIE GEGENPROBE
|
||||
|
||||
|
||||
Reference in New Issue
Block a user