Commit Graph

110 Commits

Author SHA1 Message Date
Georges-Antoine Assi
fe5af3ef9c fix(screenscraper): respect region priority for multi-region ROMs
For ROMs tagged with multiple regions (e.g. "(Japan, USA)"), filename order
previously decided which region's name and box art won. Now reorder the rom's
filename-tagged regions by SCAN_REGION_PRIORITY before prepending, so the
user's configured preference wins among the regions the file is actually
tagged as. Untagged priority regions still cannot outrank a filename-tagged
region.

Also tweak the Total Rescan → Complete Rescan label in en_GB/en_US scan
locales.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-05-20 17:20:54 -04:00
Spinnich
12c424f829 fix(screenscraper): improve API handling and redact credentials in logs
Fix several issues in ScreenScraper API request/response handling:

- Correctly handle SS-specific HTTP error codes (KO responses, 429, 431,
  and the SS-quirk of returning 401 when server CPU >60%).
- Construct requests with proper parameter encoding so jeuInfos lookups
  and search queries return the expected results.
- Store media URLs returned by SS as-is, preserving the dev credential
  query parameters required for media playback. Removing them broke
  downstream media fetches.

To keep dev credentials out of log output, add a redacting formatter in
the logger pipeline that scrubs ssid/sspassword/devid/devpassword query
parameters from any URL it sees.

