Commit Graph

3214 Commits

Author SHA1 Message Date
Georges-Antoine Assi
ee998eb700 add gamelist.xml to default exclude files 2026-02-12 11:02:20 -05:00
Georges-Antoine Assi
c1a8a059a9 Merge pull request #2986 from rommapp/romm-2899
[ROMM-2899] PKGJ feed endpoints
2026-02-10 10:43:30 -05:00
Georges-Antoine Assi
acda4bb6ce move get_rap_data out of loop 2026-02-10 09:59:29 -05:00
Georges-Antoine Assi
dc857d9649 use csv writer to build feed response 2026-02-10 09:44:59 -05:00
Georges-Antoine Assi
7231414c67 use pkgj last_modified 2026-02-10 08:56:30 -05:00
Georges-Antoine Assi
527f144c1f trunk check fix 2026-02-09 23:52:45 -05:00
Georges-Antoine Assi
393375be7f tweaks to returned feed data 2026-02-09 23:20:04 -05:00
Georges-Antoine Assi
661a5504d7 find a couple more uses 2026-02-09 17:26:21 -05:00
Georges-Antoine Assi
df4a4e3645 move imports up 2026-02-09 15:08:21 -05:00
Georges-Antoine Assi
acfc189798 [ROMM-2927] Add default folders to config manager 2026-02-09 14:55:29 -05:00
Georges-Antoine Assi
66ee72431e fix bot comment 2026-02-08 21:23:42 -05:00
Georges-Antoine Assi
16cac7cf64 [ROMM-2972] Fix /props returning stale data 2026-02-08 21:10:12 -05:00
Georges-Antoine Assi
c6e9ce5bbd filter out non-owned collections when adding 2026-02-08 09:52:55 -05:00
Georges-Antoine Assi
5596999a3b one last regression 2026-02-07 22:46:09 -05:00
Georges-Antoine Assi
cb85d70b83 extract filter into own block 2026-02-07 22:27:44 -05:00
Georges-Antoine Assi
3e86e55994 changes from bot review 2026-02-07 22:02:15 -05:00
Georges-Antoine Assi
2d678ef19f [ROMM-2976] Fix no games displayed for status filter 2026-02-07 21:27:24 -05:00
Georges-Antoine Assi
4733a86302 [ROMM-2983] Fix negative filter by verified 2026-02-07 15:44:03 -05:00
Georges-Antoine Assi
efb157a57d [ROMM-2997] Fix HLTB saerch term fetching 2026-02-06 11:53:11 -05:00
Georges-Antoine Assi
257d0ef669 Update hltb_api_url 2026-02-06 11:49:53 -05:00
Georges-Antoine Assi
37436fddb7 changes from self review 2026-02-06 10:31:08 -05:00
Georges-Antoine Assi
e36d7650e7 [ROMM-2989] Split search term by | 2026-02-06 10:20:14 -05:00
Cobaltboy
5712f651d3 Formatted files 2026-02-05 19:57:39 +05:30
Cobaltboy
d3ededffd6 renamed configuration 2026-02-05 14:05:00 +05:30
Georges-Antoine Assi
7cc2097203 Merge branch 'master' into romm-2899 2026-02-04 09:52:45 -05:00
Cobaltboy
0d2ddb1b8b minor config optimization
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
2026-02-04 13:41:19 +05:30
Cobaltboy
2944ad9b35 improved logging conditioning
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
2026-02-04 13:40:39 +05:30
Cobaltboy
5464b3748c formatting cleanup
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
2026-02-04 13:39:51 +05:30
Cobaltboy
0c2f27d669 formatting cleanup
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
2026-02-04 13:39:18 +05:30
Cobaltboy
d681ca1f86 Optimise database query for auto_export
Pulls database call out of the loop

