Commit Graph

547 Commits

Author SHA1 Message Date
zurdi
08de3b3ddf fix: typecheck 2025-01-03 03:23:36 +00:00
zurdi
4aa2d49221 feat: fully integrated screenscrapper 2025-01-03 03:08:02 +00:00
zurdi
db4001dea0 feat: base structure for ss support 2025-01-02 10:34:10 +00:00
zurdi
0d1b932701 Merge branch 'master' into feature/screenscraper-integration 2025-01-01 17:43:20 +00:00
Zurdi
41baa0cad4 Merge pull request #1412 from rommapp/feature/1082-continue-playing
feat: continue playing home section
2025-01-01 18:37:38 +01:00
Michael Manganiello
3f4a36a5ce feat: PostgreSQL compatibility
This change introduces PostgreSQL compatibility, by implementing the
following changes:

* Use `JSONB` instead of `JSON` for PostgreSQL databases. This is
  achieved by creating a custom `CustomJSON` type that uses `JSONB` on
  PostgreSQL and `JSON` on other databases, leveraging the variant
  mechanism of SQLAlchemy.
* Add `is_postgresql` function to check if the current database is
  PostgreSQL. Commonly used for migrations, but can be used to determine
  how to build queries based on the database engine.
* Add `json_array_contains_value` function to check if a JSON array
  includes a specific value. This function is needed as it's
  engine-specific.

Support for PostgreSQL is on a best-effort basis, and it relies on the
community for continued support and testing. The project's main database
is MariaDB.

Closes #667.
2024-12-31 12:36:33 -03:00
zurdi
32b1d41198 feat: last played section at home view 2024-12-30 22:28:18 +00:00
Georges-Antoine Assi
4473b6e498 fix formatting and tests 2024-12-28 10:11:36 -05:00
Anthony Uk
d96f11d56f Fix preferred_username 2024-12-28 07:11:23 +01:00
Anthony Uk
920aee5095 Rework OIDC base_handler 2024-12-28 07:05:29 +01:00
zurdi
f6673dd707 fix: Use preferred_username for new user creation instead of email prefix 2024-12-27 15:43:37 +00:00
zurdi
ff03d8e125 refactor: Remove OIDC_CREATE_USER configuration and generate an uuid in a OIDC created user password 2024-12-27 14:49:23 +00:00
zurdi
1083dc6e65 Merge remote-tracking branch 'origin/master' into feature/screenscraper-integration 2024-12-27 14:21:41 +00:00
zurdi
ffbebc2f46 fix: Rename CREATE_OIDC_USER to OIDC_CREATE_USER for consistency 2024-12-27 12:32:49 +00:00
zurdi
e52ebcbc5a feat: Add CREATE_OIDC_USER configuration to enable automatic user creation 2024-12-27 12:04:49 +00:00
zurdi
374d11b755 Merge remote-tracking branch 'origin/master' into feature/screenscraper-integration 2024-12-26 21:06:35 +00:00
Michael Manganiello
e38819b916 misc: Use immutable types for constants 2024-12-25 15:49:18 -03:00
Georges-Antoine Assi
dbb3b6083b only json() once 2024-12-23 14:03:24 -05:00
Georges-Antoine Assi
8332c7b27b fetch jwks_url from server metadata endppoint 2024-12-23 09:34:38 -05:00
Georges-Antoine Assi
6e912054ac Expand list of non-hashable platforms 2024-12-22 21:39:06 -05:00
Georges-Antoine Assi
37db255328 refactor oidc handler and fix tests 2024-12-18 10:49:45 -05:00
Georges-Antoine Assi
1a9735645e Merge branch 'master' into openid-connect 2024-12-18 00:17:40 -05:00
Michael Manganiello
099f6e6fe2 misc: Remove unneeded Redis key for Twitch token expiration
The key `romm:twitch_token_expires_at` is not needed, as we already
set an expiration time for the token key itself. If the token is still
present in Redis, it is valid. If not, it means we either never fetched
it, or it was too close to expiration.

