Add playmatch as explicit metadata source

This commit is contained in:
Georges-Antoine Assi
2026-05-22 21:44:33 -04:00
parent d7c789c4c4
commit aed926ac9e
4 changed files with 14 additions and 17 deletions

View File

@@ -159,6 +159,8 @@ async def metadata_heartbeat(source: str) -> bool:
return await meta_launchbox_handler.heartbeat()
case MetadataSource.HASHEOUS:
return await meta_hasheous_handler.heartbeat()
case MetadataSource.PLAYMATCH:
return await meta_playmatch_handler.heartbeat()
case MetadataSource.TGDB:
return await meta_tgdb_handler.heartbeat()
case MetadataSource.SGDB:

View File

@@ -49,13 +49,6 @@ PLAYMATCH_LOOKUP_ROM_ATTRS: frozenset[str] = frozenset(
{"igdb_id", "moby_id", "ss_id", "launchbox_id", "sgdb_id"}
)
# MetadataSource values (StrEnum) for which Playmatch can return ids. Typed as
# strings so this module stays free of scan_handler imports. EmuReady and
# OpenVGDB are in Playmatch's enum but have no RomM counterpart yet.
PLAYMATCH_SUPPORTED_SOURCES: frozenset[str] = frozenset(
{"igdb", "moby", "ss", "launchbox", "sgdb"}
)
class GameMatchType(str, Enum):
SHA256 = "SHA256"

View File

@@ -34,10 +34,7 @@ from handler.metadata.launchbox_handler.platforms import LAUNCHBOX_PLATFORM_LIST
from handler.metadata.launchbox_handler.types import LaunchboxRom
from handler.metadata.libretro_handler import LIBRETRO_PLATFORM_LIST, LibretroRom
from handler.metadata.moby_handler import MOBYGAMES_PLATFORM_LIST, MobyGamesRom
from handler.metadata.playmatch_handler import (
PLAYMATCH_SUPPORTED_SOURCES,
PlaymatchRomMatch,
)
from handler.metadata.playmatch_handler import PlaymatchRomMatch
from handler.metadata.ra_handler import RA_PLATFORM_LIST, RAGameRom
from handler.metadata.sgdb_handler import SGDBRom
from handler.metadata.ss_handler import SCREENSAVER_PLATFORM_LIST, SSRom
@@ -78,6 +75,7 @@ class MetadataSource(enum.StrEnum):
HLTB = "hltb" # HowLongToBeat
GAMELIST = "gamelist" # ES-DE gamelist.xml
LIBRETRO = "libretro" # Libretro thumbnails
PLAYMATCH = "playmatch" # Playmatch
def get_main_platform_igdb_id(platform: Platform):
@@ -375,9 +373,7 @@ async def scan_rom(
async def fetch_playmatch_hash_match() -> PlaymatchRomMatch:
if (
meta_playmatch_handler.is_enabled()
and any(
source in metadata_sources for source in PLAYMATCH_SUPPORTED_SOURCES
)
and MetadataSource.PLAYMATCH in metadata_sources
and (
newly_added
or scan_type == ScanType.COMPLETE

View File

@@ -91,9 +91,7 @@ export default defineStore("heartbeat", {
getAllMetadataOptions(): MetadataOption[] {
return [
{
name: this.value.METADATA_SOURCES?.PLAYMATCH_API_ENABLED
? "IGDB + Playmatch"
: "IGDB",
name: "IGDB",
value: "igdb",
logo_path: "/assets/scrappers/igdb.png",
disabled: !this.value.METADATA_SOURCES?.IGDB_API_ENABLED
@@ -108,6 +106,14 @@ export default defineStore("heartbeat", {
? i18n.global.t("scan.disabled-by-admin")
: "",
},
{
name: "Playmatch",
value: "playmatch",
logo_path: "/assets/scrappers/playmatch.png",
disabled: !this.value.METADATA_SOURCES?.PLAYMATCH_API_ENABLED
? i18n.global.t("scan.disabled-by-admin")
: "",
},
{
name: "Screenscraper",
value: "ss",