Commit Graph

90 Commits

Author SHA1 Message Date
Georges-Antoine Assi
e1969652bf run fmt 2026-04-16 08:14:48 -04:00
Julien Loir
9a311a889b Add missing skip_hash_calculation from config write 2026-04-16 12:57:30 +02:00
Georges-Antoine Assi
f94c1491e5 fix: respect SCAN_ARTWORK_PRIORITY for SGDB and align libretro search with SGDB pattern
SGDB's url_cover used to clobber whatever the artwork priority loop
picked, which meant user-set priorities (e.g. libretro > sgdb) and
manually uploaded covers were silently overridden. SGDB now only
replaces the current url_cover when it outranks every other source
that produced one under SCAN_ARTWORK_PRIORITY, and never over a
manual cover preserved on UPDATE/UNMATCHED scans. Default artwork
priority gains sgdb at the top so existing "SGDB wins" behavior is
preserved for default configs.

On the /search/roms endpoint, libretro is now an enrichment source
alongside SGDB instead of a primary match source: it decorates
entries resolved by IGDB/Moby/SS/Flashpoint/Launchbox with
libretro_id and libretro_url_cover, mirroring how SGDB works.
get_matched_roms_by_name is removed from the libretro handler since
nothing else calls it.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-04-12 11:52:44 -04:00
Georges-Antoine Assi
522df9d31a feat: add libretro thumbnails as an artwork source
Adds the libretro thumbnail repository as a first-class artwork source so
region-correct box art (PAL/Europe, Japan, etc.) can be matched directly
to ROM filenames, addressing rommapp/romm#3239.

Implementation follows the SGDB handler pattern (artwork-only, no game
metadata): MetadataSource enum entry, scan-time fetch wired into the
SCAN_ARTWORK_PRIORITY loop, /search/roms integration, MatchRom dialog
chip + cover selection, and a heartbeat flag.

Matching is exact case-insensitive against the directory listing first
(so a ROM named "(Europe)" lands on the (Europe) artwork), with a
JaroWinkler fuzzy fallback at 0.8 that strips parenthetical tags from
both sides. Listings are cached in Redis with a 24h TTL.

`libretro_id` is persisted on the Rom model as the SHA1 hex of the
matched libretro filename — stable across scans, distinct per region,
indexed for lookup. Migration 0077 adds the column.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-04-11 22:57:20 -04:00
Georges-Antoine Assi
2dc1678931 changes from bot review 2026-04-06 11:22:44 -04:00
Georges-Antoine Assi
f2619ac0d1 Merge branch 'master' into pegasus-metadata-export 2026-04-06 11:06:08 -04:00
Georges-Antoine Assi
e50f157987 fix check 2026-04-06 08:56:36 -04:00
Georges-Antoine Assi
1501f45220 more changes from review 2026-04-05 23:15:42 -04:00
Georges-Antoine Assi
fafb804bc6 mega cleanup 2026-04-05 22:35:37 -04:00
Georges-Antoine Assi
a61ff81e22 Merge branch 'master' into gamelist-customize 2026-04-05 22:11:02 -04:00
Georges-Antoine Assi
ceddf2f9e9 changes from bot review 2026-04-03 11:24:02 -04:00
Georges-Antoine Assi
ec8583016b mega ton of fixes for 4.8 2026-04-03 10:54:31 -04:00
Vargash
2b17da0c6c fix: manage the new export.gamelist.media configs via _update_config_file 2026-03-31 15:29:23 +02: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
Vargash
3e072873e1 feat: new export.gamelist.media.thumbnail configuration 2026-03-31 11:00:49 +02:00
Georges-Antoine Assi
51a4b4d473 fix tests 2026-03-21 23:52:41 -04:00
Georges-Antoine Assi
4536deff65 more twekas 2026-03-21 22:30:10 -04:00
Georges-Antoine Assi
49a73e8944 export media to assets folder 2026-03-21 21:55:11 -04:00
Georges-Antoine Assi
770b8f94ac feat: add Pegasus Frontend metadata export support
Add metadata.pegasus.txt export alongside the existing gamelist.xml
export. Restructure the export system: rename the gamelist endpoint to
a general-purpose export endpoint (`/api/export/`) with sub-routes for
each format (`/gamelist-xml`, `/pegasus`). Move config from flat
`scan.export_gamelist` to nested `scan.export.gamelist_xml` and
`scan.export.pegasus` for auto-export on scan.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-03-21 16:09:20 -04: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
ee998eb700 add gamelist.xml to default exclude files 2026-02-12 11:02:20 -05:00
Georges-Antoine Assi
acfc189798 [ROMM-2927] Add default folders to config manager 2026-02-09 14:55:29 -05:00
Cobaltboy
5712f651d3 Formatted files 2026-02-05 19:57:39 +05:30
Cobaltboy
d3ededffd6 renamed configuration 2026-02-05 14:05:00 +05:30
Cobaltboy
5464b3748c formatting cleanup
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
2026-02-04 13:39:51 +05:30
Cobaltboy
0c2f27d669 formatting cleanup
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
2026-02-04 13:39:18 +05:30
Cobaltboy
90694133c6 Added Automatic Gamelist export support 2026-02-03 19:42:45 +05:30
Georges-Antoine Assi
96612da4c2 [ROMM-2889] Add media to update_config_file 2026-01-12 09:55:37 -05:00
Georges-Antoine Assi
11cfc7ea43 Add config options to disable batch bootup and auto unload in emujs 2025-12-21 10:50:27 -05:00
Georges-Antoine Assi
13ce21d70c chagnes from bot review 2025-12-08 23:30:17 -05:00
Georges-Antoine Assi
d32a2af470 fix tests 2025-12-08 23:22:41 -05:00
Georges-Antoine Assi
27c83e4736 add config entry to enable netplay 2025-12-08 22:58:48 -05:00
Georges-Antoine Assi
099d58b1e5 add config for netplay 2025-11-26 15:19:45 -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
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
zurdi
368509947e Add SKIP_HASH_CALCULATION configuration option and update related logic 2025-11-20 17:13:51 +00:00
Georges-Antoine Assi
e2c055f7e5 add logo and marquee paths 2025-10-30 15:33:35 -04:00
Georges-Antoine Assi
f30f0bfd75 Smarter detection of whether to scan roms 2025-10-26 13:21:56 -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
64c2689862 changes from self review 2025-10-23 17:15:19 -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
5aa344b3ce select media format for scan 2025-10-22 19:08:42 -04:00
Georges-Antoine Assi
3575783769 Merge branch 'master' into romm-821 2025-10-21 21:46:23 -04:00
Georges-Antoine Assi
1e67b8f1ac Use os.access for config file readability 2025-10-21 20:27:00 -04:00
Georges-Antoine Assi
f87b7971a2 Separate checks for readable/writable config.yml 2025-10-21 20:18:31 -04:00
Georges-Antoine Assi
3cfc52234a start work on gamelist.xml extraction 2025-10-16 23:16:39 -04:00
Georges-Antoine Assi
e349ce6104 changes from bot review 2025-09-21 20:51:30 -04:00
Georges-Antoine Assi
444a5d6a31 fix config manager 2025-09-21 10:22:14 -04:00