1
0
mirror of https://github.com/ppy/osu.git synced 2024-11-13 03:17:25 +08:00
Commit Graph

11 Commits

Author SHA1 Message Date
Bartłomiej Dach
3c0b8af8f1
Allow unsubscribing from solo statistics updates
This is more of a safety item. To avoid potential duplicate key in
dictionary errors (and also avoid being slightly memory-leaky), allow
`SoloStatisticsWatcher` consumers to dispose of the subscriptions they
take out.
2022-12-28 08:07:48 +01:00
Bartłomiej Dach
a0a26b1e8c
Ignore statistics update subscriptions with invalid score ID
If score submission fails, the score will not receive a correct online
ID from web, but will still be passed on to the solo statistics watcher
on the results screen. This could lead to the watcher subscribing to
changes with score ID equal to the default of -1. If this happened more
than once, that would cause a crash due to duplicate keys in the
`callbacks` dictionary.

Closes #21837.
2022-12-28 07:54:01 +01:00
Bartłomiej Dach
e9d32fca18
Fix various failures in initial statistics fetch
- If the local user is restricted, then attempting to fetch their data
  from the `/users` endpoint would result in an empty response.

- Even if the user was successfully fetched, their `RulesetsStatistics`
  may not be populated (and instead be `null`). Curiously this was not
  picked up by static analysis until the first issue was fixed.

Closes #21839.
2022-12-28 07:31:36 +01:00
Bartłomiej Dach
78c47a3695
Add callback to dictionary rather than overwrite
Attempting to overwrite will henceforth throw an exception.
2022-12-24 13:45:04 +01:00
Bartłomiej Dach
6c4ca387e0
Fix wrong handling of missing ruleset statistics 2022-12-24 13:44:11 +01:00
Bartłomiej Dach
3c26016b61
Ensure latest stats are cleared on successful profile fetch 2022-12-24 13:44:08 +01:00
Bartłomiej Dach
fd9110a61e
Fix solo statistics watcher firing requests for invalid user with id 1
Can happen during login flow (see `APIAccess.attemptConnect()`).
2022-12-24 13:44:05 +01:00
Bartłomiej Dach
d6e079a2b4
Ignore statistics update requests from third-party rulesets for now 2022-12-24 13:43:57 +01:00
Bartłomiej Dach
fa2d50fe31
Limit tracking unhandled scores to just the last one 2022-12-22 19:59:39 +01:00
Bartłomiej Dach
48dc2332fd
Refactor test to be easier to work with 2022-12-22 19:59:35 +01:00
Bartłomiej Dach
ac872fac9e
Implement solo statistics watcher 2022-12-22 19:59:07 +01:00