Commit Graph

338 Commits

Author SHA1 Message Date
Georges-Antoine Assi
ad5525c484 [ROMM-2547] Flashpoint scrape by ID 2025-10-18 22:18:42 -04:00
Georges-Antoine Assi
877145b339 consistent family names 2025-10-17 22:22:10 -04:00
Georges-Antoine Assi
dbf1a7d20b [ROMM-2554] Remove htlb from manual search 2025-10-17 09:51:41 -04:00
Georges-Antoine Assi
0fa7c4fd5b add error checking 2025-10-09 16:46:24 -04:00
Georges-Antoine Assi
996dc50f94 only fetch is hltb is enabled 2025-10-09 16:40:31 -04:00
Georges-Antoine Assi
a8b15bd78e cleanup 2025-10-09 16:39:39 -04:00
Georges-Antoine Assi
ffcf99a47b Fetch html search endpoint from file 2025-10-09 16:37:15 -04:00
Georges-Antoine Assi
c350a03be9 commit hltb api url 2025-10-09 16:31:11 -04:00
Georges-Antoine Assi
d760e88ca1 improve matching 2025-10-05 11:14:19 -04:00
Georges-Antoine Assi
53007e5c8f [ROMM-2516] Fix comma article pattern regex 2025-10-05 11:02:31 -04:00
Georges-Antoine Assi
df68dc9bd9 Merge both odyssey 2 platform 2025-10-03 16:28:02 -04:00
Georges-Antoine Assi
da10fffae3 change title of series xs platform 2025-10-03 16:25:59 -04:00
Georges-Antoine Assi
c95b5b586b only set hltb if some properties exist 2025-10-02 17:38:41 -04:00
Georges-Antoine Assi
d11c83fc4a update hltb api endpoint 2025-10-02 10:58:20 -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
4a8ddd7b22 Merge branch 'master' into romm-2095 2025-09-21 19:01:48 -04:00
Georges-Antoine Assi
ce4809ea9c add region and language priority 2025-09-21 09:38:00 -04:00
Georges-Antoine Assi
2481bac019 refine states 2025-09-20 19:48:52 -04:00
Georges-Antoine Assi
7a5185fe22 complete rest of handler 2025-09-20 19:38:26 -04:00
Georges-Antoine Assi
8c33a95637 remove hartbeat from bh endpoint 2025-09-20 17:57:38 -04:00
Georges-Antoine Assi
e9f7da09f9 add metadata status page and heartbeats 2025-09-20 09:19:15 -04:00
Georges-Antoine Assi
c4bd619091 fix bugs from bot review 2025-09-18 16:38:32 -04:00
Georges-Antoine Assi
fe2a7e7bff Add launchbox to manual match window 2025-09-18 16:34:40 -04:00
Georges-Antoine Assi
afc92e73ee Implement file tag matching for HLTB 2025-09-17 11:07:08 -04:00
Georges-Antoine Assi
0d89c15f1b generate hltb correctly 2025-09-16 10:48:26 -04:00
Georges-Antoine Assi
6032792e2f changes from pr review 2025-09-16 09:11:33 -04:00
Georges-Antoine Assi
f9f76e1d18 add rommm header to all requests 2025-09-15 11:13:33 -04:00
Georges-Antoine Assi
4ed1d82a46 add platform checks 2025-09-15 10:28:32 -04:00
Georges-Antoine Assi
123b3f6b8b create makeshift howlongtobeet handler 2025-09-14 19:39:38 -04:00
Georges-Antoine Assi
debc6c4cab run formatter 2025-09-11 22:35:19 -04:00
Georges-Antoine Assi
3c4113f8a8 Merge branch 'master' into flashpoint-metadata-handler 2025-09-11 21:27:48 -04:00
Georges-Antoine Assi
34b4ef99bb fix comments 2025-09-07 23:05:01 -04:00
Georges-Antoine Assi
d7e85ba633 [ROMM-1333] Use metadata tag in filename to match game 2025-09-07 14:12:30 -04:00
Georges-Antoine Assi
d1ecff395b [ROMM-2344] Ignore RA manuals on scan 2025-09-04 23:11:04 -04:00
Michael Manganiello
e4e3928d1b misc: Apply import sorting 2025-09-04 11:17:00 -03:00
Michael Manganiello
d216bad78b misc: Add MetadataHandler's is_enabled method
Convert `MetadataHandler` to an abstract base class and add an
`is_enabled` class method that allows every metadata handler to
independently report whether it is enabled based on its configuration.

This avoids the need for global variables in the config module, allowing
us to change the enabled state of a metadata handler at runtime if
needed.
2025-09-03 22:13:28 -03:00
Michael Manganiello
b2ea84b5bb misc: Create IGDB service adapter
Add a new service adapter for the IGDB API, to separate concerns with
RomM's handler for metadata. This adapter is agnostic to the handler and
only provides methods to interact with the API, and correctly return
typed responses.

The API authorization was also improved to not rely on decorating each
method that makes requests, but instead using an `aiohttp` middleware
to automatically add the required headers to each request.

Utils `mark_expanded` and `mark_list_expanded` where added to help
narrow the types of IGDB's expandable fields when we know they are
expanded, for `mypy` type checking.
2025-08-30 20:21:15 -03:00
Georges-Antoine Assi
410c65c544 add flashpoint metadata to roms_metadata 2025-08-27 16:30:03 -04:00
Georges-Antoine Assi
ef2546ec08 fix base handler filename 2025-08-27 12:40:16 -04:00
Georges-Antoine Assi
841992e9fb fix flashpoint search 2025-08-27 12:05:02 -04:00
Georges-Antoine Assi
27928bd75b fix pytests 2025-08-27 11:41:24 -04:00
Georges-Antoine Assi
ee0110699d fix id column type 2025-08-27 11:23:27 -04:00
Georges-Antoine Assi
bf0d864d84 Add flashpoint as a metadata handler 2025-08-27 11:04:13 -04:00
Michael Manganiello
9cede7680f feat: Add incremental sync for RetroAchievements progression
This change makes the RetroAchievements progression sync endpoint to
optionally perform an incremental sync (when `incremental` is true),
by only fetching new achievements since the last sync.

This reduces the amount of data fetched and speeds up the sync
process for users who frequently sync their progression. It unblocks the
implementation of automatic periodic syncs in the future.

Frontend behavior:
- When the `Apply` button is clicked in the RetroAchievements settings,
  a full sync is performed (same as before). This is because a change to
  the RA username may have occurred.
- When the `Sync` button is clicked, an incremental sync is performed.
2025-08-27 10:41:51 -03:00
Georges-Antoine Assi
8ed107336f only print queries once 2025-08-21 22:34:07 -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