From 1e6f0d60008a5af11841c13ab37992bfac967f9c Mon Sep 17 00:00:00 2001 From: Jamie Bond <74246201+JamieeBond@users.noreply.github.com> Date: Tue, 10 Mar 2026 20:32:54 +0100 Subject: [PATCH] Add property for path_video and refactor places which use similar logic to access video paths --- backend/endpoints/responses/rom.py | 2 ++ backend/models/rom.py | 9 +++++++++ backend/utils/gamelist_exporter.py | 9 ++++----- .../src/components/Details/Info/MediaCarousel.vue | 13 +++---------- frontend/src/composables/useGameAnimation.ts | 5 +---- 5 files changed, 19 insertions(+), 19 deletions(-) diff --git a/backend/endpoints/responses/rom.py b/backend/endpoints/responses/rom.py index fb77f4b2a..8edb4dc1f 100644 --- a/backend/endpoints/responses/rom.py +++ b/backend/endpoints/responses/rom.py @@ -262,6 +262,8 @@ class RomSchema(BaseModel): path_manual: str | None url_manual: str | None + path_video: str | None + is_identifying: bool = False is_unidentified: bool is_identified: bool diff --git a/backend/models/rom.py b/backend/models/rom.py index fb0dcdd9e..5ceb87fb8 100644 --- a/backend/models/rom.py +++ b/backend/models/rom.py @@ -347,6 +347,15 @@ class Rom(BaseModel): else "" ) + @property + def path_video(self) -> str | None: + return ( + (self.ss_metadata or {}).get("video_path") + or (self.ss_metadata or {}).get("video_normalized_path") + or (self.gamelist_metadata or {}).get("video_path") + or None + ) + @property def is_unidentified(self) -> bool: return ( diff --git a/backend/utils/gamelist_exporter.py b/backend/utils/gamelist_exporter.py index f565d8e22..03553362b 100644 --- a/backend/utils/gamelist_exporter.py +++ b/backend/utils/gamelist_exporter.py @@ -56,11 +56,10 @@ class GamelistExporter: f"{FRONTEND_RESOURCES_PATH}/{rom.path_cover_l}" ) - video_path = (rom.ss_metadata or {}).get("video_path") or ( - rom.gamelist_metadata or {} - ).get("video_path") - if video_path: - SubElement(game, "video").text = f"{FRONTEND_RESOURCES_PATH}/{video_path}" + if path_video := rom.path_video: + SubElement(game, "video").text = ( + f"{FRONTEND_RESOURCES_PATH}/{path_video}" + ) elif rom.youtube_video_id: SubElement(game, "video").text = ( f"{YOUTUBE_BASE_URL}/embed/{rom.youtube_video_id}" diff --git a/frontend/src/components/Details/Info/MediaCarousel.vue b/frontend/src/components/Details/Info/MediaCarousel.vue index 357655a9a..35cdda892 100644 --- a/frontend/src/components/Details/Info/MediaCarousel.vue +++ b/frontend/src/components/Details/Info/MediaCarousel.vue @@ -23,13 +23,6 @@ const youtubeVideoId = computed( props.rom.manual_metadata?.youtube_video_id || props.rom.youtube_video_id, ); -const localVideoPath = computed(() => { - return ( - props.rom.ss_metadata?.video_path || - props.rom.ss_metadata?.video_normalized_path || - props.rom.gamelist_metadata?.video_path - ); -}); const screenshots = computed(() => props.rom.merged_screenshots); const mediaPaths = computed(() => { const ss = props.rom.ss_metadata; @@ -103,12 +96,12 @@ const carouselHeight = computed(() => { />