1036 Commits

Author SHA1 Message Date
Georges-Antoine Assi
82f527b3ad
Remove check for non extension 2025-08-20 20:48:30 -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
Georges-Antoine Assi
593f5c921d
catch playmatch connect error 2025-08-18 09:08:41 -04:00
Georges-Antoine Assi
5f4943c97b
find_best_match handles split name search 2025-08-17 22:39:00 -04:00
Georges-Antoine Assi
363657d139
cleanup 2025-08-17 21:08:56 -04:00
Georges-Antoine Assi
d41a920c37
normalize split tiles for ssfr 2025-08-17 20:29:44 -04:00
Georges-Antoine Assi
f0574577c9
Prefer lower IDs when matching games with same title 2025-08-17 19:53:29 -04:00
Georges-Antoine Assi
a8dc3d3e8d
Await .file_exists() when storing badges 2025-08-17 17:43:19 -04:00
Georges-Antoine Assi
dea606ad80
Merge pull request #2261 from rommapp/hash-largest-file
Always hash the largest file in compressed multi file roms
2025-08-13 13:21:59 -05:00
Georges-Antoine Assi
8fb4769776
changes from code review 2025-08-13 14:03:45 -04:00
Georges-Antoine Assi
81a04e4ab4
Always hash the largest file in compressed multi file roms 2025-08-13 13:43:07 -04:00
Michael Manganiello
80291f4be1
misc: Move cache initialization to startup script
Guarantee that cache is initialized during startup, and only once,
instead of every time a `MetadataHandler` object is instantiated.

Also, improve logic to determine `fixtures` paths.
2025-08-13 12:26:15 -03:00
Georges-Antoine Assi
774be0cbde
[ROMM-2163] Fix excluding single roms without extensions 2025-08-12 18:18:29 -04:00
Michael Manganiello
edbff6b7e8
Merge pull request #2248 from rommapp/fix/performance-asset-screenshot
fix: Improve performance on asset screenshot retrieval
2025-08-10 16:05:35 -03:00
Georges-Antoine Assi
4728e5da67
[ROMM-2247] Return early if cover write fails 2025-08-10 14:51:06 -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
Michael Manganiello
c0483832ac
Merge pull request #2240 from rommapp/fix/retroachievements-case-insensitive-hash-match
fix: Make RetroAchievements hash matching case-insensitive
2025-08-09 16:13:41 -03:00
Georges-Antoine Assi
84ded3bc24
pick largest file from the list 2025-08-09 14:47:34 -04:00
Michael Manganiello
f13d2198db
fix: Make RetroAchievements hash matching case-insensitive
Fixes #2182.
2025-08-09 12:48:28 -03:00
Georges-Antoine Assi
d005dba90b
fix a bunch of shit 2025-08-09 11:16:12 -04:00
Georges-Antoine Assi
afaef09c84
cleanup 2025-08-08 17:08:16 -04:00
Georges-Antoine Assi
16c8c9f993
only init JW once 2025-08-08 17:03:28 -04:00
Georges-Antoine Assi
69079b2a90
Merge branch 'master' into find-best-match 2025-08-08 16:55:39 -04:00
Georges-Antoine Assi
659a3eb104
use jaro-winkler algo 2025-08-08 16:54:26 -04:00
Georges-Antoine Assi
b1609096de
fix file_type typo 2025-08-08 15:00:18 -04:00
Michael Manganiello
ba21cbc1e1
misc: Separate tests folder from backend code
Create separate `tests/` folder for all tests. This will also simplify
not copying tests code into the Docker image.
2025-08-08 12:49:13 -03:00
Georges-Antoine Assi
c47be7240b
changs from bot review 2025-08-07 18:15:49 -04:00
Georges-Antoine Assi
9e37d87610
fix complex game names 2025-08-07 18:02:04 -04:00
Georges-Antoine Assi
1a2944806b
Use best-match algo for more providers 2025-08-07 16:57:29 -04:00
Georges-Antoine Assi
926fe26fd9
[exp] use cli 7z to cacl hash files 2025-08-07 13:12:32 -04:00
Georges-Antoine Assi
f3a74bc892
changes from review 2025-08-07 11:33:02 -04:00
Georges-Antoine Assi
a90bc75b92
Merge branch 'master' into romm-2142 2025-08-07 10:34:19 -04:00
Michael Manganiello
097818d560
misc: Replace emoji dependency with constants
The `emoji` library has been removed, in favor of using constants for
the few emojis used in the codebase. This reduces memory usage, and
avoids calling `emojize` for Python to discover where to replace emojis
in pre-defined strings.
2025-08-07 09:50:14 -03:00
Georges-Antoine Assi
90f10e8946
Fixed platform slugs that were missed 2025-08-06 17:28:10 -04:00
Georges-Antoine Assi
53cf1bdc72
implement real lev distnce 2025-08-06 11:04:24 -04:00