20 Commits

Author SHA1 Message Date
Georges-Antoine Assi
ae36f75643
broken bot generated structure parsing 2025-10-14 09:53:35 -04:00
Georges-Antoine Assi
5df6c914e8
fix tests 2025-10-05 11:15:38 -04:00
Michon van Dooren
240f348f92
Add support for OIDC role claim 2025-09-29 22:27:10 +02:00
Georges-Antoine Assi
35bfe9ed61
fix tests 2025-09-25 20:44:11 -04:00
Georges-Antoine Assi
b5776be475
Split rom.multi into more specific fields 2025-09-25 18:48:27 -04:00
Georges-Antoine Assi
485b02d1c9
fix scan test 2025-09-23 19:03:24 -04:00
Georges-Antoine Assi
debc6c4cab
run formatter 2025-09-11 22:35:19 -04:00
Georges-Antoine Assi
3c4113f8a8
Merge branch 'master' into flashpoint-metadata-handler 2025-09-11 21:27:48 -04:00
Michael Manganiello
e4e3928d1b
misc: Apply import sorting 2025-09-04 11:17:00 -03:00
Michael Manganiello
d216bad78b
misc: Add MetadataHandler's is_enabled method
Convert `MetadataHandler` to an abstract base class and add an
`is_enabled` class method that allows every metadata handler to
independently report whether it is enabled based on its configuration.

This avoids the need for global variables in the config module, allowing
us to change the enabled state of a metadata handler at runtime if
needed.
2025-09-03 22:13:28 -03:00
Michael Manganiello
b2ea84b5bb
misc: Create IGDB service adapter
Add a new service adapter for the IGDB 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.

The API authorization was also improved to not rely on decorating each
method that makes requests, but instead using an `aiohttp` middleware
to automatically add the required headers to each request.

Utils `mark_expanded` and `mark_list_expanded` where added to help
narrow the types of IGDB's expandable fields when we know they are
expanded, for `mypy` type checking.
2025-08-30 20:21:15 -03:00
Georges-Antoine Assi
382c4e4a25
remove test fle 2025-08-27 16:42:49 -04:00
Georges-Antoine Assi
410c65c544
add flashpoint metadata to roms_metadata 2025-08-27 16:30:03 -04:00
Georges-Antoine Assi
ef2546ec08
fix base handler filename 2025-08-27 12:40:16 -04:00
Georges-Antoine Assi
27928bd75b
fix pytests 2025-08-27 11:41:24 -04:00
Georges-Antoine Assi
ee0110699d
fix id column type 2025-08-27 11:23:27 -04:00
Georges-Antoine Assi
bf0d864d84
Add flashpoint as a metadata handler 2025-08-27 11:04:13 -04:00
Michael Manganiello
80291f4be1
misc: Move cache initialization to startup script
Guarantee that cache is initialized during startup, and only once,
instead of every time a `MetadataHandler` object is instantiated.

Also, improve logic to determine `fixtures` paths.
2025-08-13 12:26:15 -03:00
Michael Manganiello
00d7815889
fix: Improve performance on asset screenshot retrieval
When retrieving the related screenshot for a `Save` or `State`, we were
retrieving a very heavy representation of the associated `Rom` object,
only to iterate through its screenshots to find the one we needed.

This change modifies the `Save` and `State` models to directly query the
`Screenshot` model, which is much faster and more efficient. The
`DBScreenshotsHandler` has been updated to include a new `filter` method
that will simplify building queries using SQLAlchemy, something we can
extend to other handlers in the future.

Fixes #1925.
2025-08-10 15:33:13 -03:00
Michael Manganiello
ba21cbc1e1
misc: Separate tests folder from backend code
Create separate `tests/` folder for all tests. This will also simplify
not copying tests code into the Docker image.
2025-08-08 12:49:13 -03:00