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:
@@ -391,7 +391,7 @@ async function scanGames(library: Library, libraryRoot: string): Promise<void> {
|
||||
parent_key: seriesKey,
|
||||
title: game.title,
|
||||
metadata: JSON.stringify({
|
||||
zipFiles: game.zipFiles,
|
||||
gameFiles: game.gameFiles,
|
||||
coverUrl: game.coverUrl,
|
||||
wideCoverUrl: game.wideCoverUrl,
|
||||
}),
|
||||
@@ -414,7 +414,7 @@ async function scanGames(library: Library, libraryRoot: string): Promise<void> {
|
||||
item_type: 'game',
|
||||
title: game.title,
|
||||
metadata: JSON.stringify({
|
||||
zipFiles: game.zipFiles,
|
||||
gameFiles: game.gameFiles,
|
||||
coverUrl: game.coverUrl,
|
||||
wideCoverUrl: game.wideCoverUrl,
|
||||
}),
|
||||
|
||||
Reference in New Issue
Block a user