From d53f2c71d5cdf751afff378fc54af056effe651a Mon Sep 17 00:00:00 2001 From: Georges-Antoine Assi Date: Fri, 18 Jul 2025 21:30:58 -0400 Subject: [PATCH] fix platform family names --- backend/handler/metadata/igdb_handler.py | 192 ++++++++++++----------- backend/handler/scan_handler.py | 5 +- 2 files changed, 102 insertions(+), 95 deletions(-) diff --git a/backend/handler/metadata/igdb_handler.py b/backend/handler/metadata/igdb_handler.py index 8593124c2..b2a3ed3d3 100644 --- a/backend/handler/metadata/igdb_handler.py +++ b/backend/handler/metadata/igdb_handler.py @@ -383,6 +383,14 @@ class IGDBHandler(MetadataHandler): return roms[0] if roms else None + # @check_twitch_token + # async def get_platforms(self) -> None: + # platforms = await self._request( + # self.platform_endpoint, + # f'fields {",".join(self.platforms_fields)}; limit 500;', + # ) + # print(platforms) + @check_twitch_token async def get_platform(self, slug: str) -> IGDBPlatform: platform = IGDB_PLATFORM_LIST.get(slug, None) @@ -1013,8 +1021,8 @@ IGDB_PLATFORM_LIST: dict[str, SlugToIGDB] = { "name": "Satellaview", "category": "Console", "generation": 4, - "family_name": "", - "family_slug": "", + "family_name": "Nintendo", + "family_slug": "nintendo", "url": "https://www.igdb.com/platforms/satellaview", "url_logo": "https://images.igdb.com/igdb/image/upload/t_1080p/plgj.jpg", }, @@ -1024,8 +1032,8 @@ IGDB_PLATFORM_LIST: dict[str, SlugToIGDB] = { "name": "Sega Pico", "category": "Console", "generation": 4, - "family_name": "", - "family_slug": "", + "family_name": "Sega", + "family_slug": "sega", "url": "https://www.igdb.com/platforms/sega-pico", "url_logo": "https://images.igdb.com/igdb/image/upload/t_1080p/plgo.jpg", }, @@ -1046,8 +1054,8 @@ IGDB_PLATFORM_LIST: dict[str, SlugToIGDB] = { "name": "Xbox 360", "category": "Console", "generation": 7, - "family_name": "", - "family_slug": "", + "family_name": "Xbox", + "family_slug": "xbox", "url": "https://www.igdb.com/platforms/xbox360", "url_logo": "https://images.igdb.com/igdb/image/upload/t_1080p/plha.jpg", }, @@ -1057,8 +1065,8 @@ IGDB_PLATFORM_LIST: dict[str, SlugToIGDB] = { "name": "Sega Saturn", "category": "Console", "generation": 5, - "family_name": "", - "family_slug": "", + "family_name": "Sega", + "family_slug": "sega", "url": "https://www.igdb.com/platforms/saturn", "url_logo": "https://images.igdb.com/igdb/image/upload/t_1080p/hrmqljpwunky1all3v78.jpg", }, @@ -1112,8 +1120,8 @@ IGDB_PLATFORM_LIST: dict[str, SlugToIGDB] = { "name": "e-Reader / Card-e Reader", "category": "Portable Console", "generation": 6, - "family_name": "", - "family_slug": "", + "family_name": "Nintendo", + "family_slug": "nintendo", "url": "https://www.igdb.com/platforms/e-reader-slash-card-e-reader", "url_logo": "https://images.igdb.com/igdb/image/upload/t_1080p/ploy.jpg", }, @@ -1156,8 +1164,8 @@ IGDB_PLATFORM_LIST: dict[str, SlugToIGDB] = { "name": "Wii U", "category": "Console", "generation": 8, - "family_name": "", - "family_slug": "", + "family_name": "Nintendo", + "family_slug": "nintendo", "url": "https://www.igdb.com/platforms/wiiu", "url_logo": "https://images.igdb.com/igdb/image/upload/t_1080p/pl6n.jpg", }, @@ -1200,8 +1208,8 @@ IGDB_PLATFORM_LIST: dict[str, SlugToIGDB] = { "name": "Sega 32X", "category": "Console", "generation": 4, - "family_name": "", - "family_slug": "", + "family_name": "Sega", + "family_slug": "sega", "url": "https://www.igdb.com/platforms/sega32", "url_logo": "https://images.igdb.com/igdb/image/upload/t_1080p/pl7r.jpg", }, @@ -1332,8 +1340,8 @@ IGDB_PLATFORM_LIST: dict[str, SlugToIGDB] = { "name": "PlayStation 5", "category": "Console", "generation": 9, - "family_name": "", - "family_slug": "", + "family_name": "PlayStation", + "family_slug": "playstation", "url": "https://www.igdb.com/platforms/ps5", "url_logo": "https://images.igdb.com/igdb/image/upload/t_1080p/plos.jpg", }, @@ -1354,8 +1362,8 @@ IGDB_PLATFORM_LIST: dict[str, SlugToIGDB] = { "name": "Virtual Boy", "category": "Console", "generation": 5, - "family_name": "", - "family_slug": "", + "family_name": "Nintendo", + "family_slug": "nintendo", "url": "https://www.igdb.com/platforms/virtualboy", "url_logo": "https://images.igdb.com/igdb/image/upload/t_1080p/pl7s.jpg", }, @@ -1387,8 +1395,8 @@ IGDB_PLATFORM_LIST: dict[str, SlugToIGDB] = { "name": "PlayStation VR2", "category": "Console", "generation": 9, - "family_name": "", - "family_slug": "", + "family_name": "PlayStation", + "family_slug": "playstation", "url": "https://www.igdb.com/platforms/psvr2", "url_logo": "https://images.igdb.com/igdb/image/upload/t_1080p/plo5.jpg", }, @@ -1442,8 +1450,8 @@ IGDB_PLATFORM_LIST: dict[str, SlugToIGDB] = { "name": "PlayStation VR", "category": "Console", "generation": 8, - "family_name": "", - "family_slug": "", + "family_name": "PlayStation", + "family_slug": "playstation", "url": "https://www.igdb.com/platforms/psvr", "url_logo": "https://images.igdb.com/igdb/image/upload/t_1080p/plnc.jpg", }, @@ -1453,8 +1461,8 @@ IGDB_PLATFORM_LIST: dict[str, SlugToIGDB] = { "name": "Visual Memory Unit / Visual Memory System", "category": "Portable Console", "generation": 6, - "family_name": "", - "family_slug": "", + "family_name": "Sega", + "family_slug": "sega", "url": "https://www.igdb.com/platforms/visual-memory-unit-slash-visual-memory-system", "url_logo": "https://images.igdb.com/igdb/image/upload/t_1080p/plk8.jpg", }, @@ -1486,8 +1494,8 @@ IGDB_PLATFORM_LIST: dict[str, SlugToIGDB] = { "name": "PlayStation 4", "category": "Console", "generation": 8, - "family_name": "", - "family_slug": "", + "family_name": "PlayStation", + "family_slug": "playstation", "url": "https://www.igdb.com/platforms/ps4--1", "url_logo": "https://images.igdb.com/igdb/image/upload/t_1080p/pl6f.jpg", }, @@ -1497,8 +1505,8 @@ IGDB_PLATFORM_LIST: dict[str, SlugToIGDB] = { "name": "Family Computer Disk System", "category": "Console", "generation": 3, - "family_name": "", - "family_slug": "", + "family_name": "Nintendo", + "family_slug": "nintendo", "url": "https://www.igdb.com/platforms/fds", "url_logo": "https://images.igdb.com/igdb/image/upload/t_1080p/pl8b.jpg", }, @@ -1563,8 +1571,8 @@ IGDB_PLATFORM_LIST: dict[str, SlugToIGDB] = { "name": "Sega CD 32X", "category": "Console", "generation": 4, - "family_name": "", - "family_slug": "", + "family_name": "Sega", + "family_slug": "sega", "url": "https://www.igdb.com/platforms/sega-cd-32x", "url_logo": "https://images.igdb.com/igdb/image/upload/t_1080p/plnu.jpg", }, @@ -1574,8 +1582,8 @@ IGDB_PLATFORM_LIST: dict[str, SlugToIGDB] = { "name": "Linux", "category": "Operative System", "generation": -1, - "family_name": "", - "family_slug": "", + "family_name": "Linux", + "family_slug": "linux", "url": "https://www.igdb.com/platforms/linux", "url_logo": "https://images.igdb.com/igdb/image/upload/t_1080p/plak.jpg", }, @@ -1596,8 +1604,8 @@ IGDB_PLATFORM_LIST: dict[str, SlugToIGDB] = { "name": "PlayStation 2", "category": "Console", "generation": 6, - "family_name": "", - "family_slug": "", + "family_name": "PlayStation", + "family_slug": "playstation", "url": "https://www.igdb.com/platforms/ps2", "url_logo": "https://images.igdb.com/igdb/image/upload/t_1080p/pl72.jpg", }, @@ -1607,8 +1615,8 @@ IGDB_PLATFORM_LIST: dict[str, SlugToIGDB] = { "name": "Dreamcast", "category": "Console", "generation": 6, - "family_name": "", - "family_slug": "", + "family_name": "Sega", + "family_slug": "sega", "url": "https://www.igdb.com/platforms/dc", "url_logo": "https://images.igdb.com/igdb/image/upload/t_1080p/pl7i.jpg", }, @@ -1618,8 +1626,8 @@ IGDB_PLATFORM_LIST: dict[str, SlugToIGDB] = { "name": "Sega Game Gear", "category": "Portable Console", "generation": 4, - "family_name": "", - "family_slug": "", + "family_name": "Sega", + "family_slug": "sega", "url": "https://www.igdb.com/platforms/gamegear", "url_logo": "https://images.igdb.com/igdb/image/upload/t_1080p/pl7z.jpg", }, @@ -1717,8 +1725,8 @@ IGDB_PLATFORM_LIST: dict[str, SlugToIGDB] = { "name": "Game Boy Advance", "category": "Portable Console", "generation": 6, - "family_name": "", - "family_slug": "", + "family_name": "Nintendo", + "family_slug": "nintendo", "url": "https://www.igdb.com/platforms/gba", "url_logo": "https://images.igdb.com/igdb/image/upload/t_1080p/pl74.jpg", }, @@ -1882,8 +1890,8 @@ IGDB_PLATFORM_LIST: dict[str, SlugToIGDB] = { "name": "Sega CD", "category": "Console", "generation": 4, - "family_name": "", - "family_slug": "", + "family_name": "Sega", + "family_slug": "sega", "url": "https://www.igdb.com/platforms/sega-cd", "url_logo": "https://images.igdb.com/igdb/image/upload/t_1080p/pl7w.jpg", }, @@ -1926,8 +1934,8 @@ IGDB_PLATFORM_LIST: dict[str, SlugToIGDB] = { "name": "Game & Watch", "category": "Portable Console", "generation": 2, - "family_name": "", - "family_slug": "", + "family_name": "Nintendo", + "family_slug": "nintendo", "url": "https://www.igdb.com/platforms/g-and-w", "url_logo": "https://images.igdb.com/igdb/image/upload/t_1080p/pler.jpg", }, @@ -1959,8 +1967,8 @@ IGDB_PLATFORM_LIST: dict[str, SlugToIGDB] = { "name": "PlayStation 3", "category": "Console", "generation": 7, - "family_name": "", - "family_slug": "", + "family_name": "PlayStation", + "family_slug": "playstation", "url": "https://www.igdb.com/platforms/ps3", "url_logo": "https://images.igdb.com/igdb/image/upload/t_1080p/tuyy1nrqodtmbqajp4jg.jpg", }, @@ -1970,8 +1978,8 @@ IGDB_PLATFORM_LIST: dict[str, SlugToIGDB] = { "name": "Xbox", "category": "Console", "generation": 6, - "family_name": "", - "family_slug": "", + "family_name": "Xbox", + "family_slug": "xbox", "url": "https://www.igdb.com/platforms/xbox", "url_logo": "https://images.igdb.com/igdb/image/upload/t_1080p/pl7e.jpg", }, @@ -1992,8 +2000,8 @@ IGDB_PLATFORM_LIST: dict[str, SlugToIGDB] = { "name": "Nintendo DS", "category": "Portable Console", "generation": 7, - "family_name": "", - "family_slug": "", + "family_name": "Nintendo", + "family_slug": "nintendo", "url": "https://www.igdb.com/platforms/nds", "url_logo": "https://images.igdb.com/igdb/image/upload/t_1080p/pl6t.jpg", }, @@ -2003,8 +2011,8 @@ IGDB_PLATFORM_LIST: dict[str, SlugToIGDB] = { "name": "Game Boy Color", "category": "Portable Console", "generation": 5, - "family_name": "", - "family_slug": "", + "family_name": "Nintendo", + "family_slug": "nintendo", "url": "https://www.igdb.com/platforms/gbc", "url_logo": "https://images.igdb.com/igdb/image/upload/t_1080p/pl7l.jpg", }, @@ -2014,8 +2022,8 @@ IGDB_PLATFORM_LIST: dict[str, SlugToIGDB] = { "name": "PlayStation Vita", "category": "Portable Console", "generation": 8, - "family_name": "", - "family_slug": "", + "family_name": "PlayStation", + "family_slug": "playstation", "url": "https://www.igdb.com/platforms/psvita", "url_logo": "https://images.igdb.com/igdb/image/upload/t_1080p/pl6g.jpg", }, @@ -2179,8 +2187,8 @@ IGDB_PLATFORM_LIST: dict[str, SlugToIGDB] = { "name": "Super NES CD-ROM System", "category": "Console", "generation": 4, - "family_name": "", - "family_slug": "", + "family_name": "Nintendo", + "family_slug": "nintendo", "url": "https://www.igdb.com/platforms/super-nes-cd-rom-system", "url_logo": "https://images.igdb.com/igdb/image/upload/t_1080p/plep.jpg", }, @@ -2245,8 +2253,8 @@ IGDB_PLATFORM_LIST: dict[str, SlugToIGDB] = { "name": "Nintendo Entertainment System", "category": "Console", "generation": 3, - "family_name": "", - "family_slug": "", + "family_name": "Nintendo", + "family_slug": "nintendo", "url": "https://www.igdb.com/platforms/nes", "url_logo": "https://images.igdb.com/igdb/image/upload/t_1080p/plmo.jpg", }, @@ -2388,8 +2396,8 @@ IGDB_PLATFORM_LIST: dict[str, SlugToIGDB] = { "name": "Advanced Pico Beena", "category": "Console", "generation": 6, - "family_name": "", - "family_slug": "", + "family_name": "Sega", + "family_slug": "sega", "url": "https://www.igdb.com/platforms/advanced-pico-beena", "url_logo": "https://images.igdb.com/igdb/image/upload/t_1080p/plou.jpg", }, @@ -2399,8 +2407,8 @@ IGDB_PLATFORM_LIST: dict[str, SlugToIGDB] = { "name": "Nintendo GameCube", "category": "Console", "generation": 6, - "family_name": "", - "family_slug": "", + "family_name": "Nintendo", + "family_slug": "nintendo", "url": "https://www.igdb.com/platforms/ngc", "url_logo": "https://images.igdb.com/igdb/image/upload/t_1080p/pl7a.jpg", }, @@ -2410,8 +2418,8 @@ IGDB_PLATFORM_LIST: dict[str, SlugToIGDB] = { "name": "Game Boy", "category": "Portable Console", "generation": 4, - "family_name": "", - "family_slug": "", + "family_name": "Nintendo", + "family_slug": "nintendo", "url": "https://www.igdb.com/platforms/gb", "url_logo": "https://images.igdb.com/igdb/image/upload/t_1080p/pl7m.jpg", }, @@ -2421,8 +2429,8 @@ IGDB_PLATFORM_LIST: dict[str, SlugToIGDB] = { "name": "PlayStation Portable", "category": "Portable Console", "generation": 7, - "family_name": "", - "family_slug": "", + "family_name": "PlayStation", + "family_slug": "playstation", "url": "https://www.igdb.com/platforms/psp", "url_logo": "https://images.igdb.com/igdb/image/upload/t_1080p/pl5y.jpg", }, @@ -2509,8 +2517,8 @@ IGDB_PLATFORM_LIST: dict[str, SlugToIGDB] = { "name": "SG-1000", "category": "Console", "generation": 3, - "family_name": "", - "family_slug": "", + "family_name": "Sega", + "family_slug": "sega", "url": "https://www.igdb.com/platforms/sg1000", "url_logo": "https://images.igdb.com/igdb/image/upload/t_1080p/plmn.jpg", }, @@ -2564,8 +2572,8 @@ IGDB_PLATFORM_LIST: dict[str, SlugToIGDB] = { "name": "New Nintendo 3DS", "category": "Portable Console", "generation": 8, - "family_name": "", - "family_slug": "", + "family_name": "Nintendo", + "family_slug": "nintendo", "url": "https://www.igdb.com/platforms/new-nintendo-3ds", "url_logo": "https://images.igdb.com/igdb/image/upload/t_1080p/pl6j.jpg", }, @@ -2586,8 +2594,8 @@ IGDB_PLATFORM_LIST: dict[str, SlugToIGDB] = { "name": "Google Stadia", "category": "Platform", "generation": -1, - "family_name": "", - "family_slug": "", + "family_name": "Linux", + "family_slug": "linux", "url": "https://www.igdb.com/platforms/stadia", "url_logo": "https://images.igdb.com/igdb/image/upload/t_1080p/pl94.jpg", }, @@ -2597,8 +2605,8 @@ IGDB_PLATFORM_LIST: dict[str, SlugToIGDB] = { "name": "Nintendo Switch 2", "category": "Console", "generation": 9, - "family_name": "", - "family_slug": "", + "family_name": "Nintendo", + "family_slug": "nintendo", "url": "https://www.igdb.com/platforms/switch-2", "url_logo": "https://images.igdb.com/igdb/image/upload/t_1080p/plow.jpg", }, @@ -2762,8 +2770,8 @@ IGDB_PLATFORM_LIST: dict[str, SlugToIGDB] = { "name": "Nintendo 3DS", "category": "Portable Console", "generation": 8, - "family_name": "", - "family_slug": "", + "family_name": "Nintendo", + "family_slug": "nintendo", "url": "https://www.igdb.com/platforms/3ds", "url_logo": "https://images.igdb.com/igdb/image/upload/t_1080p/pln6.jpg", }, @@ -2784,8 +2792,8 @@ IGDB_PLATFORM_LIST: dict[str, SlugToIGDB] = { "name": "Sega Master System/Mark III", "category": "Console", "generation": 3, - "family_name": "", - "family_slug": "", + "family_name": "Sega", + "family_slug": "sega", "url": "https://www.igdb.com/platforms/sms", "url_logo": "", }, @@ -2806,8 +2814,8 @@ IGDB_PLATFORM_LIST: dict[str, SlugToIGDB] = { "name": "Family Computer", "category": "Console", "generation": 3, - "family_name": "", - "family_slug": "", + "family_name": "Nintendo", + "family_slug": "nintendo", "url": "https://www.igdb.com/platforms/famicom", "url_logo": "https://images.igdb.com/igdb/image/upload/t_1080p/plnf.jpg", }, @@ -2894,8 +2902,8 @@ IGDB_PLATFORM_LIST: dict[str, SlugToIGDB] = { "name": "Pokémon mini", "category": "Portable Console", "generation": -1, - "family_name": "", - "family_slug": "", + "family_name": "Nintendo", + "family_slug": "nintendo", "url": "https://www.igdb.com/platforms/pokemon-mini", "url_logo": "https://images.igdb.com/igdb/image/upload/t_1080p/pl7f.jpg", }, @@ -2960,8 +2968,8 @@ IGDB_PLATFORM_LIST: dict[str, SlugToIGDB] = { "name": "Xbox Series X|S", "category": "Console", "generation": 9, - "family_name": "", - "family_slug": "", + "family_name": "Xbox", + "family_slug": "xbox", "url": "https://www.igdb.com/platforms/series-x-s", "url_logo": "https://images.igdb.com/igdb/image/upload/t_1080p/plfl.jpg", }, @@ -3048,8 +3056,8 @@ IGDB_PLATFORM_LIST: dict[str, SlugToIGDB] = { "name": "64DD", "category": "Console", "generation": 5, - "family_name": "", - "family_slug": "", + "family_name": "Nintendo", + "family_slug": "nintendo", "url": "https://www.igdb.com/platforms/64dd", "url_logo": "https://images.igdb.com/igdb/image/upload/t_1080p/plj8.jpg", }, @@ -3092,8 +3100,8 @@ IGDB_PLATFORM_LIST: dict[str, SlugToIGDB] = { "name": "PocketStation", "category": "Portable Console", "generation": 5, - "family_name": "", - "family_slug": "", + "family_name": "PlayStation", + "family_slug": "playstation", "url": "https://www.igdb.com/platforms/pocketstation", "url_logo": "https://images.igdb.com/igdb/image/upload/t_1080p/plkc.jpg", }, @@ -3169,8 +3177,8 @@ IGDB_PLATFORM_LIST: dict[str, SlugToIGDB] = { "name": "PlayStation", "category": "Console", "generation": 5, - "family_name": "", - "family_slug": "", + "family_name": "PlayStation", + "family_slug": "playstation", "url": "https://www.igdb.com/platforms/ps", "url_logo": "https://images.igdb.com/igdb/image/upload/t_1080p/plmb.jpg", }, @@ -3202,8 +3210,8 @@ IGDB_PLATFORM_LIST: dict[str, SlugToIGDB] = { "name": "Sega Mega Drive/Genesis", "category": "Console", "generation": 4, - "family_name": "", - "family_slug": "", + "family_name": "Sega", + "family_slug": "sega", "url": "https://www.igdb.com/platforms/genesis-slash-megadrive", "url_logo": "", }, diff --git a/backend/handler/scan_handler.py b/backend/handler/scan_handler.py index 4f3acdc54..de2bfd268 100644 --- a/backend/handler/scan_handler.py +++ b/backend/handler/scan_handler.py @@ -67,9 +67,8 @@ async def _get_main_platform_igdb_id(platform: Platform): if main_platform: main_platform_igdb_id = main_platform.igdb_id else: - main_platform_igdb_id = ( - await meta_igdb_handler.get_platform(main_platform_slug) - )["igdb_id"] + main_platform = await meta_igdb_handler.get_platform(main_platform_slug) + main_platform_igdb_id = main_platform["igdb_id"] if not main_platform_igdb_id: main_platform_igdb_id = platform.igdb_id else: