Use wheel as backup mediatype for logo if wheel-hd is not available

This commit is contained in:
Vargash
2025-11-24 15:47:48 +01:00
parent 38b5c71bba
commit 5b195065fe
4 changed files with 11 additions and 17 deletions

View File

@@ -49,7 +49,6 @@ class MetadataMediaType(enum.StrEnum):
FANART = "fanart"
VIDEO = "video"
MANUAL = "manual"
WHEEL = "wheel"
class EjsControls(TypedDict):

View File

@@ -155,7 +155,7 @@ class SSMetadataMedia(TypedDict):
box3d_url: str | None # box-3D
fanart_url: str | None # fanart
fullbox_url: str | None # box-texture
logo_url: str | None # wheel-hd
logo_url: str | None # wheel-hd or wheel
manual_url: str | None # manual
marquee_url: str | None # screenmarquee
miximage_url: str | None # mixrbv1 | mixrbv2
@@ -165,7 +165,6 @@ class SSMetadataMedia(TypedDict):
title_screen_url: str | None # sstitle
video_url: str | None # video
video_normalized_url: str | None # video-normalized
wheel_url: str | None # wheel
# Resources stored in filesystem
bezel_path: str | None
@@ -177,7 +176,6 @@ class SSMetadataMedia(TypedDict):
marquee_path: str | None
logo_path: str | None
video_path: str | None
wheel_path: str | None
class SSMetadata(SSMetadataMedia):
@@ -216,7 +214,6 @@ def extract_media_from_ss_game(rom: Rom, game: SSGame) -> SSMetadataMedia:
title_screen_url=None,
video_url=None,
video_normalized_url=None,
wheel_url=None,
bezel_path=None,
box2d_back_path=None,
box3d_path=None,
@@ -226,7 +223,6 @@ def extract_media_from_ss_game(rom: Rom, game: SSGame) -> SSMetadataMedia:
marquee_path=None,
logo_path=None,
video_path=None,
wheel_path=None,
)
for region in get_preferred_regions():
@@ -259,6 +255,12 @@ def extract_media_from_ss_game(rom: Rom, game: SSGame) -> SSMetadataMedia:
elif media.get("type") == "wheel-hd" and not ss_media["logo_url"]:
ss_media["logo_url"] = media["url"]
if MetadataMediaType.LOGO in preferred_media_types:
ss_media["logo_path"] = (
f"{fs_resource_handler.get_media_resources_path(rom.platform_id, rom.id, MetadataMediaType.LOGO)}/logo.png"
)
elif media.get("type") == "wheel" and not ss_media["logo_url"]:
ss_media["logo_url"] = media["url"]
if MetadataMediaType.LOGO in preferred_media_types:
ss_media["logo_path"] = (
f"{fs_resource_handler.get_media_resources_path(rom.platform_id, rom.id, MetadataMediaType.LOGO)}/logo.png"
@@ -313,12 +315,6 @@ def extract_media_from_ss_game(rom: Rom, game: SSGame) -> SSMetadataMedia:
and not ss_media["video_normalized_url"]
):
ss_media["video_normalized_url"] = media["url"]
elif media.get("type") == "wheel" and not ss_media["wheel_url"]:
ss_media["wheel_url"] = media["url"]
if MetadataMediaType.WHEEL in preferred_media_types:
ss_media["wheel_path"] = (
f"{fs_resource_handler.get_media_resources_path(rom.platform_id, rom.id, MetadataMediaType.WHEEL)}/wheel.png"
)
return ss_media

View File

@@ -103,9 +103,9 @@ class GamelistExporter:
SubElement(game, "fanart").text = (
f"{FRONTEND_RESOURCES_PATH}/{rom.ss_metadata["fanart_path"]}"
)
if rom.ss_metadata.get("wheel_path"):
if rom.ss_metadata.get("logo_path"):
SubElement(game, "marquee").text = (
f"{FRONTEND_RESOURCES_PATH}/{rom.ss_metadata["wheel_path"]}"
f"{FRONTEND_RESOURCES_PATH}/{rom.ss_metadata["logo_path"]}"
)
if rom.ss_metadata.get("miximage"):
SubElement(game, "miximage").text = (

View File

@@ -99,11 +99,10 @@ filesystem: {} # { roms_folder: 'roms' } For example if your folder structure is
# # Gameplay video
# - video # Video (warning: large file size)
# # Media used for batocera gamelist.xml export
# - wheel # Transparent logo
# - box2d-back # Back cover art
# - box2d_back # Back cover art
# - logo # Transparent logo
# # Other media assets (might be used in the future)
# - marquee # Custom marquee
# - logo # Transparent logo
# EmulatorJS per-core options
# emulatorjs: