diff --git a/backend/handler/filesystem/resources_handler.py b/backend/handler/filesystem/resources_handler.py index 369853020..8fe44a5fa 100644 --- a/backend/handler/filesystem/resources_handler.py +++ b/backend/handler/filesystem/resources_handler.py @@ -160,24 +160,23 @@ class FSResourcesHandler(FSHandler): if not entity: return None, None - small_cover_exists = self.cover_exists(entity, CoverSize.SMALL) - if url_cover and (overwrite or not small_cover_exists): - await self._store_cover(entity, url_cover, CoverSize.SMALL) - small_cover_exists = self.cover_exists(entity, CoverSize.SMALL) + # Download covers if URL provided and (overwriting or covers don't exist) + if url_cover: + if overwrite or not self.cover_exists(entity, CoverSize.SMALL): + await self._store_cover(entity, url_cover, CoverSize.SMALL) + if overwrite or not self.cover_exists(entity, CoverSize.BIG): + await self._store_cover(entity, url_cover, CoverSize.BIG) + # Return paths for existing covers path_cover_s = ( self._get_cover_path(entity, CoverSize.SMALL) - if small_cover_exists + if self.cover_exists(entity, CoverSize.SMALL) else None ) - - big_cover_exists = self.cover_exists(entity, CoverSize.BIG) - if url_cover and (overwrite or not big_cover_exists): - await self._store_cover(entity, url_cover, CoverSize.BIG) - big_cover_exists = self.cover_exists(entity, CoverSize.BIG) - path_cover_l = ( - self._get_cover_path(entity, CoverSize.BIG) if big_cover_exists else None + self._get_cover_path(entity, CoverSize.BIG) + if self.cover_exists(entity, CoverSize.BIG) + else None ) return path_cover_s, path_cover_l @@ -310,18 +309,18 @@ class FSResourcesHandler(FSHandler): return f"{rom.fs_resources_path}/screenshots/{idx}.jpg" async def get_rom_screenshots( - self, rom: Rom | None, overwrite: bool, url_screenshots: list | None + self, rom: Rom, overwrite: bool, url_screenshots: list | None ) -> list[str]: - if not rom or not url_screenshots: - return [] + # Return existing screenshots if no URLs provided + # Or if not overwriting and screenshots already exist + if not url_screenshots or (not overwrite and self.screenshots_exist(rom)): + return rom.path_screenshots or [] + # Download and store new screenshots path_screenshots: list[str] = [] - - screenshots_exist = self.screenshots_exist(rom) - if overwrite or not screenshots_exist: - for idx, url_screenhot in enumerate(url_screenshots): - await self._store_screenshot(rom, url_screenhot, idx) - path_screenshots.append(self._get_screenshot_path(rom, str(idx))) + for idx, url_screenshot in enumerate(url_screenshots): + await self._store_screenshot(rom, url_screenshot, idx) + path_screenshots.append(self._get_screenshot_path(rom, str(idx))) return path_screenshots @@ -403,18 +402,14 @@ class FSResourcesHandler(FSHandler): return None async def get_manual( - self, rom: Rom | None, overwrite: bool, url_manual: str | None + self, rom: Rom, overwrite: bool, url_manual: str | None ) -> str | None: - if not rom: - return None + if not url_manual or (not overwrite and self.manual_exists(rom)): + return rom.path_manual or None - manual_exists = self.manual_exists(rom) - if url_manual and (overwrite or not manual_exists): - await self._store_manual(rom, url_manual) - manual_exists = self.manual_exists(rom) - - path_manual = self._get_manual_path(rom) if manual_exists else None - return path_manual + # Download and store new manual + await self._store_manual(rom, url_manual) + return self._get_manual_path(rom) async def remove_manual(self, rom: Rom): await self.remove_directory(f"{rom.fs_resources_path}/manual") diff --git a/backend/handler/scan_handler.py b/backend/handler/scan_handler.py index 07fd83757..b9b8afd2d 100644 --- a/backend/handler/scan_handler.py +++ b/backend/handler/scan_handler.py @@ -718,10 +718,6 @@ async def scan_rom( if field_value: rom_attrs[field] = field_value - print("rom_attrs: ", rom_attrs) - print("newly_added: ", newly_added) - print("scan_type: ", scan_type) - # Don't overwrite existing base fields on update and unmatched scans if not newly_added and ( scan_type == ScanType.UNMATCHED or scan_type == ScanType.UPDATE diff --git a/backend/tests/handler/filesystem/test_resources_handler.py b/backend/tests/handler/filesystem/test_resources_handler.py index 1ef9eaa60..aed93103b 100644 --- a/backend/tests/handler/filesystem/test_resources_handler.py +++ b/backend/tests/handler/filesystem/test_resources_handler.py @@ -253,14 +253,6 @@ class TestFSResourcesHandler: expected = f"{rom.fs_resources_path}/screenshots/{idx}.jpg" assert result == expected - @pytest.mark.asyncio - async def test_get_rom_screenshots_no_rom(self, handler: FSResourcesHandler): - """Test get_rom_screenshots with no ROM""" - result = await handler.get_rom_screenshots( - None, True, ["http://example.com/screenshot.jpg"] - ) - assert result == [] - @pytest.mark.asyncio async def test_get_rom_screenshots_no_urls( self, handler: FSResourcesHandler, rom: Rom