With this change, fetching the Twitch token makes a single Redis call
instead of two.
2024-12-13 14:33:56 -03:00
Michael Manganiello
f78611e8bb Merge pull request #1359 from rommapp/misc/sort-roms-at-handler
misc: Sort roms in get_roms method
2024-12-13 14:29:01 -03:00
Georges-Antoine Assi
34d49e6494 changes from self review 2024-12-13 11:33:39 -05:00
Michael Manganiello
bcaecbd311 misc: Sort roms in get_roms method
The `get_roms` method is used during scanning and to generate feeds.
Sorting by filename is not perfect (e.g. prefixes like "The" or "A"),
but should be good enough for users to better visualize how the scanning
process is going, and how close it's to finish.
2024-12-13 10:01:49 -03:00
Michael Manganiello
09c32f2376 misc: Use async cache in IGDB handler
One of the only places we are still using the sync cache, can be easily
changed to use the async one.
2024-12-13 09:21:47 -03:00
Georges-Antoine Assi
2d5bc34e9c add tests for oidc handler 2024-12-12 17:37:30 -05:00
Georges-Antoine Assi
82ac766c9e oidc login using email 2024-12-12 10:08:27 -05:00
Georges-Antoine Assi
0e2866f0f5 dont setup OIDC if disabled 2024-12-11 23:20:21 -05:00
zurdi
443def9cd9 Merge remote-tracking branch 'origin/master' into feature/screenscraper-integration 2024-12-10 11:40:44 +00:00
Georges-Antoine Assi
cae4089ccf add email field 2024-12-09 19:57:13 -05:00
Georges-Antoine Assi
b7dac4743a Merge branch 'master' into openid-connect 2024-12-07 22:19:24 -05:00
zurdi
c6039ccff4 fix: correct filter condition for retrieving collections associated with a ROM ID 2024-12-05 16:16:34 +00:00
zurdi
014427e69f fix: update ROM deletion process to remove associated collections and streamline user data updates 2024-12-05 16:08:45 +00:00
zurdi
eae8d34d8f fix: convert zlib error to string for better logging in ROM hash calculation 2024-12-04 00:10:44 +00:00
zurdi
7614df07b1 fix: handle zlib error when calculating ROM hashes for corrupted files 2024-12-04 00:06:06 +00:00
Zurdi
a6ff9baf80 Merge pull request #1324 from rommapp/feature/add-platform-info
feat: Add platform info drawer + per platform settings
2024-12-03 19:01:16 +01:00
Zurdi
5b39127a02 Merge pull request #1323 from rommapp/fix/check-user-on-middleware
fix: Crash on new instance from previous installation
2024-12-03 00:25:42 +01:00
Zurdi
219145e000 Update middleware based on review 2024-12-02 18:56:58 +01:00
zurdi
caa24433b1 refactor: improve user authentication handling without requesting to database 2024-12-02 15:37:13 +00:00
zurdi
44afc718a6 refactor: check user existence only for /api/heartbeat endpoint 2024-12-02 15:09:36 +00:00
zurdi
52ccd1c727 fixes based on unit testing 2024-12-02 11:20:40 +00:00
Michael Manganiello
0a4c81d5c1 misc: Retrieve roms by filename from database in bulk during scan
The scanning process could try to fetch thousands of roms from the
database, one by one, which is very inefficient, especially when only a
few new roms are added to the library, as the overhead of database calls
is very high compared to metadata API calls.

This change introduces a new method in the roms handler to retrieve roms
by their file names in bulk, which is used during the scan process to
fetch a batch of roms at once, instead of one by one.

It also avoids the `@with_details` decorator when fetching roms during
the scanning process, as those details are not needed, and they were
adding unnecessary joins and data decoding.
2024-12-02 00:00:47 -03:00
zurdi
6a7433e1f9 removed unnecessary video endpoint request 2024-11-28 16:12:05 +00:00
zurdi
cb5d2438d2 Merge remote-tracking branch 'origin/master' into feature/add-platform-info 2024-11-28 15:23:32 +00:00
zurdi
a29a14aefb normalized covers and logos 2024-11-28 15:23:20 +00:00
zurdi
bf41d9ff05 fixed total crash on a fresh installation having session cookies from previous installation 2024-11-28 12:30:13 +00:00
zurdi
be87d92cf7 fixed platform info migration and models 2024-11-28 12:28:29 +00:00
Georges-Antoine Assi
1866cfdbae revert one oauth to oidc change 2024-11-27 23:39:53 -05:00