Co-authored-by: gemini-code-assist[bot] <176961590+gemini-code-assist[bot]@users.noreply.github.com>
2026-02-04 12:15:31 +05:30
Cobaltboy
8dbacfd6a5 Merge branch 'rommapp:master' into feat_auto_export_gamelist 2026-02-04 11:12:20 +05:30
Georges-Antoine Assi
0b0756fa38 update migration file again 2026-02-03 23:39:23 -05:00
Georges-Antoine Assi
7b926ec7b6 update migration file 2026-02-03 23:28:16 -05:00
Georges-Antoine Assi
0da88e4727 Merge pull request #2984 from zeroSteiner/fix/issue/2451
Fix #2451: Group games with same name but different tags as versionsr
2026-02-03 23:27:41 -05:00
Georges-Antoine Assi
14c0676f1a Merge pull request #2917 from tmgast/feature/device-registration-save-sync
Add device-based save synchronization
2026-02-03 23:25:23 -05:00
nendo
34f48e58a1 feat(devices): default to returning existing device on duplicate registration
Change allow_existing default to True so duplicate fingerprint matches
return the existing device (200) instead of 409 Conflict. Add model
validator to force allow_existing=False when allow_duplicate is set.
2026-02-04 11:10:40 +09:00
Spencer McIntyre
624f4ce14d Update the romm view to group by fs no tag 2026-02-03 20:22:59 -05:00
Spencer McIntyre
d95899333f Add the migration for the new view 2026-02-03 20:12:54 -05:00
Georges-Antoine Assi
959c9ac0bf refactor feeds file 2026-02-03 17:09:21 -05:00
Georges-Antoine Assi
4b4a34631d bot created test file 2026-02-03 16:48:58 -05:00
Georges-Antoine Assi
d0a71ae5fe add new endpoints for pkgj 2026-02-03 16:22:39 -05:00
Cobaltboy
90694133c6 Added Automatic Gamelist export support 2026-02-03 19:42:45 +05:30
nendo
e3642523f9 refactor(saves): simplify SaveSchema construction with model_validate
Add model_validator to SaveSchema that safely handles SQLAlchemy lazy
relationships by checking inspect(obj).unloaded before attribute access.
This allows direct use of model_validate(orm_obj) instead of manually
building a dict and excluding device_syncs.
2026-02-03 21:05:03 +09:00
nendo
8ae07d77f3 test: add device duplicate handling tests and fix saves hash import
Add tests for duplicate device registration scenarios (409 conflict,
allow_existing, allow_duplicate, reset_syncs). Fix compute_file_hash
function references after relocation to assets_handler.
2026-02-03 20:48:35 +09:00
nendo
132e0ad256 refactor(utils): extract to_utc function to utils/datetime.py
Move UTC datetime normalization to a dedicated utils module for
reusability across the codebase.
2026-02-03 20:07:47 +09:00
nendo
bf8cb92e93 refactor(assets): move content hash functions to assets_handler
Move compute_file_hash, compute_zip_hash, and compute_content_hash from
scan_handler.py to filesystem/assets_handler.py as standalone module-level
functions. This follows the existing pattern for utility functions in
filesystem handlers.
2026-02-03 20:07:18 +09:00
nendo
220d7531e7 refactor(saves): replace order_by_updated_at_desc with flexible order_by
Add order_by and order_dir parameters to get_saves() for flexible
sorting. Supports "updated_at" and "created_at" fields with "asc" or
"desc" direction (default: desc). Enables ascending order for pruning
scenarios.
2026-02-03 20:06:09 +09:00
nendo
8f44027293 refactor(devices): use Pydantic models for request payloads
Replace individual Body() parameters with DeviceCreatePayload and
DeviceUpdatePayload Pydantic models. This simplifies the function
signatures and leverages model_dump(exclude_unset=True) for cleaner
update handling.
2026-02-03 20:04:58 +09:00
nendo
a6ecfb738c feat(devices): add duplicate device registration handling
Add fingerprint-based detection for duplicate device registration with
configurable behavior via new body params:
- allow_existing: return existing device if fingerprint matches
- allow_duplicate: skip fingerprint check, always create new device
- reset_syncs: clear tracked saves when reclaiming existing device

Fingerprint matching uses mac_address (primary) or hostname+platform
(fallback). Returns 409 Conflict with device_id when duplicate detected
without flags, 200 OK for existing device, 201 Created for new.
2026-02-03 20:03:50 +09:00
Zach Clendenen
0430b53ee1 signing with gpg and trunk check 2026-02-02 23:17:04 -06:00