diff --git a/server/pruef-highlights.mjs b/server/pruef-highlights.mjs index 06cf5a5b..83f62b0d 100644 --- a/server/pruef-highlights.mjs +++ b/server/pruef-highlights.mjs @@ -27,6 +27,7 @@ import { mkdtempSync, rmSync } from "node:fs"; import { tmpdir } from "node:os"; import { join } from "node:path"; +import { tagLokal } from "./helfer-zeit.mjs"; import { eigenerPort } from "./helfer-port.mjs"; import { notbremse } from "./helfer-notbremse.mjs"; @@ -83,7 +84,13 @@ const einf = (titel, kanal, wannTage) => d.prepare( + " datum, quelle_kanal, erstellt_von, erstellt)" + " VALUES (?,?,?,?,?,?,?,?,?,?)") .run("highlight", "clip", titel, "", "offen", "mittel", - vorTagen(wannTage).toISOString().slice(0, 10), kanal, 1, + /* Das TAGESDATUM ueber den Hausschluessel, nicht ueber UTC: + `vorTagen` verankert zwar um neun Uhr und waere damit richtig, + aber das sieht man der Zeile nicht an -- pruef-struktur hat sie + als UTC-Rechnung gemeldet. Ein Fehlalarm ist schlimmer als keine + Pruefung. Der volle Zeitstempel eine Zeile tiefer darf bleiben: + Dort ist UTC richtig, weil er eine ZEIT ist und keinen Tag. */ + tagLokal(-wannTage), kanal, 1, vorTagen(wannTage).toISOString()); einf("Heute DogFather", "dogfather", 0); diff --git a/server/pruef-zeitraum.mjs b/server/pruef-zeitraum.mjs index 73f8c83e..c253d17b 100644 --- a/server/pruef-zeitraum.mjs +++ b/server/pruef-zeitraum.mjs @@ -25,6 +25,7 @@ import { mkdtempSync, rmSync } from "node:fs"; import { tmpdir } from "node:os"; import { join } from "node:path"; +import { tagLokal } from "./helfer-zeit.mjs"; import { eigenerPort } from "./helfer-port.mjs"; import { notbremse } from "./helfer-notbremse.mjs"; @@ -63,12 +64,18 @@ const hash = scryptSync("CODE-DOGI-0001", salt, 64, d.prepare("INSERT INTO personen (name, rolle, code_hash, code_salt, code_n, aktiv, erstellt)" + " VALUES (?,?,?,?,?,1,?)").run("Filipe", "admin", hash, salt, 32768, new Date().toISOString()); -const tagPlus = (n) => { - const x = new Date(); - x.setHours(12, 0, 0, 0); - x.setDate(x.getDate() + n); - return x.toISOString().slice(0, 10); -}; +/* DER HAUSSCHLUESSEL STATT EIGENER RECHNUNG (20.09.2026). + + Hier stand `x.setHours(12,...)` und danach `toISOString().slice(0,10)`. + Das ist RICHTIG -- die Verankerung um zwoelf Uhr sorgt dafuer, dass + der UTC-Tag und der Ortstag zusammenfallen. Nur sieht man das der + Zeile nicht an, und pruef-struktur meldete sie als UTC-Rechnung. + + Ein Fehlalarm ist schlimmer als keine Pruefung: Wer ihn zweimal + wegklickt, ueberliest beim dritten Mal den echten. Deshalb hier die + Form, die das Haus ohnehin kennt -- `tagLokal` rechnet ohne Umweg + ueber UTC und braucht keine Verankerung, die man erklaeren muss. */ +const tagPlus = (n) => tagLokal(n); /* Eine Aktion über fünf Tage, die GESTERN angefangen hat — genau der Fall, den der Server vorher verschluckt hat. */ const LAUF_START = tagPlus(-1), LAUF_ENDE = tagPlus(3);