[ROMM-1770] Stop squashing old metadata props when manually matching

This commit is contained in:
Georges-Antoine Assi
2025-04-23 22:02:34 -04:00
parent 1eb55171db
commit 016e6fb227
4 changed files with 12 additions and 39 deletions

View File

@@ -538,9 +538,13 @@ async def update_rom(
"ss_id": data.get("ss_id", rom.ss_id),
}
moby_id = cleaned_data["moby_id"]
if moby_id and int(moby_id) != rom.moby_id:
moby_rom = await meta_moby_handler.get_rom_by_id(int(moby_id))
if (
cleaned_data.get("moby_id", "")
and int(cleaned_data.get("moby_id", "")) != rom.moby_id
):
moby_rom = await meta_moby_handler.get_rom_by_id(
int(cleaned_data.get("ss_id", ""))
)
cleaned_data.update(moby_rom)
path_screenshots = await fs_resource_handler.get_rom_screenshots(
rom=rom,

View File

@@ -52,7 +52,6 @@ class MobyMetadata(TypedDict):
class MobyGamesRom(TypedDict):
moby_id: int | None
slug: NotRequired[str]
name: NotRequired[str]
summary: NotRequired[str]
url_cover: NotRequired[str]
@@ -280,7 +279,6 @@ class MobyGamesHandler(MetadataHandler):
rom = {
"moby_id": res["game_id"],
"name": res["title"],
"slug": res["moby_url"].split("/")[-1],
"summary": res.get("description", ""),
"url_cover": pydash.get(res, "sample_cover.image", ""),
"url_screenshots": [s["image"] for s in res.get("sample_screenshots", [])],
@@ -303,7 +301,6 @@ class MobyGamesHandler(MetadataHandler):
rom = {
"moby_id": res["game_id"],
"name": res["title"],
"slug": res["moby_url"].split("/")[-1],
"summary": res.get("description", None),
"url_cover": pydash.get(res, "sample_cover.image", None),
"url_screenshots": [s["image"] for s in res.get("sample_screenshots", [])],
@@ -341,7 +338,6 @@ class MobyGamesHandler(MetadataHandler):
for k, v in {
"moby_id": rom["game_id"],
"name": rom["title"],
"slug": rom["moby_url"].split("/")[-1],
"summary": rom.get("description", ""),
"url_cover": pydash.get(rom, "sample_cover.image", ""),
"url_screenshots": [

View File

@@ -129,7 +129,6 @@ class SSMetadata(TypedDict):
class SSRom(TypedDict):
ss_id: int | None
slug: NotRequired[str]
name: NotRequired[str]
summary: NotRequired[str]
url_cover: NotRequired[str]
@@ -438,13 +437,6 @@ class SSHandler(MetadataHandler):
.head()
.value()
)
res_slug = (
pydash.chain(res.get("noms", []))
.filter({"region": "ss"})
.map("text")
.head()
.value()
)
res_summary = (
pydash.chain(res.get("synopsis", []))
.filter({"langue": "en"})
@@ -486,7 +478,6 @@ class SSHandler(MetadataHandler):
rom = {
"ss_id": ss_id,
"name": res_name,
"slug": res_slug,
"summary": res_summary,
"url_cover": res_url_cover,
"url_manual": res_url_manual,
@@ -513,13 +504,6 @@ class SSHandler(MetadataHandler):
.head()
.value()
)
res_slug = (
pydash.chain(res.get("noms", []))
.filter({"region": "ss"})
.map("text")
.head()
.value()
)
res_summary = (
pydash.chain(res.get("synopsis", []))
.filter({"langue": "en"})
@@ -561,7 +545,6 @@ class SSHandler(MetadataHandler):
rom = {
"ss_id": res.get("id"),
"name": res_name,
"slug": res_slug,
"summary": res_summary,
"url_cover": res_url_cover,
"url_manual": res_url_manual,
@@ -579,7 +562,7 @@ class SSHandler(MetadataHandler):
return rom if rom.get("ss_id", "") else None
async def get_matched_roms_by_name(
self, search_term: str, platform_ss_id: int
self, search_term: str, platform_ss_id: int | None
) -> list[SSRom]:
if not SS_API_ENABLED:
return []
@@ -605,15 +588,6 @@ class SSHandler(MetadataHandler):
.value()
)
def _get_slug(rom: dict) -> str | None:
return (
pydash.chain(rom.get("noms", []))
.filter({"region": "ss"})
.map("text")
.head()
.value()
)
def _get_summary(rom: dict) -> str | None:
return (
pydash.chain(rom.get("synopsis", []))
@@ -683,7 +657,6 @@ class SSHandler(MetadataHandler):
for k, v in {
"ss_id": rom.get("id"),
"name": _get_name(rom),
"slug": _get_slug(rom),
"summary": _get_summary(rom),
"url_cover": _get_url_cover(rom),
"url_manual": _get_url_manual(rom),

View File

@@ -212,13 +212,13 @@ async function updateRom(
igdb_id: selectedRom.igdb_id || null,
moby_id: selectedRom.moby_id || null,
ss_id: selectedRom.ss_id || null,
name: selectedRom.name,
slug: selectedRom.slug,
summary: selectedRom.summary,
name: selectedRom.name || null,
slug: selectedRom.slug || null,
summary: selectedRom.summary || null,
url_cover:
urlCover ||
selectedRom.ss_url_cover ||
selectedRom.igdb_url_cover ||
selectedRom.ss_url_cover ||
selectedRom.moby_url_cover ||
null,
};