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:
@@ -8,13 +8,23 @@ export interface Library {
|
||||
coverExt: string | null
|
||||
}
|
||||
|
||||
export type GamePlatform = 'windows' | 'linux' | 'macos'
|
||||
|
||||
export interface GameFile {
|
||||
path: string
|
||||
platform: GamePlatform
|
||||
filename: string
|
||||
isAppBundle?: boolean
|
||||
}
|
||||
|
||||
export interface Game {
|
||||
id: string
|
||||
item_key?: string
|
||||
title: string
|
||||
coverUrl: string | null
|
||||
wideCoverUrl: string | null
|
||||
zipFiles: string[]
|
||||
gameFiles: GameFile[]
|
||||
platforms: GamePlatform[]
|
||||
}
|
||||
|
||||
export interface GameSeries {
|
||||
|
||||
Reference in New Issue
Block a user