Add multi-platform game support with per-OS download detection

- Detect Windows (.zip), Linux (.tar.gz), and macOS (.dmg / .app bundle) game archives during scan
- Store GameFile[] with platform metadata in DB instead of plain zipFiles[]
- Stream .app bundles as on-the-fly zip archives via archiver
- Show WIN/LIN/MAC platform badge pills on GameCard and SeriesCard
- Auto-select the download matching the user's OS in GameDetailModal
- Persist cover URL to DB immediately on upload (no re-scan needed)
- Backward-compatible: legacy zipFiles entries map to platform 'windows'

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
This commit is contained in:
Garret Patti
2026-04-12 09:47:09 -04:00
parent ebc35d7184
commit 53205d4a19
9 changed files with 1273 additions and 87 deletions

View File

@@ -12,6 +12,7 @@
"author": "",
"license": "ISC",
"dependencies": {
"archiver": "^7.0.1",
"better-sqlite3": "^12.8.0",
"fast-xml-parser": "^5.5.10",
"iron-session": "^8.0.4",
@@ -23,6 +24,7 @@
},
"devDependencies": {
"@tailwindcss/postcss": "^4.2.2",
"@types/archiver": "^7.0.0",
"@types/better-sqlite3": "^7.6.13",
"@types/node": "^25.5.0",
"@types/node-cron": "^3.0.11",