Commit Graph

203 Commits

Author SHA1 Message Date
Georges-Antoine Assi
e349ce6104 changes from bot review 2025-09-21 20:51:30 -04:00
Georges-Antoine Assi
b3a1b6a361 add to example config 2025-09-21 19:23:20 -04:00
Georges-Antoine Assi
3c4113f8a8 Merge branch 'master' into flashpoint-metadata-handler 2025-09-11 21:27:48 -04:00
Michael Manganiello
336b3d58c1 fix: Database JSON array utils
Fix existing JSON array util `json_array_contains_value`, and add two
new utils: `json_array_contains_any` and `json_array_contains_all`.
These utils have been tested with arrays of strings and integers, on the
following database engine versions:

- PostgreSQL: 12, 13, 14, 15, 16, 17, 18
- MySQL: 8.0, 8.4, 9.0, 9.4
- MariaDB: 10.5, 10.6, 10.11, 11.4, 11.8, 12.0
2025-09-08 21:39:46 -03:00
Michael Manganiello
e4e3928d1b misc: Apply import sorting 2025-09-04 11:17:00 -03:00
Georges-Antoine Assi
5d2daf7357 move into a function 2025-09-03 17:51:44 -04:00
Georges-Antoine Assi
33ee8d3a20 [ROMM-2342] Fix single roms display on postgres 2025-09-03 17:06:51 -04:00
Michael Manganiello
a31a8504c2 feat: Add scheduled task to sync RetroAchievements progress
Add a new scheduled task that syncs RetroAchievements progress for all
users with a RetroAchievements username.

Environment variables:
- `ENABLE_SCHEDULED_RETROACHIEVEMENTS_PROGRESS_SYNC`: Enable or disable
  the task (default: `false`)
- `SCHEDULED_RETROACHIEVEMENTS_PROGRESS_SYNC_CRON`: Cron string to
  schedule the task (default: "0 4 * * *" - daily at 4 AM)
2025-08-31 01:57:26 -03:00
Georges-Antoine Assi
ef2546ec08 fix base handler filename 2025-08-27 12:40:16 -04:00
Georges-Antoine Assi
bf0d864d84 Add flashpoint as a metadata handler 2025-08-27 11:04:13 -04:00
Georges-Antoine Assi
898f960c96 noload rom metadata on collection 2025-08-22 09:15:03 -04:00
Georges-Antoine Assi
b26abdf9a0 noload some related tables 2025-08-21 23:59:24 -04:00
Georges-Antoine Assi
344702415f joinedload roms on collection 2025-08-21 23:23:38 -04:00
Georges-Antoine Assi
1d5cd64fb8 move is_verified to db 2025-08-21 22:58:22 -04:00
Georges-Antoine Assi
8ed107336f only print queries once 2025-08-21 22:34:07 -04:00
Georges-Antoine Assi
474459c9d5 move group_id coalesce into partition_by 2025-08-20 18:52:55 -04:00
Georges-Antoine Assi
f32dc3171d ignore type issue 2025-08-20 13:50:12 -04:00
Georges-Antoine Assi
e73b6cc190 add option to skip char index 2025-08-20 13:27:26 -04:00
Georges-Antoine Assi
1c0c93bb3d select only some columns for performance 2025-08-20 11:20:02 -04:00
Georges-Antoine Assi
0cc9789a12 fix get_scalar_roms 2025-08-19 23:40:23 -04:00
Georges-Antoine Assi
464ce6a23d only group roms in certain views 2025-08-19 22:27:49 -04:00
Georges-Antoine Assi
7850cf059f fix loading collections 2025-08-19 21:49:52 -04:00
Georges-Antoine Assi
048f8ba248 move fs_size_bytes back to db 2025-08-19 19:38:56 -04:00
Georges-Antoine Assi
cde0c0681f changes from review 2025-08-19 17:07:05 -04:00
Georges-Antoine Assi
5a5abe4e62 changes from self review 2025-08-19 16:27:46 -04:00
Georges-Antoine Assi
7370f83b8f load sibling_roms for individual roms 2025-08-19 16:08:03 -04:00
Georges-Antoine Assi
0dadf8681e fix updating smart collections 2025-08-19 15:53:03 -04:00
Georges-Antoine Assi
25983fad3a comment cleanup 2025-08-19 14:46:56 -04:00
Georges-Antoine Assi
078b140ddb simplify group_id 2025-08-19 12:50:25 -04:00
Georges-Antoine Assi
13ac6104ce Raise lazy joins so all complex joins are explicit 2025-08-19 10:02:11 -04:00
Georges-Antoine Assi
4657ca305a [ROMM-2274] Use platform_id in group_by_meta_id 2025-08-18 19:51:37 -04: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
Georges-Antoine Assi
cf28e4fdb4 reorder grouping 2025-08-04 20:59:26 -04:00
Georges-Antoine Assi
6d500ff0e9 remove platform ID grouping 2025-08-04 20:56:26 -04:00
Georges-Antoine Assi
2ee370b822 [ROMM-1868] Fix grouping by metadata rows 2025-08-04 17:58:20 -04:00
Georges-Antoine Assi
03c8eede8b Merge branch 'master' into smart-collections 2025-08-02 00:30:58 -04:00
Georges-Antoine Assi
4e2bde2aef Merge branch 'master' into universal-slugs 2025-08-01 21:51:40 -04:00
Georges-Antoine Assi
a1921307db add cd-i support for emujs 2025-07-30 23:43:09 -04:00
Georges-Antoine Assi
1a57ff2c6b complete cycle of creation 2025-07-25 17:24:38 -04:00
Georges-Antoine Assi
2a8fec94e6 update smart collection model 2025-07-25 16:27:10 -04:00
Georges-Antoine Assi
8ddc654c17 update with fixed ids 2025-07-25 15:44:49 -04:00
Georges-Antoine Assi
b693f056e4 [ROMM-2127] Add missing ssfr platform and fix IDs 2025-07-25 09:44:03 -04:00
Georges-Antoine Assi
9fd1adbbfb fixup icon names 2025-07-24 23:20:07 -04:00
Georges-Antoine Assi
595c52bcab Unify singular slugs 2025-07-23 21:52:52 -04:00
Georges-Antoine Assi
526685b479 more work on frontend 2025-07-22 18:47:38 -04:00
Georges-Antoine Assi
f7b030ba10 get backend working sorta 2025-07-22 18:10:12 -04:00
Georges-Antoine Assi
75b8181451 start work on smart collections 2025-07-22 15:49:43 -04:00
Georges-Antoine Assi
5d6ae2c842 stop overwriting IDs on scan 2025-07-14 10:31:19 -04:00
Michael Manganiello
252722e3bc misc: Apply pyupgrade changes for Python 3.12 compatibility
Command applied:
```
find ./backend/ -type f -name "*.py" -exec pyupgrade --py312-plus {} \;
```
2025-06-29 12:27:16 -03:00
Michael Manganiello
57f1f2a013 misc: Remove unused methods from Roms handler
These methods are no longer used in the codebase and have been removed
to clean up the code.
2025-06-25 09:31:01 -03:00