204 Commits

Author SHA1 Message Date
Georges-Antoine Assi
46c6fde3d1
[ROMM-2490] Multi download endpoint 2025-09-30 11:23:48 -04:00
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