diff --git a/backend/endpoints/search.py b/backend/endpoints/search.py index 7502be22d..e26074e21 100644 --- a/backend/endpoints/search.py +++ b/backend/endpoints/search.py @@ -9,6 +9,7 @@ from handler.auth.constants import Scope from handler.database import db_rom_handler from handler.metadata import ( meta_flashpoint_handler, + meta_hltb_handler, meta_igdb_handler, meta_launchbox_handler, meta_moby_handler, @@ -16,6 +17,7 @@ from handler.metadata import ( meta_ss_handler, ) from handler.metadata.flashpoint_handler import FlashpointRom +from handler.metadata.hltb_handler import HLTBRom from handler.metadata.igdb_handler import IGDBRom from handler.metadata.launchbox_handler import LaunchboxRom from handler.metadata.moby_handler import MobyGamesRom @@ -90,6 +92,7 @@ async def search_rom( ss_matched_roms: list[SSRom] = [] flashpoint_matched_roms: list[FlashpointRom] = [] launchbox_matched_roms: list[LaunchboxRom] = [] + hltb_matched_roms: list[HLTBRom] = [] if search_by.lower() == "id": try: @@ -115,6 +118,7 @@ async def search_rom( ss_matched_roms, flashpoint_matched_roms, launchbox_matched_roms, + hltb_matched_roms, ) = await asyncio.gather( meta_igdb_handler.get_matched_roms_by_name( search_term, get_main_platform_igdb_id(rom.platform) @@ -129,6 +133,7 @@ async def search_rom( meta_launchbox_handler.get_matched_roms_by_name( search_term, rom.platform.slug ), + meta_hltb_handler.get_matched_roms_by_name(search_term, rom.platform.slug), ) merged_dict: dict[str, dict] = {} @@ -208,6 +213,21 @@ async def search_rom( **merged_dict.get(launchbox_name, {}), } + for hltb_rom in hltb_matched_roms: + if hltb_rom["hltb_id"]: + hltb_name = meta_hltb_handler.normalize_search_term( + hltb_rom.get("name", ""), + remove_articles=False, + ) + merged_dict[hltb_name] = { + **hltb_rom, + "is_identified": True, + "is_unidentified": False, + "platform_id": rom.platform_id, + "hltb_url_cover": hltb_rom.pop("url_cover", ""), + **merged_dict.get(hltb_name, {}), + } + async def get_sgdb_rom(name: str) -> tuple[str, SGDBRom]: return name, await meta_sgdb_handler.get_details_by_names([name])