mirror of
https://github.com/rommapp/romm.git
synced 2026-02-04 18:48:10 +08:00
102 lines
4.3 KiB
Python
102 lines
4.3 KiB
Python
# uv run python -m utils.generate_supported_platforms
|
|
from typing import TypedDict
|
|
|
|
from handler.metadata import (
|
|
meta_hasheous_handler,
|
|
meta_igdb_handler,
|
|
meta_launchbox_handler,
|
|
meta_moby_handler,
|
|
meta_ra_handler,
|
|
meta_ss_handler,
|
|
)
|
|
from handler.metadata.base_hander import UniversalPlatformSlug
|
|
|
|
|
|
class SupportedPlatform(TypedDict):
|
|
name: str
|
|
folder: str
|
|
igdb_slug: str | None
|
|
moby_slug: str | None
|
|
ss_id: int | None
|
|
launchbox_id: int | None
|
|
hasheous_id: int | None
|
|
ra_id: int | None
|
|
|
|
|
|
if __name__ == "__main__":
|
|
supported_platforms: dict[str, SupportedPlatform] = {}
|
|
|
|
for upl in UniversalPlatformSlug:
|
|
slug_lower = upl.value.lower()
|
|
|
|
igdb_platform = meta_igdb_handler.get_platform(slug_lower)
|
|
moby_platform = meta_moby_handler.get_platform(slug_lower)
|
|
ss_platform = meta_ss_handler.get_platform(slug_lower)
|
|
launchbox_platform = meta_launchbox_handler.get_platform(slug_lower)
|
|
hasheous_platform = meta_hasheous_handler.get_platform(slug_lower)
|
|
ra_platform = meta_ra_handler.get_platform(slug_lower)
|
|
|
|
supported_platforms[slug_lower] = {
|
|
"name": igdb_platform.get("name", None)
|
|
or moby_platform.get("name", None)
|
|
or ss_platform.get("name", None)
|
|
or launchbox_platform.get("name", None)
|
|
or hasheous_platform.get("name", None)
|
|
or ra_platform.get("name", None)
|
|
or slug_lower.replace("-", " ").title(),
|
|
"folder": slug_lower,
|
|
"igdb_slug": igdb_platform.get("igdb_slug", None),
|
|
"moby_slug": moby_platform.get("moby_slug", None),
|
|
"ss_id": ss_platform["ss_id"],
|
|
"launchbox_id": launchbox_platform["launchbox_id"],
|
|
"hasheous_id": hasheous_platform["hasheous_id"],
|
|
"ra_id": ra_platform["ra_id"],
|
|
}
|
|
|
|
# Sort platforms by name field
|
|
supported_platforms = dict(
|
|
sorted(supported_platforms.items(), key=lambda item: item[1]["name"].lower())
|
|
)
|
|
|
|
print(
|
|
"""|Platform Name|Folder Name|Metadata Providers|
|
|
|---|---|---|"""
|
|
)
|
|
|
|
for platform in supported_platforms.values():
|
|
print(
|
|
f'| {platform["name"]} |',
|
|
f'`{platform["folder"]}` |',
|
|
(
|
|
f'<a href="https://www.igdb.com/platforms/{platform["igdb_slug"]}" target="_blank" rel="noopener norefer"><img alt="igdb logo" src="../../resources/metadata_providers/igdb.png" height="24px" width="24px"></a>'
|
|
if platform["igdb_slug"]
|
|
else ""
|
|
),
|
|
(
|
|
f'<a href="https://www.screenscraper.fr/systemeinfos.php?plateforme={platform["ss_id"]}" target="_blank" rel="noopener norefer"><img alt="screenscraper logo" src="../../resources/metadata_providers/ss.png" height="24px" width="24px"></a>'
|
|
if platform["ss_id"]
|
|
else ""
|
|
),
|
|
(
|
|
f'<a href="https://www.mobygames.com/platform/{platform["moby_slug"]}" target="_blank" rel="noopener norefer"><img alt="mobygames logo" src="../../resources/metadata_providers/moby.png" height="24px" width="24px"></a>'
|
|
if platform["moby_slug"]
|
|
else ""
|
|
),
|
|
(
|
|
f'<a href="https://gamesdb.launchbox-app.com/platforms/games/{platform["launchbox_id"]}" target="_blank" rel="noopener norefer"><img alt="launchbox logo" src="../../resources/metadata_providers/launchbox.png" height="24px" width="24px"></a>'
|
|
if platform["launchbox_id"]
|
|
else ""
|
|
),
|
|
(
|
|
f'<a href="https://hasheous.org/index.html?page=dataobjectdetail&type=platform&id={platform["hasheous_id"]}" target="_blank" rel="noopener norefer"><img alt="hasheous logo" src="../../resources/metadata_providers/hasheous.png" height="24px" width="24px"></a>'
|
|
if platform["hasheous_id"]
|
|
else ""
|
|
),
|
|
(
|
|
f'<a href="https://retroachievements.org/system/{platform["ra_id"]}/games" target="_blank" rel="noopener norefer"><img alt="retroachivements logo" src="../../resources/metadata_providers/ra.png" height="24px" width="24px"></a>'
|
|
if platform["ra_id"]
|
|
else ""
|
|
),
|
|
" |",
|
|
)
|