Commit Graph

20 Commits

Author SHA1 Message Date
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
f2e8e337b2 Merge branch 'master' into save-sync 2026-04-05 21:47:53 -04:00
Georges-Antoine Assi
e0214f100d more bot cleanup 2026-04-05 19:15:33 -04:00
Georges-Antoine Assi
ef35ecaea9 props rom updte endpoint 2026-04-04 14:16:00 -04:00
copilot-swe-agent[bot]
ce42957162 style: use consistent positional args for remove_file call
Agent-Logs-Url: https://github.com/rommapp/romm/sessions/303f2c27-6b65-41a9-b201-c055142b1edb

Co-authored-by: gantoine <3247106+gantoine@users.noreply.github.com>
2026-04-03 17:33:06 +00:00
copilot-swe-agent[bot]
674061c1d3 fix: narrow OSError catch and clean up test mock
Agent-Logs-Url: https://github.com/rommapp/romm/sessions/303f2c27-6b65-41a9-b201-c055142b1edb

Co-authored-by: gantoine <3247106+gantoine@users.noreply.github.com>
2026-04-03 17:31:14 +00:00
copilot-swe-agent[bot]
394799d7c3 fix: wrap empty parent dir cleanup in try-except and add test coverage for it
Agent-Logs-Url: https://github.com/rommapp/romm/sessions/303f2c27-6b65-41a9-b201-c055142b1edb

Co-authored-by: gantoine <3247106+gantoine@users.noreply.github.com>
2026-04-03 17:28:50 +00:00
copilot-swe-agent[bot]
e540d7c1a2 fix: handle nested ROM directories in delete endpoint and reorder FS/DB operations
Agent-Logs-Url: https://github.com/rommapp/romm/sessions/303f2c27-6b65-41a9-b201-c055142b1edb

Co-authored-by: gantoine <3247106+gantoine@users.noreply.github.com>
2026-04-03 17:26:22 +00:00
Georges-Antoine Assi
55ca39cacb fix deprecations in pydantic 2026-03-15 09:34:48 -04:00
Georges-Antoine Assi
3e65534d6e remove unnceserray upload checks 2026-03-13 17:40:45 -04:00
Georges-Antoine Assi
b1cd003625 run fmt 2026-03-11 22:27:33 -04:00
Georges-Antoine Assi
6900f91f54 run fmt 2026-03-11 22:03:16 -04:00
copilot-swe-agent[bot]
d45530cd8b Add typed RomUserData model for documented partial ROM user props update
Co-authored-by: gantoine <3247106+gantoine@users.noreply.github.com>
2026-03-12 01:41:10 +00:00
Georges-Antoine Assi
8a76391935 do code once 2026-03-09 18:21:01 -04:00
copilot-swe-agent[bot]
b07e647c40 Fix M3U generation to only include .cue files when present in bin/cue ROM packages
Co-authored-by: gantoine <3247106+gantoine@users.noreply.github.com>
2026-03-09 17:42:32 +00:00
Georges-Antoine Assi
cefcd4852d simplify endpoint a bit 2026-03-08 15:50:56 -04:00
Georges-Antoine Assi
e81659ab0f cleanup and add tests 2026-03-08 15:32:49 -04:00
Georges-Antoine Assi
f445ce0ee1 changes from bot review 2026-03-08 15:07:54 -04:00
Georges-Antoine Assi
f6b11d3bde split out rom endpoints 2026-03-08 14:51:28 -04:00
Georges-Antoine Assi
a999e7e055 move under rom subfolder 2026-03-08 14:22:30 -04:00