The bundling loop ran under set -euo pipefail; once no new /mingw64 deps
remained, grep exited 1 and aborted the script before makensis ran, so no
Setup.exe was produced. Disable strict mode in that subshell and collect
deps before copying. Anchor all installer source paths to the script dir
via ${__FILEDIR__} and switch the File glob to "\*" so extensionless files
and plugin subfolders are included.
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
|
||
|---|---|---|
| resources | ||
| server | ||
| src | ||
| .gitignore | ||
| build-linux.sh | ||
| build-windows.sh | ||
| CMakeLists.txt | ||
| installer.nsi | ||
| README.md | ||
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).
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.