Skip to content

Commit

Permalink
refactor ssrom creator
Browse files Browse the repository at this point in the history
  • Loading branch information
gantoine committed Feb 20, 2025
1 parent 5f96c2e commit 8ece8ad
Showing 1 changed file with 83 additions and 55 deletions.
138 changes: 83 additions & 55 deletions backend/handler/metadata/ss_handler.py
Original file line number Diff line number Diff line change
Expand Up @@ -543,68 +543,96 @@ async def get_matched_roms_by_name(
# If no roms are return, "jeux" is list with an empty dict that can lead to issues. It needs to be checked.
matched_roms = [] if len(roms) == 1 and not roms[0] else roms

def _get_name(rom: dict) -> str | None:
return (
pydash.chain(rom.get("noms", []))
.filter({"region": "ss"})
.map("text")
.head()
.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", []))
.filter({"langue": "en"})
.map("text")
.head()
.value()
)

def _get_url_cover(rom: dict) -> str:
return (
pydash.chain(rom.get("medias", []))
.filter({"region": "us", "type": "box-2D", "parent": "jeu"})
.map("url")
.head()
.value()
or ""
)

def _get_url_manual(rom: dict) -> str:
return (
pydash.chain(rom.get("medias", []))
.filter(
{
"region": "us",
"type": "manuel",
"parent": "jeu",
"format": "pdf",
}
)
.map("url")
.head()
.value()
or pydash.chain(rom.get("medias", []))
.filter(
{
"region": "eu",
"type": "manuel",
"parent": "jeu",
"format": "pdf",
}
)
.map("url")
.head()
.value()
or ""
)

def _is_ss_region(rom: dict) -> bool:
return bool(
pydash.chain(rom.get("noms", []))
.filter({"region": "ss"})
.map("text")
.head()
.value()
)

return [
SSRom( # type: ignore[misc]
{
SSRom(
{ # type: ignore[misc]
k: v
for k, v in {
"ss_id": rom.get("id"),
"name": pydash.chain(rom.get("noms", []))
.filter({"region": "ss"})
.map("text")
.head()
.value(),
"slug": pydash.chain(rom.get("noms", []))
.filter({"region": "ss"})
.map("text")
.head()
.value(),
"summary": pydash.chain(rom.get("synopsis", []))
.filter({"langue": "en"})
.map("text")
.head()
.value(),
"url_cover": pydash.chain(rom.get("medias", []))
.filter({"region": "us", "type": "box-2D", "parent": "jeu"})
.map("url")
.head()
.value()
or "",
"url_manual": pydash.chain(rom.get("medias", []))
.filter(
{
"region": "us",
"type": "manuel",
"parent": "jeu",
"format": "pdf",
}
)
.map("url")
.head()
.value()
or pydash.chain(rom.get("medias", []))
.filter(
{
"region": "eu",
"type": "manuel",
"parent": "jeu",
"format": "pdf",
}
)
.map("url")
.head()
.value()
or "",
"name": _get_name(rom),
"slug": _get_slug(rom),
"summary": _get_summary(rom),
"url_cover": _get_url_cover(rom),
"url_manual": _get_url_manual(rom),
"url_screenshots": [],
"ss_metadata": extract_metadata_from_ss_rom(rom),
}.items()
if v
and pydash.chain(rom.get("noms", []))
.filter({"region": "ss"})
.map("text")
.head()
.value()
and rom.get("id", None)
if v and _is_ss_region(rom) and rom.get("id", False)
}
)
for rom in matched_roms
Expand Down

0 comments on commit 8ece8ad

Please sign in to comment.