diff --git a/backend/endpoints/responses/platform.py b/backend/endpoints/responses/platform.py index 8f0612d1a..5984028c6 100644 --- a/backend/endpoints/responses/platform.py +++ b/backend/endpoints/responses/platform.py @@ -20,6 +20,8 @@ class PlatformSchema(BaseModel): launchbox_id: int | None = None ss_id: int | None = None ra_id: int | None = None + hasheous_id: int | None = None + tgdb_id: int | None = None category: str | None = None generation: int | None = None family_name: str | None = None diff --git a/backend/endpoints/responses/rom.py b/backend/endpoints/responses/rom.py index d62277cf9..7a15892ba 100644 --- a/backend/endpoints/responses/rom.py +++ b/backend/endpoints/responses/rom.py @@ -7,6 +7,7 @@ from typing import NotRequired, TypedDict, get_type_hints from endpoints.responses.assets import SaveSchema, ScreenshotSchema, StateSchema from endpoints.responses.collection import CollectionSchema from fastapi import Request +from handler.metadata.hasheous_handler import HasheousMetadata from handler.metadata.igdb_handler import IGDBMetadata from handler.metadata.launchbox_handler import LaunchboxMetadata from handler.metadata.moby_handler import MobyMetadata @@ -44,6 +45,11 @@ RomLaunchboxMetadata = TypedDict( # type: ignore[misc] dict((k, NotRequired[v]) for k, v in get_type_hints(LaunchboxMetadata).items()), total=False, ) +RomHasheousMetadata = TypedDict( # type: ignore[misc] + "RomHasheousMetadata", + dict((k, NotRequired[v]) for k, v in get_type_hints(HasheousMetadata).items()), + total=False, +) def rom_user_schema_factory() -> RomUserSchema: @@ -180,6 +186,8 @@ class RomSchema(BaseModel): ss_id: int | None ra_id: int | None launchbox_id: int | None + hasheous_id: int | None + tgdb_id: int | None platform_id: int platform_slug: str @@ -207,6 +215,7 @@ class RomSchema(BaseModel): moby_metadata: RomMobyMetadata | None ss_metadata: RomSSMetadata | None launchbox_metadata: RomLaunchboxMetadata | None + hasheous_metadata: RomHasheousMetadata | None path_cover_small: str | None path_cover_large: str | None diff --git a/frontend/assets/scrappers/ra.png b/frontend/assets/scrappers/ra.png index 551e514ad..34527fb84 100644 Binary files a/frontend/assets/scrappers/ra.png and b/frontend/assets/scrappers/ra.png differ diff --git a/frontend/src/__generated__/index.ts b/frontend/src/__generated__/index.ts index 75da79bcd..8a014537a 100644 --- a/frontend/src/__generated__/index.ts +++ b/frontend/src/__generated__/index.ts @@ -40,6 +40,7 @@ export type { RAUserGameProgression } from './models/RAUserGameProgression'; export type { Role } from './models/Role'; export type { RomFileCategory } from './models/RomFileCategory'; export type { RomFileSchema } from './models/RomFileSchema'; +export type { RomHasheousMetadata } from './models/RomHasheousMetadata'; export type { RomIGDBMetadata } from './models/RomIGDBMetadata'; export type { RomLaunchboxMetadata } from './models/RomLaunchboxMetadata'; export type { RomMetadataSchema } from './models/RomMetadataSchema'; diff --git a/frontend/src/__generated__/models/DetailedRomSchema.ts b/frontend/src/__generated__/models/DetailedRomSchema.ts index 6ab019d1e..8557e5915 100644 --- a/frontend/src/__generated__/models/DetailedRomSchema.ts +++ b/frontend/src/__generated__/models/DetailedRomSchema.ts @@ -4,6 +4,7 @@ /* eslint-disable */ import type { CollectionSchema } from './CollectionSchema'; import type { RomFileSchema } from './RomFileSchema'; +import type { RomHasheousMetadata } from './RomHasheousMetadata'; import type { RomIGDBMetadata } from './RomIGDBMetadata'; import type { RomLaunchboxMetadata } from './RomLaunchboxMetadata'; import type { RomMetadataSchema } from './RomMetadataSchema'; @@ -24,6 +25,8 @@ export type DetailedRomSchema = { ss_id: (number | null); ra_id: (number | null); launchbox_id: (number | null); + hasheous_id: (number | null); + tgdb_id: (number | null); platform_id: number; platform_slug: string; platform_fs_slug: string; @@ -46,6 +49,7 @@ export type DetailedRomSchema = { moby_metadata: (RomMobyMetadata | null); ss_metadata: (RomSSMetadata | null); launchbox_metadata: (RomLaunchboxMetadata | null); + hasheous_metadata: (RomHasheousMetadata | null); path_cover_small: (string | null); path_cover_large: (string | null); url_cover: (string | null); diff --git a/frontend/src/__generated__/models/PlatformSchema.ts b/frontend/src/__generated__/models/PlatformSchema.ts index 434d7e039..7ec0e9e95 100644 --- a/frontend/src/__generated__/models/PlatformSchema.ts +++ b/frontend/src/__generated__/models/PlatformSchema.ts @@ -16,6 +16,8 @@ export type PlatformSchema = { launchbox_id?: (number | null); ss_id?: (number | null); ra_id?: (number | null); + hasheous_id?: (number | null); + tgdb_id?: (number | null); category?: (string | null); generation?: (number | null); family_name?: (string | null); diff --git a/frontend/src/__generated__/models/RomHasheousMetadata.ts b/frontend/src/__generated__/models/RomHasheousMetadata.ts new file mode 100644 index 000000000..0413490b0 --- /dev/null +++ b/frontend/src/__generated__/models/RomHasheousMetadata.ts @@ -0,0 +1,15 @@ +/* generated using openapi-typescript-codegen -- do not edit */ +/* istanbul ignore file */ +/* tslint:disable */ +/* eslint-disable */ +export type RomHasheousMetadata = { + tosec_match?: boolean; + mame_arcade_match?: boolean; + mame_mess_match?: boolean; + nointro_match?: boolean; + redump_match?: boolean; + whdload_match?: boolean; + ra_match?: boolean; + fbneo_match?: boolean; +}; + diff --git a/frontend/src/__generated__/models/SimpleRomSchema.ts b/frontend/src/__generated__/models/SimpleRomSchema.ts index 63e1f27cf..32f27d588 100644 --- a/frontend/src/__generated__/models/SimpleRomSchema.ts +++ b/frontend/src/__generated__/models/SimpleRomSchema.ts @@ -3,6 +3,7 @@ /* tslint:disable */ /* eslint-disable */ import type { RomFileSchema } from './RomFileSchema'; +import type { RomHasheousMetadata } from './RomHasheousMetadata'; import type { RomIGDBMetadata } from './RomIGDBMetadata'; import type { RomLaunchboxMetadata } from './RomLaunchboxMetadata'; import type { RomMetadataSchema } from './RomMetadataSchema'; @@ -18,6 +19,8 @@ export type SimpleRomSchema = { ss_id: (number | null); ra_id: (number | null); launchbox_id: (number | null); + hasheous_id: (number | null); + tgdb_id: (number | null); platform_id: number; platform_slug: string; platform_fs_slug: string; @@ -40,6 +43,7 @@ export type SimpleRomSchema = { moby_metadata: (RomMobyMetadata | null); ss_metadata: (RomSSMetadata | null); launchbox_metadata: (RomLaunchboxMetadata | null); + hasheous_metadata: (RomHasheousMetadata | null); path_cover_small: (string | null); path_cover_large: (string | null); url_cover: (string | null); diff --git a/frontend/src/components/Details/Title.vue b/frontend/src/components/Details/Title.vue index 7d10f687f..6f7c65a76 100644 --- a/frontend/src/components/Details/Title.vue +++ b/frontend/src/components/Details/Title.vue @@ -101,6 +101,7 @@ const { allPlatforms } = storeToRefs(platformsStore); style="text-decoration: none; color: inherit" :href="`https://www.igdb.com/games/${rom.slug}`" target="_blank" + class="mr-1" > @@ -117,7 +118,7 @@ const { allPlatforms } = storeToRefs(platformsStore); style="text-decoration: none; color: inherit" :href="`https://www.screenscraper.fr/gameinfos.php?gameid=${rom.ss_id}`" target="_blank" - :class="{ 'ml-1': rom.igdb_id }" + class="mr-1" > @@ -134,7 +135,7 @@ const { allPlatforms } = storeToRefs(platformsStore); style="text-decoration: none; color: inherit" :href="`https://www.mobygames.com/game/${rom.moby_id}`" target="_blank" - :class="{ 'ml-1': rom.igdb_id || rom.ss_id }" + class="mr-1" > @@ -151,7 +152,7 @@ const { allPlatforms } = storeToRefs(platformsStore); style="text-decoration: none; color: inherit" :href="`https://retroachievements.org/game/${rom.ra_id}`" target="_blank" - :class="{ 'ml-1': rom.igdb_id || rom.ss_id || rom.moby_id }" + class="mr-1" > @@ -160,10 +161,7 @@ const { allPlatforms } = storeToRefs(platformsStore); {{ rom.ra_id }} -
+ @@ -175,7 +173,46 @@ const { allPlatforms } = storeToRefs(platformsStore); }} mdi-star -
+ + + + + + + {{ rom.hasheous_id }} + + + + + + + + Verified + + TOSEC + + + Verified + + NoIntro + diff --git a/frontend/src/components/Gallery/AppBar/Platform/PlatformInfoDrawer.vue b/frontend/src/components/Gallery/AppBar/Platform/PlatformInfoDrawer.vue index 118869971..959140196 100644 --- a/frontend/src/components/Gallery/AppBar/Platform/PlatformInfoDrawer.vue +++ b/frontend/src/components/Gallery/AppBar/Platform/PlatformInfoDrawer.vue @@ -379,6 +379,19 @@ watch( {{ currentPlatform.launchbox_id }}
+ + + + + + {{ currentPlatform.hasheous_id }} + +