# Ultimate Media Tracker Ein hochgradig anpassbarer Tracker für **Filme, Serien, Mangas, Bücher und Spiele** – geschrieben in C++17 mit **Qt 6**. Behalte den Überblick darüber, was du gesehen/gelesen/gespielt hast, und zwar auf jeder Ebene: ganzes Werk, Staffel/Band oder einzelne Folge/Kapitel. ## Features - **5 Medientypen**: Filme, Serien, Mangas, Bücher, Spiele - **Granularer Fortschritt**: komplett · pro Staffel/Band · pro Folge/Kapitel (tri-state Häkchen-Baum, automatische „Abgeschlossen“-Erkennung) - **Automatische Titelbilder** über Online-Provider, jederzeit per integrierter Suche austauschbar oder durch eigene Datei ersetzbar - **Mehrsprachige Titel** pro Eintrag (de/en/ja/…), inkl. Originaltitel - **Online-Metadaten-Provider** - Filme & Serien: **TMDB** (kostenloser API-Key nötig) - Bücher: **OpenLibrary** (kein Key) - Mangas: **AniList** (kein Key) - **Umfangreiche Filter**: Genre, Status, Bewertung, Jahr, Tags, Favoriten, **Franchise** (automatisch aus den Titeln erkannt, manuell überschreibbar), Volltextsuche, plus Sortierung (Datum/Titel/Bewertung/Jahr/Fortschritt) - **Geteilter TMDB-Zugang** optional über einen **OIDC-Proxy** (siehe `server/`): die Gruppe teilt sich einen API-Key, Login via Authentik - **Customizability**: eigene Tags, eigene Felder (Key/Value), eigene Strukturen (beliebige Abschnitte & Einheiten), anpassbare Kartengröße - **Modernes GUI** mit **Dark- & Light-Mode** und frei wählbarer **Akzentfarbe** - **Bewertung** als halbe-Sterne-Widget, Favoriten, Notizen, Beschreibung - Lokale **SQLite**-Datenbank, Cover-Cache auf Platte ## Bauen Voraussetzungen: Qt 6 (Widgets, Network, Sql, Svg, Concurrent), CMake ≥ 3.21, ein C++17-Compiler, SQLite-Treiber (Teil von Qt). ```bash cmake -S . -B build -DCMAKE_BUILD_TYPE=Release cmake --build build -j ./build/uwt ``` Identisch unter **Linux und Windows** (sowie macOS). Unter Windows wird das Programm als GUI-App ohne Konsolenfenster gebaut und bekommt das App-Icon eingebettet; unter Linux installiert `cmake --install build` zusätzlich einen `.desktop`-Eintrag samt Icon. ## Konfiguration Öffne **⚙ Einstellungen**: - **Design**: Dunkel/Hell - **Akzentfarbe**: frei wählbar - **Bevorzugte Sprache**: bestimmt angezeigte Titel & Provider-Sprache - **Filme/Serien über**: entweder **eigener TMDB API-Key** (kostenlos auf themoviedb.org) **oder** ein **Proxy-Server** (URL + Token von dessen Login-Seite – kein eigener Key nötig, siehe `server/`) - **Cover automatisch laden**, **Kartengröße** ## TMDB-Proxy (optional) Im Verzeichnis `server/` liegt ein kleiner Go-Server, der die TMDB-API hinter **OIDC/Authentik** kapselt. So können Freunde die App nutzen, ohne sich je einen eigenen TMDB-Key zu erstellen – der Server hält einen geteilten Key und gibt nach dem Login ein persönliches Token aus. Details: `server/README.md`. ## Daten - Datenbank: `…/AppData/UMT/Ultimate Media Tracker/library.db` - Cover-Bibliothek: `…/AppData/…/covers/` - (Pfade gemäß `QStandardPaths::AppDataLocation`) ## Architektur ``` src/ core/ Enums, MediaItem (Werk→Abschnitt→Einheit), Database (SQLite), Settings providers/ MetadataProvider-Interface + TMDB/OpenLibrary/AniList, ImageCache ui/ ThemeManager, MainWindow, MediaCard, FilterPanel, FlowLayout, StarRating, DetailDialog, EditDialog, OnlineSearchDialog, SettingsDialog ``` Das Datenmodell ist generisch: Jedes Werk besteht aus *Abschnitten* (Staffel / Band / Teil), die *Einheiten* (Folge / Kapitel) enthalten. Filme/Bücher ohne Struktur nutzen einfach den Status `Abgeschlossen`.