fix(sync): keep old playtime off the day a game shows up

A game the sync saw for the first time put its whole playtime on that
day (40 h "longest gaming day" after skip_unvetted_apps=0). Growth now
counts at most Steam's last two weeks, and one game gets at most 24 h
per day. V18 drops the bad rows and caps old ones.
This commit is contained in:
lobo committed 2026-09-27 10:00:53 +02:00
1 parent 0fa2a37f47
commit 01552ecd89
6 files changed
+88 -9

No files matched your search

+2 -1
View File
@@ -169,7 +169,8 @@ Inside a module: `api` (controllers, DTOs), `service` (business logic), `domain`
3. `LibrarySyncWorker` runs in the background. `user_steam_sync` lets only one run per user start.
4. The worker loads the wishlist and the owned games from Steam. It updates `steam_game` and `user_game`, adds
the playtime growth of the day to `user_game_playtime_day`, and soft-deletes Steam games the user no longer
owns. A BACKLOG game with new playtime becomes PLAYING, unless the user chose its status. When Steam returns no
owns. The growth counts at most Steam's playtime of the last two weeks, so a game seen for the first time brings
no old playtime, and one game gets at most 24 hours per day. A BACKLOG game with new playtime becomes PLAYING, unless the user chose its status. When Steam returns no
games, the library stays as it is.
5. `TimeToBeatService` and `MoodService` ask IGDB for missing or old time-to-beat, mood and genre data, for Steam
games and manual games. Hidden games only get their playtime updated.