From 4b3b118e16b62773b25b7ba60b7ec3efe2964537 Mon Sep 17 00:00:00 2001 From: zurdi zurdo Date: Tue, 4 Apr 2023 15:40:40 +0200 Subject: [PATCH 1/2] fix search igdb for not supported platforms --- backend/src/handler/igdb_handler.py | 33 ++++++++++-------- backend/src/main.py | 4 +-- .../platforms/{commodore.ico => c64.ico} | Bin frontend/src/components/RomDetails.vue | 3 +- readme.md | 2 +- 5 files changed, 23 insertions(+), 19 deletions(-) rename frontend/assets/platforms/{commodore.ico => c64.ico} (100%) diff --git a/backend/src/handler/igdb_handler.py b/backend/src/handler/igdb_handler.py index bb1283a71..2dc787db7 100644 --- a/backend/src/handler/igdb_handler.py +++ b/backend/src/handler/igdb_handler.py @@ -114,20 +114,25 @@ class IGDBHandler(): @check_twitch_token - def get_matched_roms(self, file_name: str, p_igdb_id: int) -> list: - search_term: str = unidecode.unidecode(re.sub('[\(\[].*?[\)\]]', '', file_name.split('.')[0])) - matched_roms: list = requests.post("https://api.igdb.com/v4/games/", headers=self.headers, - data=f"search \"{search_term}\";fields name, id, slug, summary; where platforms=[{p_igdb_id}];").json() - log.info(f"Matched roms for {file_name}: {matched_roms}") - for rom in matched_roms: - try: - res_details: dict = requests.post("https://api.igdb.com/v4/covers/", headers=self.headers, - data=f"fields url; where game={rom['id']};").json()[0] - rom['url_cover'] = f"https:{res_details['url']}".replace('t_thumb', f't_cover_big') - except IndexError: - rom['url_cover'] = DEFAULT_URL_COVER_L - rom['r_igdb_id'] = rom.pop('id') - rom['r_slug'] = rom.pop('slug') + def get_matched_roms(self, file_name: str, p_igdb_id: int, p_slug: str) -> list: + matched_roms: list[dict] = [] + if p_igdb_id != '': + search_term: str = unidecode.unidecode(re.sub('[\(\[].*?[\)\]]', '', file_name.split('.')[0])) + log.debug(search_term) + matched_roms: list = requests.post("https://api.igdb.com/v4/games/", headers=self.headers, + data=f"search \"{search_term}\";fields name, id, slug, summary; where platforms=[{p_igdb_id}];").json() + log.info(f"Matched roms for {file_name}: {matched_roms}") + for rom in matched_roms: + try: + res_details: dict = requests.post("https://api.igdb.com/v4/covers/", headers=self.headers, + data=f"fields url; where game={rom['id']};").json()[0] + rom['url_cover'] = f"https:{res_details['url']}".replace('t_thumb', f't_cover_big') + except IndexError: + rom['url_cover'] = DEFAULT_URL_COVER_L + rom['r_igdb_id'] = rom.pop('id') + rom['r_slug'] = rom.pop('slug') + else: + log.warning(f"{p_slug} is not supported!") return matched_roms diff --git a/backend/src/main.py b/backend/src/main.py index 86685396c..1780aa2bc 100644 --- a/backend/src/main.py +++ b/backend/src/main.py @@ -97,8 +97,8 @@ async def search_rom_igdb(req: Request) -> dict: """Get all the roms matched from igdb.""" data: dict = await req.json() - log.info(f"getting {data['file_name']} roms from {data['p_igdb_id']} igdb ...") - return {'data': igdbh.get_matched_roms(data['file_name'], data['p_igdb_id'])} + log.info(f"getting {data['rom']['file_name']} roms from {data['rom']['p_slug']} igdb ...") + return {'data': igdbh.get_matched_roms(data['rom']['file_name'], data['rom']['p_igdb_id'], data['rom']['p_slug'])} if __name__ == '__main__': diff --git a/frontend/assets/platforms/commodore.ico b/frontend/assets/platforms/c64.ico similarity index 100% rename from frontend/assets/platforms/commodore.ico rename to frontend/assets/platforms/c64.ico diff --git a/frontend/src/components/RomDetails.vue b/frontend/src/components/RomDetails.vue index 1963ca784..c27119bba 100644 --- a/frontend/src/components/RomDetails.vue +++ b/frontend/src/components/RomDetails.vue @@ -28,8 +28,7 @@ async function searchRomIGDB() { dialogSearchRom.value = true console.log("searching for rom... "+rom.value.file_name) await axios.put('/api/search/roms/igdb', { - file_name: rom.value.file_name, - p_igdb_id: rom.value.p_igdb_id + rom: rom.value }).then((response) => { console.log(response.data.data) matchedRoms.value = response.data.data diff --git a/readme.md b/readme.md index 5eb0e2031..fc6c998ae 100644 --- a/readme.md +++ b/readme.md @@ -124,7 +124,7 @@ This will change over the time, adding games metadata for more platforms. Make s | arcade | Arcade | ✅ | | atari | atari | ❌ | | coleco | coleco | ❌ | -| commodore | commodore | ❌ | +| c64 | Commodore C64/128/MAX | ✅ | | cpc | cpc | ❌ | | cps1 | cps1 | ❌ | | cps2 | cps2 | ❌ | From 15ecd7db191b4dc006bb194545d81cc205eb0bb0 Mon Sep 17 00:00:00 2001 From: zurdi zurdo Date: Tue, 4 Apr 2023 15:42:13 +0200 Subject: [PATCH 2/2] c64 support added --- changelog.md | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/changelog.md b/changelog.md index 1d9b800bc..b0d942363 100644 --- a/changelog.md +++ b/changelog.md @@ -1,3 +1,12 @@ +# v1.6.2 (_04-04-2023_) + +## Added + - Support for commodore64 +## Fixed + - Searching in IGDB for games in not supported platforms doesn't raise an error anymore + +
+ # v1.6.1 (_04-04-2023_) ## Added