From 09625c89efedf6e1575035bb67e67c2ea0d3a68b Mon Sep 17 00:00:00 2001 From: Florian Wilde Date: Wed, 2 Sep 2026 14:47:23 +0200 Subject: [PATCH] Version 0.9.0 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Errungenschaften und die Auswahlliste fuer unbekannte Jellyfin-Titel. Changelog, Release-Notiz, DEVLOG und Projektgedaechtnis nachgezogen. Die Anleitung hat ihre beiden Abschnitte schon mit den jeweiligen Issues bekommen — Errungenschaften mit Screenshot, „Titel, die Flimmer noch nicht kennt" im Jellyfin-Kapitel. --- CHANGELOG.md | 93 ++++++++++++++++++++++++++++++++++++++++++++++ CLAUDE.md | 2 + DEVLOG.md | 38 ++++++++++++++++++- package.json | 2 +- releases/v0.9.0.md | 91 +++++++++++++++++++++++++++++++++++++++++++++ 5 files changed, 224 insertions(+), 2 deletions(-) create mode 100644 releases/v0.9.0.md diff --git a/CHANGELOG.md b/CHANGELOG.md index 9571c8c..c783621 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -7,6 +7,99 @@ die Versionierung [Semantic Versioning](https://semver.org/lang/de/). ## [Unveröffentlicht] +## [0.9.0] — 2026-09-02 + +**Errungenschaften** — Abzeichen für erreichte Meilensteine. Dazu die +**Auswahlliste** beim Jellyfin-Abgleich, ohne die die Anbindung auf einer +gewachsenen Mediathek kaum etwas ausrichtete. + +> ⚠️ **Beim Aktualisieren kommt eine Migration mit** (`errungenschaften`). Der +> Container spielt sie beim Start selbst ein; `./update.sh` legt vorher eine +> Sicherung an. + +### Hinzugefügt + +- **Errungenschaften.** Zwanzig feste Abzeichen, dazu dynamische für + vollständig gesehene Filmreihen und abgeschlossene Universen. Zu finden + unten auf der Statistikseite. + + Sie tauchen auf, wenn etwas erreicht ist, und bleiben dann — **keine + Streaks**, die reißen, wenn man eine Woche nichts schaut, keine + Fortschrittsbalken, die drängeln. Wer eine Sichtung zurücknimmt, verliert + kein Abzeichen; es wieder einzukassieren wäre kleinlich. + + Ein paar davon: *Der lange Atem* (eine Serie mit hundert Episoden komplett), + *Treu geblieben* (über ein Jahr an demselben Titel), *Durchgemacht* + (zwischen drei und fünf Uhr morgens abgehakt), *Zeitreisender* (Titel aus + sieben Jahrzehnten), *Strenges Urteil* (einmal die Note 1 vergeben). + + Für **ganze Filmreihen** braucht es keine gepflegte Liste: TMDB gruppiert + sie selbst, und die Zugehörigkeit steht beim Import schon am Titel. Wer alle + Spider-Man-Filme gesehen hat, bekommt sie als Reihe angerechnet. Für + bekannte Reihen gibt es einen eigenen Namen, sonst heißt es schlicht „Reihe + komplett — …". + + Beim ersten Öffnen wird die ganze Historie einmal **stumm** ausgewertet — + eine gewachsene Bibliothek soll nicht zwei Dutzend Meldungen auf einmal + auslösen. Erst danach wird gemeldet, was neu dazukommt. Auf dem öffentlichen + Profil lassen sich die Abzeichen zeigen oder ausblenden. + +- **Auswahlliste für Jellyfin-Titel, die Flimmer nicht kennt.** Beim ersten + Abgleich einer gewachsenen Mediathek passierte bisher etwas Ernüchterndes: + Jellyfin meldet tausend Einträge, und Flimmer ordnet **keinen einzigen** zu, + weil der Katalog sie nicht kennt. + + Jetzt steht unter dem Bericht eine Liste zum Anhaken. Was ausgewählt ist, + holt Flimmer von TMDB — bei Serien samt Staffeln und Episoden — und nimmt es + mit „hab ich · Jellyfin" in die Bibliothek auf. + + Die Liste fasst zusammen: Führt Jellyfin drei Dateien zum selben Film + (Extended Edition, zweite Fassung), steht er einmal da, mit dem Vermerk, wie + viele Dateien darauf zeigen. Einträge, denen in Jellyfin die TMDB-Kennung + fehlt, bleiben sichtbar, sind aber nicht auswählbar — dort kann Flimmer + nichts holen. + + Geholt werden hundert je Lauf; der Rest bleibt für den nächsten Klick. Ein + einzelner Fehlschlag beendet den Lauf nicht, und **aus der Liste verschwindet + nur, was tatsächlich ankam**. + +### Geändert + +- Der Bericht des Medienserver-Abgleichs war auf **50 Einträge** gekürzt — + bei über tausend gelesenen ein Blick durchs Schlüsselloch. Jetzt bis 1000, + und was darüber hinausgeht, wird gezählt statt stillschweigend + abgeschnitten. +- Das Häkchen beim Abgleich heißt jetzt „**Bekannte** Titel dabei in die + Bibliothek aufnehmen". Es nimmt auf, was Flimmer *kennt*; die neue + Auswahlliste holt, was es *nicht kennt*. Der Unterschied stand vorher + nirgends — und war der Grund, warum das Häkchen bei einer frischen Instanz + nichts bewirkte. +- Einblendungen kennen einen dritten Ton für Erfolge. +- `npm run screenshots` hebt für Ausschnittaufnahmen die klebende Kopfleiste + auf; sie legte sich sonst über die Überschrift. + +### Behoben + +- Im Bericht stand eine Serie als **Film**, weil der Typ aus dem Umkehrschluss + „keine Episode, also Film" abgeleitet wurde. Er kommt jetzt aus dem Item. + +### Getestet + +93 Tests (vorher 78). Neu: der Regelkatalog der Errungenschaften samt +Stummschaltung, Entdopplung und Zeitzonenrechnung; die Auswahlliste samt +Zusammenfassung, Fehlschlägen und Rechteprüfung. + +Ein Test hat dabei einen Fehler gefunden, den man leicht übersieht: Die Regel +„zwischen drei und fünf Uhr" las die Stunde aus der formatierten Zeichenkette, +und auf Deutsch liefert das System dafür **„03 Uhr"** — als Zahl gelesen wird +daraus nichts. Das Abzeichen wäre nie vergeben worden. + +### Anleitung + +`docs/ANLEITUNG.md` hat zwei neue Abschnitte: **Errungenschaften** mit +Screenshot und **Titel, die Flimmer noch nicht kennt** im Jellyfin-Kapitel. + + ## [0.8.0] — 2026-09-02 Zwei größere Bausteine: **Anmeldung per Passkey** und die **Jellyfin-Anbindung**. diff --git a/CLAUDE.md b/CLAUDE.md index 5d59b66..86d4e8b 100644 --- a/CLAUDE.md +++ b/CLAUDE.md @@ -115,6 +115,8 @@ Statistiken, Benachrichtigungen, REST-API, PWA. Oberflächensprache **Deutsch**. - ✅ **Nacharbeiten** (v0.7.0/0.7.1) — Docker verifiziert, „hab ich", `update.sh`. 51 min. - ✅ **Issue-Runde** (v0.8.0) — Passkeys, Jellyfin-Anbindung, Standardreihenfolge, Rückmeldung beim Tippen, Titelraster, Filmsichtung zurücknehmen. 77 min. +- ✅ **Zweite Runde** (v0.9.0) — Errungenschaften, Auswahlliste für unbekannte + Jellyfin-Titel. 37 min. Ab v0.8.0 wird **issue-getrieben** gearbeitet: eigener Branch je Issue, Zeiterfassung in Gitea, Freigabe durch Florian. Details im DEVLOG. diff --git a/DEVLOG.md b/DEVLOG.md index 3b9b6b2..c462350 100644 --- a/DEVLOG.md +++ b/DEVLOG.md @@ -146,6 +146,41 @@ selbst — Changelog, Screenshots, Release. --- +## Zweite Issue-Runde (v0.9.0) + +| # | Issue | Dauer | Was passiert ist | +|---|---|---|---| +| 9.1 | #15 Errungenschaften | 22 min | Regelkatalog auf einem gemeinsamen Datensatz; Filmreihen über die TMDB-Zugehörigkeit statt einer gepflegten Liste | +| 9.2 | #16 Titel nachladen | 15 min | Aus dem Bericht wird eine Auswahlliste; was Flimmer nicht kennt, kommt auf Wunsch aus TMDB | + +**Issues gesamt: 37 min** (2026-09-02, 09:47 – 11:13) + +Dazu ohne Zeiterfassung: zwei Issues angelegt (#15 und #16), diese Version +selbst und die Nachträge an der Anleitung. + +### Was dabei auffiel + +1. **Ein Test hat eine Formatierungsfalle aufgedeckt.** Die Regel „zwischen + drei und fünf Uhr" las die Stunde aus der formatierten Zeichenkette; auf + Deutsch liefert `Intl` dafür „03 Uhr", und `Number("03 Uhr")` ist `NaN`. + Das Abzeichen wäre nie vergeben worden. +2. **Ich hatte ein fragwürdiges Verhalten in einem Test festgeschrieben.** + Der erste Entwurf strich auch *gescheiterte* Titel aus der Auswahlliste, + und der Test hielt das fest. Erst beim Durchklicken fiel auf, wie ärgerlich + das wäre — Code und Test wurden korrigiert. +3. **Ein Klickweg hat eine falsche Beschriftung gezeigt.** Eine Serie stand + als „Film" in der Liste, weil der Typ aus dem Umkehrschluss „keine Episode, + also Film" kam. +4. **Der Entwicklungs-Stub kann nur suchen.** Er speist sich aus dem lokalen + Katalog und kann deshalb per Definition nichts liefern, was dort fehlt — + der Importpfad ließ sich nur über Fixtures belegen, nicht über die + Oberfläche. +5. **Zwei parallele Branches, kein Konflikt.** Beide zweigten von `main` ab + und fassten dieselben drei Dateien an. Der Merge lief glatt; geprüft wurde + trotzdem die Kombination auf `main`, nicht nur die einzelnen Zweige. + +--- + ## Gesamtübersicht | Etappe | Version | Dauer | @@ -158,8 +193,9 @@ selbst — Changelog, Screenshots, Release. | 6 — Benachrichtigungen, Sync, Import/Export, API, PWA | 0.6.0 | 31 min | | Nacharbeiten — Docker verifiziert, eigene Sammlung | 0.7.0 | 51 min | | Issue-Runde — Passkeys, Jellyfin, vier Nacharbeiten | 0.8.0 | 77 min | +| Zweite Runde — Errungenschaften, Titel nachladen | 0.9.0 | 37 min | -**Gesamtentwicklungszeit: 4 h 24 min** (264 min, 2026-09-01 18:09 – 2026-09-02 07:25) +**Gesamtentwicklungszeit: 5 h 01 min** (301 min, 2026-09-01 18:09 – 2026-09-02 11:13) ### Womit die Zeit verging diff --git a/package.json b/package.json index a94980e..ef4316a 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "flimmer", - "version": "0.8.0", + "version": "0.9.0", "private": true, "description": "Flimmer — selbst hostbarer Serien- und Film-Tracker", "license": "MIT", diff --git a/releases/v0.9.0.md b/releases/v0.9.0.md new file mode 100644 index 0000000..d8bd67b --- /dev/null +++ b/releases/v0.9.0.md @@ -0,0 +1,91 @@ +# Flimmer 0.9.0 + +**Errungenschaften** — Abzeichen für erreichte Meilensteine. Dazu die +**Auswahlliste** beim Jellyfin-Abgleich, ohne die die Anbindung auf einer +gewachsenen Mediathek kaum etwas ausrichtete. + +> ⚠️ **Beim Aktualisieren kommt eine Migration mit** (`errungenschaften`). Der +> Container spielt sie beim Start selbst ein; `./update.sh` legt vorher eine +> Sicherung an. + +### Hinzugefügt + +- **Errungenschaften.** Zwanzig feste Abzeichen, dazu dynamische für + vollständig gesehene Filmreihen und abgeschlossene Universen. Zu finden + unten auf der Statistikseite. + + Sie tauchen auf, wenn etwas erreicht ist, und bleiben dann — **keine + Streaks**, die reißen, wenn man eine Woche nichts schaut, keine + Fortschrittsbalken, die drängeln. Wer eine Sichtung zurücknimmt, verliert + kein Abzeichen; es wieder einzukassieren wäre kleinlich. + + Ein paar davon: *Der lange Atem* (eine Serie mit hundert Episoden komplett), + *Treu geblieben* (über ein Jahr an demselben Titel), *Durchgemacht* + (zwischen drei und fünf Uhr morgens abgehakt), *Zeitreisender* (Titel aus + sieben Jahrzehnten), *Strenges Urteil* (einmal die Note 1 vergeben). + + Für **ganze Filmreihen** braucht es keine gepflegte Liste: TMDB gruppiert + sie selbst, und die Zugehörigkeit steht beim Import schon am Titel. Wer alle + Spider-Man-Filme gesehen hat, bekommt sie als Reihe angerechnet. Für + bekannte Reihen gibt es einen eigenen Namen, sonst heißt es schlicht „Reihe + komplett — …". + + Beim ersten Öffnen wird die ganze Historie einmal **stumm** ausgewertet — + eine gewachsene Bibliothek soll nicht zwei Dutzend Meldungen auf einmal + auslösen. Erst danach wird gemeldet, was neu dazukommt. Auf dem öffentlichen + Profil lassen sich die Abzeichen zeigen oder ausblenden. + +- **Auswahlliste für Jellyfin-Titel, die Flimmer nicht kennt.** Beim ersten + Abgleich einer gewachsenen Mediathek passierte bisher etwas Ernüchterndes: + Jellyfin meldet tausend Einträge, und Flimmer ordnet **keinen einzigen** zu, + weil der Katalog sie nicht kennt. + + Jetzt steht unter dem Bericht eine Liste zum Anhaken. Was ausgewählt ist, + holt Flimmer von TMDB — bei Serien samt Staffeln und Episoden — und nimmt es + mit „hab ich · Jellyfin" in die Bibliothek auf. + + Die Liste fasst zusammen: Führt Jellyfin drei Dateien zum selben Film + (Extended Edition, zweite Fassung), steht er einmal da, mit dem Vermerk, wie + viele Dateien darauf zeigen. Einträge, denen in Jellyfin die TMDB-Kennung + fehlt, bleiben sichtbar, sind aber nicht auswählbar — dort kann Flimmer + nichts holen. + + Geholt werden hundert je Lauf; der Rest bleibt für den nächsten Klick. Ein + einzelner Fehlschlag beendet den Lauf nicht, und **aus der Liste verschwindet + nur, was tatsächlich ankam**. + +### Geändert + +- Der Bericht des Medienserver-Abgleichs war auf **50 Einträge** gekürzt — + bei über tausend gelesenen ein Blick durchs Schlüsselloch. Jetzt bis 1000, + und was darüber hinausgeht, wird gezählt statt stillschweigend + abgeschnitten. +- Das Häkchen beim Abgleich heißt jetzt „**Bekannte** Titel dabei in die + Bibliothek aufnehmen". Es nimmt auf, was Flimmer *kennt*; die neue + Auswahlliste holt, was es *nicht kennt*. Der Unterschied stand vorher + nirgends — und war der Grund, warum das Häkchen bei einer frischen Instanz + nichts bewirkte. +- Einblendungen kennen einen dritten Ton für Erfolge. +- `npm run screenshots` hebt für Ausschnittaufnahmen die klebende Kopfleiste + auf; sie legte sich sonst über die Überschrift. + +### Behoben + +- Im Bericht stand eine Serie als **Film**, weil der Typ aus dem Umkehrschluss + „keine Episode, also Film" abgeleitet wurde. Er kommt jetzt aus dem Item. + +### Getestet + +93 Tests (vorher 78). Neu: der Regelkatalog der Errungenschaften samt +Stummschaltung, Entdopplung und Zeitzonenrechnung; die Auswahlliste samt +Zusammenfassung, Fehlschlägen und Rechteprüfung. + +Ein Test hat dabei einen Fehler gefunden, den man leicht übersieht: Die Regel +„zwischen drei und fünf Uhr" las die Stunde aus der formatierten Zeichenkette, +und auf Deutsch liefert das System dafür **„03 Uhr"** — als Zahl gelesen wird +daraus nichts. Das Abzeichen wäre nie vergeben worden. + +### Anleitung + +`docs/ANLEITUNG.md` hat zwei neue Abschnitte: **Errungenschaften** mit +Screenshot und **Titel, die Flimmer noch nicht kennt** im Jellyfin-Kapitel.