From 0669a5c304e864ef25668a591f9c87414ef84c30 Mon Sep 17 00:00:00 2001 From: DecDuck Date: Tue, 20 Jan 2026 01:30:54 +1100 Subject: [PATCH 01/18] feat: game specialisation, auto-guess extensions --- components/ExecutorWidget.vue | 2 +- components/GameEditor/VersionConfig.vue | 4 +- components/GameSearchResultWidget.vue | 5 +- components/ImportVersionLaunchRow.vue | 65 +++++++- components/Modal/SelectLaunch.vue | 8 +- components/Selector/FileExtension.vue | 118 +++++++++++++++ components/Selector/Game.vue | 9 +- nuxt.config.ts | 1 + package.json | 1 + pages/admin/library/[id]/import.vue | 68 ++++++--- pages/admin/library/import.vue | 60 +++++++- pages/admin/library/index.vue | 6 +- pnpm-lock.yaml | 139 ++++-------------- .../migration.sql | 17 +++ .../migration.sql | 64 ++++++++ .../migration.sql | 14 ++ prisma/models/content.prisma | 24 ++- server/api/v1/admin/depot/manifest.get.ts | 6 +- server/api/v1/admin/import/game/index.post.ts | 8 +- .../api/v1/admin/import/version/index.get.ts | 4 +- .../api/v1/admin/import/version/index.post.ts | 1 + server/api/v1/admin/search/game.get.ts | 4 +- .../[id]/version/[versionid]/index.get.ts | 5 +- server/api/v1/client/game/manifest.get.ts | 7 +- server/api/v1/store/index.get.ts | 2 + server/internal/gamesize/index.ts | 2 +- server/internal/library/index.ts | 102 +++++++++++-- server/internal/metadata/index.ts | 7 +- 28 files changed, 570 insertions(+), 183 deletions(-) create mode 100644 components/Selector/FileExtension.vue create mode 100644 prisma/migrations/20260119070859_add_game_type/migration.sql create mode 100644 prisma/migrations/20260119123507_update_game_version/migration.sql create mode 100644 prisma/migrations/20260119132823_add_executor_suggestions/migration.sql diff --git a/components/ExecutorWidget.vue b/components/ExecutorWidget.vue index a7d466ce..85fa8693 100644 --- a/components/ExecutorWidget.vue +++ b/components/ExecutorWidget.vue @@ -4,7 +4,7 @@ class="flex space-x-4 rounded-md bg-zinc-900/50 px-6 outline -outline-offset-1 outline-white/10 w-fit text-xs font-bold text-zinc-100" >
- + {{ executor.gameName }}
diff --git a/components/GameEditor/VersionConfig.vue b/components/GameEditor/VersionConfig.vue index 7a1bf8e8..f0b55a1f 100644 --- a/components/GameEditor/VersionConfig.vue +++ b/components/GameEditor/VersionConfig.vue @@ -28,9 +28,7 @@ :executor="{ launchId: props.config.launchId, gameName: props.config.executor.gameVersion.game.mName, - gameIcon: useObject( - props.config.executor.gameVersion.game.mIconObjectId, - ), + gameIcon: props.config.executor.gameVersion.game.mIconObjectId, versionName: props.config.executor.gameVersion.displayName ?? props.config.executor.gameVersion.versionPath, diff --git a/components/GameSearchResultWidget.vue b/components/GameSearchResultWidget.vue index 46dfdff4..ef41ac18 100644 --- a/components/GameSearchResultWidget.vue +++ b/components/GameSearchResultWidget.vue @@ -1,6 +1,6 @@