Commit Graph

245 Commits

Author SHA1 Message Date
zurdi
006cf2e2eb Refactor last played filter logic and clean up unused API helper 2025-12-31 15:17:41 +00:00
zurdi
647e99fca7 Add last played filter to ROMs retrieval and update related tests 2025-12-30 12:53:12 +00:00
zurdi
a9dc83a8bd Merge branch 'master' into feat/rom-filter-multivalue 2025-12-30 12:39:38 +00:00
Michon van Dooren
dfd8840f97 Improve join on platforms in queries on roms table
The old variant added subqueries that query the entire rom table which
were evaluated for each rom, absolutely tanking the performance on
larger collections.
2025-12-29 21:25:55 +01:00
zurdi
a956008259 feat: update ROM filtering to support multi-value statuses and logic operators 2025-12-25 11:52:00 +00:00
zurdi
48d6df9cc0 feat: add logic operators for multi-value filters in collections and roms handlers 2025-12-24 15:23:44 +00:00
Georges-Antoine Assi
ace8ed3679 [ROMM-2791] Stop filtering out None values in order_by filter 2025-12-24 10:03:42 -05:00
zurdi
ab637203ac Merge branch 'master' into feat/rom-filter-multivalue 2025-12-24 12:39:45 +00:00
Georges-Antoine Assi
be3615b51a outer join romfile on by_hash call 2025-12-18 11:40:44 -05:00
Georges-Antoine Assi
ea708e43b4 bot review 2025-12-12 17:16:47 -05:00
Georges-Antoine Assi
19ef2d4d5f type ignore session and query attrs 2025-12-12 17:05:12 -05:00
Georges-Antoine Assi
f07abcf001 changes from bot review 2025-12-12 16:57:51 -05:00
Georges-Antoine Assi
8a66ac8127 [ROMM-2762] Add get_rom_by_hash endpoint 2025-12-12 16:52:17 -05:00
Georges-Antoine Assi
562d976a3e [ROMM-2668] Speedup feeds endpoint 2025-12-09 21:11:11 -05:00
zurdi
bc73f07537 Refactor: enhance filter criteria handling to support multi-value selections for genres, franchises, collections, companies, age ratings, regions, and languages 2025-11-28 22:36:21 +00:00
zurdi
b2a571068b Refactor: remove max_length constraints from query parameters and update boolean filter values to use true/false strings 2025-11-28 19:04:29 +00:00
zurdi
92cb643405 Refactor: update filter criteria handling to support multi-value platform IDs and remove legacy conversion logic 2025-11-28 17:04:43 +00:00
zurdi
ca07580484 Refactor: streamline filter application logic and enhance multi-value support across API and frontend components 2025-11-28 16:26:54 +00:00
zurdi
a079613be2 Refactor platform filtering logic: simplify filter_by_platform_ids method by removing match_all parameter and redundant AND logic 2025-11-27 22:56:14 +00:00
zurdi
c1d43f67f8 Refactor ROM retrieval to support multi-value platform filtering across various handlers and endpoints 2025-11-27 22:52:33 +00:00
zurdi
b4dd08d7b4 Refactor platform filtering logic: remove single platform ID and logic operator parameters, streamline multi-platform handling in API and frontend components. 2025-11-27 20:13:29 +00:00
zurdi
937ba54077 Implement multi-value platform filtering with logic operators in ROMs API and frontend components 2025-11-27 19:55:28 +00:00
zurdi
85e4f0a433 Enhance multi-value filter functionality with logic operators for genres, franchises, collections, companies, age ratings, regions, and languages. Update API and frontend components to support new filter states and logic. Refactor gallery filter store and API service to accommodate multi-value selections and maintain backward compatibility with single-value filters. Improve UI for filter options in the gallery app, including logic toggle buttons for better user interaction. 2025-11-27 19:19:09 +00:00
zurdi
c6717ee635 Refactor gallery filter components to use toggle buttons for filter states, allowing null values for all filters. Update filter logic in the store and API services to accommodate new states. Enhance UI for better visibility and interaction with filter options in the gallery app. 2025-11-27 12:56:01 +00:00
zurdi
1cec07af11 Merge branch 'master' into feat/rom-filter-multivalue 2025-11-26 22:07:53 +00:00
Zurdi
4a73458775 Update backend/handler/database/roms_handler.py
Co-authored-by: gemini-code-assist[bot] <176961590+gemini-code-assist[bot]@users.noreply.github.com>
2025-11-26 14:47:49 +01:00
zurdi
7dc5f375e5 implement endpoint to retrieve ROM by various metadata IDs and add corresponding API method 2025-11-26 12:38:43 +00:00
zurdi
91e3dfb1bb feat: add RomNote import to roms_handler for enhanced functionality 2025-11-21 14:20:10 +00:00
zurdi
d48be2f37c Merge branch 'master' into feat/rom-filter-multivalue 2025-11-21 14:11:07 +00:00
zurdi
19b0c2ab6b feat: update note management to use default query parameters and improve tag filtering 2025-11-20 17:54:33 +00:00
zurdi
03083d4b69 feat: implement multi-note management with CRUD operations and database migration 2025-11-20 15:38:11 +00:00
Georges-Antoine Assi
9a0b37dcfa add puredos to hasheous matches 2025-11-01 10:48:46 -04:00
Georges-Antoine Assi
f30f0bfd75 Smarter detection of whether to scan roms 2025-10-26 13:21:56 -04:00
Georges-Antoine Assi
38f42aa352 Merge branch 'master' into romm-2536 2025-10-23 18:24:36 -04:00
Georges-Antoine Assi
9a1f25426d add tests 2025-10-23 11:12:17 -04:00
Georges-Antoine Assi
780b9595b8 [HOTFIX] Fix fetching saves/states for rom or platform 2025-10-23 10:42:50 -04:00
Georges-Antoine Assi
81702a4bbd Add endpoint for ps3 pkgi 2025-10-19 11:16:32 -04:00
Georges-Antoine Assi
1c84f84948 globally rename favourite to favorite 2025-10-18 14:26:20 -04:00
Georges-Antoine Assi
341332d98e mark favorites collection explicit 2025-10-18 13:42:03 -04:00
Georges-Antoine Assi
97ed8072dd add is_favorite migration 2025-10-18 13:27:19 -04:00
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
5a1f7d8170 feat: Initial support for multi-value ROM filters
This change converts the existing single-value ROM filter parameters
to support multiple values. Users can now filter ROMs by multiple genres,
franchises, collections, companies, age ratings, regions, and languages by
repeating the respective query parameters in API requests.

At the moment, setting multiple values for a filter will return ROMs
that match any of the provided values (logical OR). A future change can
introduce parameters like `genres_all (boolean)` to allow filtering ROMs
that match all specified values (logical AND).

The frontend has been updated to send single-value filters as arrays
to maintain compatibility with existing UI components. At the moment,
the UI does not support selecting multiple values, but this change
lays the groundwork for it.

NOTE: Breaking API change, as the filter parameters have changed names.
2025-09-09 00:21:55 -03: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