feat(v5): MakeMKV-Selbst-Update (§ 9) und Kino-Look fürs Fenster
Ampel / ampel (push) Successful in 1m34s
Ampel / ampel (push) Successful in 1m34s
Update-Strecke: Quellenkette (Hersteller 525 → Forum → Archiv, höchste gewinnt, 31.08. nachgemessen), MZ- + Versions-Ressourcen-Prüfung (GuinpinSoft inc, gemessen), Download in .neu, Start übers Haupt (shell/UAC — Installer hängt bewusst NICHT an der Leine), Warte-Poll bis die EXE-Version wechselt, dann Schlüssel neu prüfen. Ehrlicher Zweig: installierte == neueste Fassung → kein sinnloser Download. Fenster: Laufwerks-Kachel als Bühne (TMDb-Backdrop, Poster, Beschreibung, Phasen-Label, Restzeit, aufklappbares Protokoll), Bibliothek als Poster-Regal (DB-Schema 3: poster_pfad, Migration), Schlüssel-Karte mit Update-Knopf und Beschaffungs-Balken, MakeMKV-Version als Badge. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
This commit is contained in:
co-authored by
Claude Fable 5
parent
5622d8e47d
commit
d5ea48cd1e
@@ -12,7 +12,7 @@ import { mkdirSync } from 'node:fs'
|
||||
import { dirname } from 'node:path'
|
||||
import type { BibliothekEintrag } from '../../gemeinsam/nachrichten'
|
||||
|
||||
export const SCHEMA_VERSION = 2
|
||||
export const SCHEMA_VERSION = 3
|
||||
|
||||
export class Datenbank {
|
||||
readonly pfad: string
|
||||
@@ -46,9 +46,16 @@ export class Datenbank {
|
||||
groesse_bytes INTEGER NOT NULL,
|
||||
ablageort TEXT NOT NULL,
|
||||
datum TEXT NOT NULL,
|
||||
dauer_s INTEGER NOT NULL
|
||||
dauer_s INTEGER NOT NULL,
|
||||
poster_pfad TEXT NOT NULL DEFAULT ''
|
||||
);`,
|
||||
)
|
||||
// Schema 2 → 3: Bestands-Datenbanken haben die Bibliothek noch ohne
|
||||
// Poster-Spalte — nachrüsten, ohne Einträge anzufassen.
|
||||
const spalten = this.db.prepare(`PRAGMA table_info(bibliothek)`).all() as Array<{ name: string }>
|
||||
if (!spalten.some((s) => s.name === 'poster_pfad')) {
|
||||
this.db.exec(`ALTER TABLE bibliothek ADD COLUMN poster_pfad TEXT NOT NULL DEFAULT ''`)
|
||||
}
|
||||
this.db
|
||||
.prepare(`INSERT OR REPLACE INTO meta (schluessel, wert) VALUES ('schema_version', ?)`)
|
||||
.run(String(SCHEMA_VERSION))
|
||||
@@ -81,8 +88,8 @@ export class Datenbank {
|
||||
this.db
|
||||
.prepare(
|
||||
`INSERT OR REPLACE INTO bibliothek
|
||||
(fingerprint, titel, jahr, typ, groesse_bytes, ablageort, datum, dauer_s)
|
||||
VALUES (?, ?, ?, ?, ?, ?, ?, ?)`,
|
||||
(fingerprint, titel, jahr, typ, groesse_bytes, ablageort, datum, dauer_s, poster_pfad)
|
||||
VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?)`,
|
||||
)
|
||||
.run(
|
||||
eintrag.fingerprint,
|
||||
@@ -93,6 +100,7 @@ export class Datenbank {
|
||||
eintrag.ablageort,
|
||||
eintrag.datum,
|
||||
eintrag.dauerS,
|
||||
eintrag.posterPfad,
|
||||
)
|
||||
}
|
||||
|
||||
@@ -109,6 +117,7 @@ export class Datenbank {
|
||||
ablageort: String(z.ablageort),
|
||||
datum: String(z.datum),
|
||||
dauerS: Number(z.dauer_s),
|
||||
posterPfad: String(z.poster_pfad ?? ''),
|
||||
}))
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user