Test coverage added for the new HTTP error paths and the as-is URL
storage behaviour.
2026-05-19 19:39:55 -04:00
Georges-Antoine Assi
dad1250e15 case-insensitive region lookup for provider shortcode mapping
Rom.regions can contain raw filename text like "europe" or "EUROPE"
(filename parsing in roms_handler doesn't normalize casing), so the
direct dict lookup missed those tags and the locale silently fell back
to scan.priority.region. Replace the dict access with a helper that
lowercases both sides.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-05-13 09:34:10 -04:00
Georges-Antoine Assi
944514acc0 prefer rom's own region tag for ScreenScraper and IGDB artwork
When a ROM filename carries a region tag (e.g. (Europe)), use that
region first when picking artwork and localized titles, falling back to
the configured scan.priority.region. Previously the configured priority
was the only signal, so a US-first config would force US covers onto
European ROMs even when an EU asset was available.

Adds a shared name->provider-shortcode map and threads the rom through
the IGDB and SS lookup APIs so the rom-aware locale/region selection
can run for both providers.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-05-13 09:06:11 -04:00
copilot-swe-agent[bot]
bf246f842f fix: add cus region to default ScreenScraper fallback regions
Games where only custom (cus) region artwork exists were not fetched
unless users explicitly added 'cus' to their region priority config.
Adding 'cus' to the default fallback list ensures custom artwork is
always considered as a fallback when no other regional artwork exists.

Agent-Logs-Url: https://github.com/rommapp/romm/sessions/75c3e455-f7dd-4bd6-bec7-0460987e40a0

Co-authored-by: gantoine <3247106+gantoine@users.noreply.github.com>
2026-04-16 14:28:51 +00:00
Vargash
f4c965be33 feat: add new export.gamelist.media.image configuration
also fix broken title_screen/miximage/physical key name usage
2026-03-31 11:16:40 +02:00
Georges-Antoine Assi
80e78a8fe3 fix literally everything about age ratings 2026-03-08 18:34:58 -04:00
copilot-swe-agent[bot]
7d103f48a8 Add age rating support from ScreenScraper classifications
Co-authored-by: gantoine <3247106+gantoine@users.noreply.github.com>
2026-03-08 21:20:14 +00:00
copilot-swe-agent[bot]
7f88923dee Add video-normalized support for ScreenScraper scan.media config
Co-authored-by: gantoine <3247106+gantoine@users.noreply.github.com>
2026-03-08 20:30:16 +00:00
Georges-Antoine Assi
58e16d9c69 [ROMM-2949] Add support for shortfile scummvm names 2026-01-29 11:12:35 -05:00
Georges-Antoine Assi
09aa6628f8 Merge pull request #2872 from DevOldSchool/feature/player-count
feat: Added player count metadata from SS with display and filter
2026-01-10 22:59:08 -05:00
DevOldSchool
86a6804447 Added player count metadata from SS. Displays on game detail screen and added a filter under search for player counts. 2026-01-05 11:57:30 +10:00
Georges-Antoine Assi
1610bf29de [HOTFIX] Set metadata fields as nullable 2026-01-03 17:42:18 -05:00
SaraVieira
5ad5205947 allow deleting single chip in additional metadata; add some missing ss ids 2026-01-03 16:43:53 +00:00
SaraVieira
c85841a4ea clean up magical numbers 2025-12-31 18:58:40 +00:00
SaraVieira
aa11eba387 Add CPS1-3 and TIC-80 2025-12-31 18:50:12 +00:00
Georges-Antoine Assi
eebca34e53 [ROMM-2806] Fix arcade ssid in screenscraper 2025-12-26 11:53:30 -05:00
Georges-Antoine Assi
c5ea85add5 [HOTFIX] Stripe keys from ssfr api query params 2025-12-16 20:35:40 -05:00
Georges-Antoine Assi
f7d387bb39 [ROMM-2763] Add MSX2 to ssfr platforms like 2025-12-12 17:17:51 -05:00
ronzano
41eb576d82 Add OpenBOR metadata entry for screenscraper 2025-12-10 23:44:03 +01:00
Georges-Antoine Assi
76d445ccd9 [ROMM-2722] Fix matching special chars in ssfr 2025-12-07 21:21:57 -05:00
Georges-Antoine Assi
306ab845d1 Merge pull request #2700 from tvdu29/feature/metadata-locale-selection
feat: Add metadata locale selection for IGDB and ScreenScraper
2025-11-26 11:40:56 -05:00
Georges-Antoine Assi
9dfad6cb87 run trunk fmt 2025-11-26 11:15:44 -05:00
Georges-Antoine Assi
bb351199f1 update function defs 2025-11-24 19:36:27 -05:00
Vargash
5b195065fe Use wheel as backup mediatype for logo if wheel-hd is not available 2025-11-24 15:47:48 +01:00
Vargash
4c74d7091e Manage fanart_path and use it as fanart for gamelist 2025-11-23 19:49:24 +01:00
Vargash
d9ca6a4f45 Manage box2d_back mediatype and use it as boxback for gamelist 2025-11-23 19:35:30 +01:00
Vargash
089b11c29a Manage wheel mediatype and use it as marquee for gamelist 2025-11-23 19:22:05 +01:00
Tanguy Mazé
28823d39dd Refactor to use scan.priority.region for IGDB localization
Remove provider-specific locale configuration and use existing scan.priority.region for IGDB regional variants.

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-11-23 02:01:13 +01:00
Tanguy Mazé
addc1a2118 Add metadata locale selection for IGDB and ScreenScraper
- Add provider-specific locale config with UI dropdowns in Settings
- ScreenScraper: select language for synopsis/metadata
- IGDB: select region for localized names/covers
- Fallback warnings when locale not found

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-11-23 00:01:12 +01:00
Georges-Antoine Assi
6c25b579fb fix fetching manual from ssfr 2025-11-11 11:26:46 -05:00
Georges-Antoine Assi
80e40788c5 misc improvements from dan 2025-10-31 22:59:30 -04:00
Georges-Antoine Assi
a3cdef3faa changes from bot review 2025-10-31 11:58:56 -04:00
Georges-Antoine Assi
f8b0ae63a1 fix scanning multi file games with ssfr 2025-10-31 10:50:51 -04:00
Georges-Antoine Assi
9fcaa3d8ba one more tweak 2025-10-30 21:13:21 -04:00
Georges-Antoine Assi
0424e4450f implement hash lookup for ssfr 2025-10-30 16:00:47 -04:00
Georges-Antoine Assi
e2c055f7e5 add logo and marquee paths 2025-10-30 15:33:35 -04:00
Georges-Antoine Assi
60a54cfb33 add unkl media option 2025-10-30 09:18:27 -04:00
Georges-Antoine Assi
ec7f0b3b10 add famicom and sfam support to ssfr 2025-10-24 23:48:11 -04:00
Georges-Antoine Assi
78bfdf0543 fixes from bot review 2025-10-24 19:13:13 -04:00
Georges-Antoine Assi
463bb27ea9 Add config to store media on disk 2025-10-24 16:04:54 -04:00
Georges-Antoine Assi
bbade3e40e fix tests 2025-10-23 17:05:23 -04:00
Georges-Antoine Assi
0ccf644662 instead of storing alt covers add toggle to theUI 2025-10-23 15:58:00 -04:00
Georges-Antoine Assi
304aa24b56 changes from bot review 2025-10-23 13:36:11 -04:00
Georges-Antoine Assi
5873290f9a run trunk check 2025-10-23 11:20:56 -04:00
Georges-Antoine Assi
cd907fcf23 display bezels 2025-10-22 20:21:31 -04:00
Georges-Antoine Assi
9344801ec6 fix types 2025-10-22 19:26:30 -04:00
Georges-Antoine Assi
5aa344b3ce select media format for scan 2025-10-22 19:08:42 -04:00
Georges-Antoine Assi
f1dac8270f pull all media in ssfr to db 2025-10-22 16:38:22 -04:00
Georges-Antoine Assi
df68dc9bd9 Merge both odyssey 2 platform 2025-10-03 16:28:02 -04:00