298 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
21eee327b0
Merge branch 'master' into save-sync 2026-04-06 09:09:53 -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
9b5feefb4f
fix migrations 2026-04-05 22:06:04 -04:00
Georges-Antoine Assi
f2e8e337b2
Merge branch 'master' into save-sync 2026-04-05 21:47:53 -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
Georges-Antoine Assi
4a8c3423df
run trunk fmt 2026-04-02 10:21:43 -04:00
Eric Daras
9d659bf00b move proxy env handling into config 2026-04-02 06:23:53 +02: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
Georges-Antoine Assi
e6ddc5da11
bot attempt at save sync 2026-03-14 22:13:38 -04:00
Georges-Antoine Assi
d5cb2356d2
ignore greptiles comments 2026-03-12 18:47:02 -04:00
HydroSulphide
6a1c1597ce Fix: directly import constants from config and preventing silent fallback on wrong user input for env variable 2026-03-12 20:18:48 +01:00
HydroSulphide
0f6e849b16 Implemented startup validation for positive values 2026-03-12 08:48:59 +01:00
HydroSulphide
8293c7ba9b Make OAuth token expiry configurable via env vars 2026-03-12 06:48:48 +01:00
copilot-swe-agent[bot]
dda77737af Implement OIDC RP-Initiated Logout (end-session endpoint)
Co-authored-by: gantoine <3247106+gantoine@users.noreply.github.com>
2026-03-10 01:56:47 +00:00
copilot-swe-agent[bot]
ff1c8b680e Fix OIDC login with Google by adding OIDC_SERVER_METADATA_URL config option
Co-authored-by: gantoine <3247106+gantoine@users.noreply.github.com>
2026-03-09 17:39:43 +00:00
copilot-swe-agent[bot]
53b0b9021b Switch invite token expiration unit from minutes to seconds
Co-authored-by: gantoine <3247106+gantoine@users.noreply.github.com>
2026-03-09 02:48:21 +00:00
copilot-swe-agent[bot]
5f309639af Make invite token expiration configurable via env var and UI
Co-authored-by: gantoine <3247106+gantoine@users.noreply.github.com>
2026-03-09 01:43:53 +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
9ebfe2df50
always use chunk upload endpoint 2026-03-08 14:56:56 -04: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
Carey Metcalfe
becaa60bbf Add option to automatically login using OIDC 2026-01-31 02:41:11 -05:00
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
c0abcd6497
Merge pull request #2728 from rommapp/emujs-netplay
feat: Netplay
2025-12-09 14:32:23 -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
50ddb42c25
[ROMM-2748] Add OIDC_USERNAME_ATTRIBUTE 2025-12-08 10:27:15 -05:00