diff --git a/pages/admin/library/import.vue b/pages/admin/library/import.vue index 954dd28..18ddeba 100644 --- a/pages/admin/library/import.vue +++ b/pages/admin/library/import.vue @@ -197,13 +197,13 @@ const router = useRouter(); const importLoading = ref(false); const importError = ref(); async function importGame(metadata: boolean) { - if (!metadataResults.value) return; + if (!metadataResults.value && metadata) return; const game = await $fetch("/api/v1/admin/import/game", { method: "POST", body: { path: games.unimportedGames[currentlySelectedGame.value], - metadata: metadata ? metadataResults.value[currentlySelectedMetadata.value] : undefined, + metadata: metadata && metadataResults.value ? metadataResults.value[currentlySelectedMetadata.value] : undefined, }, }); diff --git a/server/api/v1/admin/import/game/index.post.ts b/server/api/v1/admin/import/game/index.post.ts index 504ea5f..7535c46 100644 --- a/server/api/v1/admin/import/game/index.post.ts +++ b/server/api/v1/admin/import/game/index.post.ts @@ -30,7 +30,9 @@ export default defineEventHandler(async (h3) => { statusMessage: "Invalid unimported game path", }); + if (!metadata || !metadata.id || !metadata.sourceId) { + console.log(metadata); return await metadataHandler.createGameWithoutMetadata(path); } else { return await metadataHandler.createGame(metadata, path); diff --git a/server/internal/metadata/index.ts b/server/internal/metadata/index.ts index 3746525..5fcdada 100644 --- a/server/internal/metadata/index.ts +++ b/server/internal/metadata/index.ts @@ -17,6 +17,8 @@ import { } from "./types"; import { ObjectTransactionalHandler } from "../objects/transactional"; import { PriorityList, PriorityListIndexed } from "../utils/prioritylist"; +import { GiantBombProvider } from "./giantbomb"; +import { ManualMetadataProvider } from "./manual"; export abstract class MetadataProvider { abstract id(): string; @@ -234,3 +236,17 @@ export class MetadataHandler { export const metadataHandler = new MetadataHandler(); export default metadataHandler; + +export const enabledMedadataProviders: string[] = []; +const metadataProviders = [GiantBombProvider, ManualMetadataProvider]; + +for(const provider of metadataProviders){ + try { + const prov = new provider; + metadataHandler.addProvider(prov); + enabledMedadataProviders.push(prov.id()); + console.log(`enabled metadata provider: ${prov.name()}`) + }catch(e){ + console.error(`skipping metadata provider setup: ${e}`); + } +} \ No newline at end of file