Releases: Daddelgreis74/switch-game-catalog
Releases · Daddelgreis74/switch-game-catalog
Release list
v1.3.1
Released v1.3.1
- 🛠️ Portable Python Path: Replaced the hardcoded user home directory path for Windows Python execution with dynamic os.homedir() lookup.
- 🧹 Privacy Cleanup: Removed local username string references from the source code.
v1.3.0
Released v1.3.0
- 🌐 Public TitleDB API Integration: Replaced unofficial web scraping of
ot.ultranx.ru with clean JSON queries to the public �pi.nlib.cc (Nlib-API) backend. - 🛡️ Improved Privacy & Compliance: Removed all scraping codes and external connections to inofficial domains.
v1.2.2
Fixes in v1.2.2
- 🌐 German Metadata Fallback: Automatically fall back to fetching English metadata when the German page redirects or has no game description.
- 🧹 Clean Cache: Resolves blank descriptions when loading games with no German localization on the source page.
v1.2.1
Fix in v1.2.1
- 🛠️ System Tools: Added \curl\ and \wget\ to runtime container image for TrueNAS SCALE healthcheck compliance.
v1.2.0
✨ Major Feature Release: Rich Game Descriptions & Screenshot Gallery
- 📖 Automatische Spielbeschreibungen:
- Ruft automatisch die ausführliche Story- und Feature-Beschreibung anhand der \Title ID\ ab und stellt sie strukturiert im Detail-Modal dar.
- 🏷️ Genre- & Kategorie-Badges:
- Zeigt Genres wie \RPG, \Simulation, \Adventure\ als stilvolle Badges im Nordic/Aurora-Design an.
- 📅 Release-Datum:
- Zeigt das offizielle Veröffentlichungsdatum des Titels an.
- 🖼️ In-Game Screenshot-Galerie:
- Horizontales Karussell mit hochauflösenden Spiel-Screenshots.
- Integrierte Lightbox-Vollbildansicht beim Klick auf ein Vorschaubild.
- ⚡ Offline-Caching:
- Alle abgerufenen Metadaten werden dauerhaft in der lokalen \games_db.json\ gespeichert und stehen auch offline sofort zur Verfügung.
v1.1.9
Refactor in v1.1.9
- 🛡️ Rechtliche Bereinigung & Markenschutz:
- Startbanner auf dem Server geändert in \NSW Game Catalog Server is running!.
- Standard-Pfade und Platzhalter von markenrechtlichen Begriffen bereinigt.
- Generischer Fallback bei fehlendem Publisher auf -\ statt fester Markennamen.
v1.1.8
Fixes in v1.1.8
- 🐛 Parameter- & Import-Korrektur (\scanner_helper.py):
- Fehlendes \ile_path=None\ in der Funktionssignatur von \extract_and_parse_control\ behoben.
- \import re\ hinzugefügt.
- 🎨 Metadaten-Vererbung (\public/js/app.js):
- Wenn ein Basisspiel kein extrahiertes Icon oder Publisher besitzt (z. B. wegen defektem RomFS-Header), übernimmt die Spielkarte automatisch das extrahierte Icon und den Publisher aus dem zugehörigen Update/DLC.
v1.1.7
Neuerungen & Verbesserungen in v1.1.7
- 🎮 Intelligenter Titel-Fallback aus Dateinamen (\scanner_helper.py):
- Wenn ein Spiel mit Schlüsseln einer neueren Firmware (z. B. Master Key 17+) verschlüsselt ist und \hactool\ die interne \control.nacp\ nicht entschlüsseln kann, wird der Spielname automatisch sauber aus dem Dateinamen extrahiert (z. B. \Kynseed\ statt \Unknown Game).
- 🖼️ Stilvolles Joy-Con Cover-Fallback (\public/js/app.js):
- Fehlende oder nicht entschlüsselbare Cover-Bilder werden nun mit einem ansprechenden Neon Joy-Con Icon gerendert, anstatt ein leeres Bild anzuzeigen.
v1.1.6
Vollständiges Code-Audit & Qualitätsupdate in v1.1.6
- 🎯 Hauptspiel-Erkennung & Filter gefixt (\public/js/app.js): Typ-Matching zwischen \Base Game\ und \Base\ behoben. Badges werden nun korrekt angezeigt und der Filter nach Hauptspielen funktioniert zuverlässig.
- 🔑 DB-Key-Kollisionen behoben (\scanner_helper.py): Spiele mit nicht ermittelbarer Title ID überschreiben sich nicht mehr gegenseitig.
- 🛡️ Sicherheit & Path Traversal (\server.js): Robuste \isInsideDir-Validierung für Downloads, Uploads und Löschvorgänge implementiert.
- 📂 Datenbank-Konsistenz (\server.js): Einheitlicher Fallback-Mechanismus für Datenbank-Lese- und Schreibvorgänge über alle Endpunkte hinweg.
- ⏱️ Hactool-Timeout (\scanner_helper.py): 60-Sekunden-Timeout für \hactool\ hinzugefügt, um Blockaden bei defekten Dateien zu verhindern.
- 📦 XCI-Unterstützung: .xci-Dateien werden nun auch im Dateisystem-Scanner erfasst.
- 🧹 Bereinigung: \entrypoint.sh\ entfernt und stattdessen direkte Node.js-Initialisierung verwendet; ungenutzte npm-Dependencies bereinigt.
v1.1.5
Fixes in v1.1.5
- 🔍 Resilienter Scanner (\scanner_helper.py):
- Temporäre RomFS- und NCA-Dateien werden nun im System-Tempverzeichnis (/tmp) verarbeitet.
- Verhindert \Scan process failed-Abstürze bei fehlenden oder schreibgeschützten Cache-Ordnern.
- Automatisches Fallback beim Speichern der Datenbank (\games_db.json).
- ⚙️ Hactool-Erkennung: Kopiert \hactool\ zusätzlich nach /usr/local/bin/hactool\ und stellt die Ausführungsberechtigungen (\chmod 755) sicher.
- 🚀 Puffer-Erweiterung: Node.js \exec-Puffer auf 50 MB erweitert, um Überläufe bei vielen Spielen zu verhindern.