86 lines
4.5 KiB
Markdown
86 lines
4.5 KiB
Markdown
# Changelog
|
|
|
|
Alle nennenswerten Änderungen an Flimmer stehen in dieser Datei.
|
|
|
|
Das Format folgt [Keep a Changelog](https://keepachangelog.com/de/1.1.0/),
|
|
die Versionierung [Semantic Versioning](https://semver.org/lang/de/).
|
|
|
|
## [Unveröffentlicht]
|
|
|
|
## [0.2.0] — 2026-09-01
|
|
|
|
Metadaten: Flimmer spricht mit TMDB.
|
|
|
|
### Hinzugefügt
|
|
|
|
- **TMDB-Anbindung** für Suche (gemeinsam über Serien und Filme oder getrennt),
|
|
Detailabruf, Staffeln und Episoden, offizielle Collections sowie die
|
|
Streaming-Verfügbarkeit in der eingestellten Region. Zugang wahlweise über
|
|
den klassischen API-Schlüssel oder das Bearer-Token.
|
|
- **Gemeinsamer Katalog**: Titel werden über (Typ, TMDB-ID) dedupliziert — bei
|
|
mehreren Nutzern liegt jede Serie samt Episodenliste nur einmal in der
|
|
Datenbank. `ensureTitle` holt einen Titel nur, wenn er fehlt oder veraltet ist,
|
|
und fällt bei einem TMDB-Ausfall auf den lokalen Stand zurück.
|
|
- **Bild-Cache**: Poster und Hintergrundbilder werden einmal geholt und danach
|
|
über `/api/image` vom eigenen Server ausgeliefert. Größe und Pfad werden
|
|
streng geprüft, damit der Endpunkt kein offener Proxy wird.
|
|
- **Suchseite** mit Typfilter; die Anfrage steht in der URL und ist damit
|
|
teilbar. Getippte Eingaben werden kurz gesammelt, bevor gesucht wird.
|
|
- **Detailseite** je Titel mit Backdrop, Kopfdaten, Genres, Streamingdiensten
|
|
(mit den Akzentfarben der großen Anbieter) und aufklappbaren Staffeln samt
|
|
Episodenliste.
|
|
- **Testlauf ohne Schlüssel**: nachgebildete TMDB-Antworten unter `tests/` und
|
|
`npm test` prüfen den kompletten Importpfad gegen eine echte Datenbank.
|
|
|
|
### Behoben
|
|
|
|
- `importSeries` gab den Titel zurück, bevor Staffel- und Episodenzähler
|
|
geschrieben waren — die Zähler standen dadurch auf 0.
|
|
- Poster und Dienstlogos zeigten das kaputte Bildsymbol des Browsers, wenn ein
|
|
TMDB-Pfad ins Leere lief. Die Rückfalldarstellung liegt jetzt dauerhaft
|
|
darunter statt an einem `onError`-Handler zu hängen, der bei einem früh
|
|
gescheiterten Bild gar nicht mehr feuert.
|
|
|
|
## [0.1.0] — 2026-09-01
|
|
|
|
Erste lauffähige Etappe: Gerüst, Marke, Datenmodell und Anmeldung.
|
|
|
|
### Hinzugefügt
|
|
|
|
- **Projektgerüst** mit Next.js 16 (App Router), TypeScript, Tailwind CSS v4
|
|
und `standalone`-Build für schlanke Container.
|
|
- **Marke Flimmer**: Logo als SVG in drei Varianten (Bildmarke, Bildmarke mit
|
|
Wortmarke, monochrom) plus Maskable-Variante. Die Wortmarke ist aus Pfaden
|
|
konstruiert und braucht keine installierte Schrift.
|
|
- **Icon-Generator** (`npm run icons`): erzeugt Favicon (SVG und ICO),
|
|
PWA-Icons in sieben Größen, Maskable-Icons, Apple-Touch-Icon und OG-Bild
|
|
aus den SVG-Quellen.
|
|
- **Design-Tokens** als CSS-Variablen, über `@theme inline` an Tailwind
|
|
angebunden. Dunkles Standard-Theme und heller Modus mit Umschalter
|
|
(Dunkel / Hell / System), ohne Aufblitzen beim Laden. Alle Farbkombinationen
|
|
erfüllen WCAG AA; getrennte Verläufe für Flächen und Text sorgen dafür, dass
|
|
auch der Signaturverlauf im hellen Modus lesbar bleibt.
|
|
- **Datenmodell** (Prisma, PostgreSQL) für Konten, Katalog (Titel, Staffeln,
|
|
Episoden, Streamingdienste), persönliches Tracking, Universen mit
|
|
Reihenfolgen sowie Benachrichtigungen und Hintergrundläufe.
|
|
- **Authentifizierung**: Registrierung und Anmeldung mit E-Mail und Passwort
|
|
(bcrypt), Sitzungen als opake Token in der Datenbank mit httpOnly-Cookie.
|
|
Der erste registrierte Zugang wird automatisch Administrator; die
|
|
Registrierung lässt sich instanzweit abschalten.
|
|
- **Optionales SSO** über OIDC (Authorization Code mit PKCE) für Authelia,
|
|
Keycloak, Authentik und Verwandte — per Umgebungsvariablen aktivierbar,
|
|
mit Zuordnung zu vorhandenen Konten über die E-Mail-Adresse.
|
|
- **API-Schlüssel** je Nutzer als Grundlage für die spätere REST-API.
|
|
- **Docker-Compose-Setup** für den Selbstbetrieb (App und PostgreSQL,
|
|
persistente Volumes, Healthcheck) samt Entrypoint, der ausstehende
|
|
Migrationen beim Start einspielt.
|
|
- **Healthcheck** unter `/api/health`, der auch die Datenbank prüft.
|
|
- **PWA-Manifest** mit allen Icon-Größen.
|
|
- **Oberflächentexte** auf Deutsch, gebündelt in `src/i18n` und so aufgebaut,
|
|
dass weitere Sprachen als zusätzliche Datei dazukommen können.
|
|
- **Seed-Skript** mit Demo-Konten sowie README und Design-Dokumentation.
|
|
|
|
[Unveröffentlicht]: https://git.wilde-server.de/florian.wilde/flimmer/compare/v0.2.0...HEAD
|
|
[0.2.0]: https://git.wilde-server.de/florian.wilde/flimmer/releases/tag/v0.2.0
|
|
[0.1.0]: https://git.wilde-server.de/florian.wilde/flimmer/releases/tag/v0.1.0
|