Commit Graph

27 Commits

Author SHA1 Message Date
Zurdi
5dc82ab7da Merge pull request #2087 from rommapp/fix/fallback-cover-to-provider
fix: SGDB cover fallback
2025-07-16 16:33:50 +02:00
Georges-Antoine Assi
d65463860b skip sgdb if no api key set 2025-07-16 10:14:22 -04:00
zurdi
90c247959e refactor: simplify game cover retrieval logic in SGDBBaseHandler 2025-07-16 13:48:16 +00:00
zurdi
1e3977e80f feat: enhance fuzzy matching in SGDBBaseHandler by implementing Levenshtein distance sorting 2025-07-15 15:10:05 +00:00
zurdi
dbe2566fe8 feat: integrate Levenshtein distance for improved fuzzy matching in SGDBBaseHandler 2025-07-15 09:31:04 +00:00
zurdi
ff3643060c refactor: improve fuzzy matching in SGDBBaseHandler for game search 2025-07-15 09:18:53 +00:00
Georges-Antoine Assi
3781cbdb6b catch json errors on all ends 2025-07-12 19:16:50 -04:00
Georges-Antoine Assi
bdef16e8a7 remove print lines 2025-07-12 16:16:10 -04:00
Georges-Antoine Assi
44caccc0dc search sgdb after getting all game titles 2025-07-12 15:55:20 -04:00
Georges-Antoine Assi
b5a2dc8d37 exclude nsfw and epileptic covers 2025-07-12 12:26:08 -04:00
Georges-Antoine Assi
d349eef42a add options to normalization 2025-07-12 10:48:04 -04:00
Georges-Antoine Assi
c76caed145 normalized search results 2025-07-12 09:56:18 -04:00
Georges-Antoine Assi
862779803a use normalized exact matching 2025-07-11 21:22:05 -04:00
Georges-Antoine Assi
2bd5ff0cac add sgdb to scan page 2025-07-11 18:55:56 -04:00
Georges-Antoine Assi
837d36375d Fix metadata issues in heasheous handler 2025-07-09 09:14:41 -04:00
Michael Manganiello
bf9fb12f91 misc: Create SteamGridDB service adapter
Add a new service adapter for the SteamGridDB API, to separate
concerns with RomM's handler for metadata.

This adapter is agnostic to the handler and only provides methods to
interact with the API, and correctly return typed responses.
2025-06-25 09:42:32 -03:00
zurdi
2a5bf1ab5b Add SGDBInvalidAPIKeyException for handling invalid API key errors 2025-04-01 09:52:33 +00:00
Georges-Antoine Assi
7fafd452ed update sgdb handler 2025-02-24 21:57:14 -05:00
zurdi
a51dd03e1a Added full offline support and configurable logging level and API requests debug logs 2024-11-27 17:12:13 +00:00
Michael Manganiello
7c6dfa8e50 feat: Use ContextVar to share httpx AsyncClient instance between requests 2024-07-23 01:29:32 -03:00
Michael Manganiello
b61bb11bce feat: Use async requests to retrieve SteamGridDB covers
This change avoids blocking requests when retrieving covers from
SteamGridDB, which is the main bottleneck as the current implementation
iterates over paginated results for multiple games.

Using an asynchronous client like `httpx` provides a good performance
improvement, and reduces the latency when calling this endpoint.
Also, the inclusion of FastAPI `lifespan` allows instantiating a single
client on startup.

When testing with "Final Fantasy V Advance", the endpoint goes from ~9s
to ~1.5s to retrieve all covers.
2024-07-09 22:37:14 -03:00
zurdi
f7b14b43d6 fixed everything from trunk 2024-07-09 13:43:14 +02:00
Michael Manganiello
23ef1fb419 fix: Correctly traverse SteamGridDB API pages
The SteamGridDB API has a bug, where the `total` field for the paginated
endpoint `/v2/grids/game/:gameId` sometimes double/triple counts results
(e.g. returning `total=172` when there are actually 86 results).

To avoid this issue, this change relies on each page's number of
results. If the received page has less than the requested amount of
grids, we know that is the last page.
2024-07-07 12:16:30 -03:00
zurdi
a07133d678 added filter for static/animated cover 2024-06-27 16:45:56 +02:00
zurdi
180c373e1e steamgridDB integration added 2024-06-26 17:36:02 +02:00
Georges-Antoine Assi
b2085f87a8 bunch of fixes for trunk 2024-05-21 17:10:11 -04:00
Georges-Antoine Assi
9ad28f3294 more refactoring again 2024-05-05 16:32:40 -04:00