1
0
mirror of https://github.com/ppy/osu.git synced 2024-11-15 20:37:26 +08:00
Commit Graph

1129 Commits

Author SHA1 Message Date
Bartłomiej Dach
a2e69d37e8
Add basic testing of failure flow 2024-01-26 11:17:32 +01:00
Bartłomiej Dach
04cae874b0
Handle forced logouts due to password change too 2024-01-26 10:53:27 +01:00
Bartłomiej Dach
3d3506b906
Merge branch 'decouple-notification-websocket-from-chat' into 2fa 2024-01-25 14:51:42 +01:00
Bartłomiej Dach
c463aa5ba1
xmldoc everything 2024-01-25 14:47:29 +01:00
Bartłomiej Dach
de52f0a80c
Decouple notifications websocket handling from chat operations
This is a prerequisite for https://github.com/ppy/osu/pull/25480.

The `WebSocketNotificationsClient` was tightly coupled to chat specifics
making it difficult to use in the second factor verification flow.
This commit's goal is to separate the websocket connection and message
handling concerns from specific chat logic concerns.
2024-01-25 14:47:29 +01:00
Bartłomiej Dach
e3eb7a8b42
Support verification via clicking link from e-mail 2024-01-24 21:35:58 +01:00
Bartłomiej Dach
445a7450e0
Implement verification from within client 2024-01-24 21:35:20 +01:00
Bartłomiej Dach
ddc2bbeb9b
Add session_verified attribute to /me response 2024-01-24 14:24:33 +01:00
Bartłomiej Dach
7b47215657
Split /me request from /users requests
Them being together always bothered me and led to the abject failure
that is `APIUser` and its sprawl. Now that I'm about to add a flag that
is unique to `/me` for verification purposes, I'm not repeating the
errors of the past by adding yet another flag to `APIUser` that is never
present outside of a single usage context.
2024-01-24 14:22:57 +01:00
Bartłomiej Dach
7c140408ea
Add request structures for verification endpoints 2024-01-24 13:53:40 +01:00
Bartłomiej Dach
2cfaa1c103
Merge branch 'master' into 2fa 2024-01-23 16:51:23 +01:00
Joseph Madamba
3eeefd5b7e Fix changelog stream user count only accounting for latest build 2024-01-18 16:15:52 -08:00
StanR
e240443c46 Update LocalUser statistics, add test 2024-01-03 18:15:32 +06:00
StanR
d34f30f6ad Add Statistics bindable to IAPIProvider and update it from SoloStatisticsWatcher 2024-01-03 14:37:57 +06:00
Bartłomiej Dach
f9f03ebc0f
Store user online state in config for next launch
Closes remainder of https://github.com/ppy/osu/issues/12635.
2024-01-02 14:04:40 +01:00
Dean Herbert
93a8afe96e
Add very simple cache-busting (30 minutes) 2023-12-28 14:40:10 +09:00
Bartłomiej Dach
ef39759813
More code quality inspections 2023-12-28 00:18:20 +01:00
Bartłomiej Dach
ac449131ed
CodeFileSanity does not like records in standalone files 2023-12-27 23:47:37 +01:00
Bartłomiej Dach
a3f720bc62
Retrieve system title from online source 2023-12-27 23:37:39 +01:00
Bartłomiej Dach
d9299a8a55
Implement visual appearance of "system title" message in main menu 2023-12-27 23:07:17 +01:00
Dan Balasescu
0171078052
Move object counts to BeatmapInfo 2023-12-13 17:33:24 +09:00
Dean Herbert
fdcf87569c
Merge pull request #25711 from smoogipoo/mania-convert-song-select-keycount
Display osu!mania keycount in song select carousel panels and details
2023-12-13 16:31:25 +09:00
Dan Balasescu
2abf3a55ae
Add IsLegacyScore to SoloScoreInfo 2023-12-13 16:12:12 +09:00
Dan Balasescu
767d5c8018
Add object counts to IBeatmapDifficultyInfo 2023-12-09 22:31:51 +09:00
Bartłomiej Dach
d66fa09320
Simplify UserStatus to be an enumeration type
There were absolutely no gains from having it be a reference type /
class, only complications, especially when coming from the serialisation
angle.
2023-12-06 18:52:27 +01:00
Dean Herbert
f7fa9c90d6
Add test coverage of 2FA flow 2023-11-16 18:18:40 +09:00
Dean Herbert
0e4244a692
Add APIAccess flow for 2fa 2023-11-16 18:18:15 +09:00
Dean Herbert
85e303ec54
Add two factor step to api state flow 2023-11-16 18:18:15 +09:00
Joseph Madamba
c8d276281a Fix flags not showing on kudosu rankings
The `country` attribute is optional and not included in the kudosu rankings response so use `country_code` instead.
2023-11-07 16:09:48 -08:00
Joseph Madamba
387de7ec24 Add ability to view kudosu rankings 2023-11-07 15:58:17 -08:00
Bartłomiej Dach
2dc2469507
Merge pull request #25303 from peppy/last-played-import-score-update
Update the last played date of a beatmap when importing a replay by the local user
2023-10-30 10:12:27 +01:00
Dean Herbert
66fa09ba66
Merge pull request #25287 from frenzibyte/fix-user-profile-support-banners
Update user profile overlay to show more than one tournament banner
2023-10-30 17:32:20 +09:00
Bartłomiej Dach
a000c06900
Merge branch 'master' into last-played-import-score-update 2023-10-30 09:29:07 +01:00
Dean Herbert
96dd7b3333
Update the last played date of a beatmap when importing a replay by the local user 2023-10-30 15:44:16 +09:00
Dean Herbert
a8c3f59845
Clean up type display for web requests in logs 2023-10-30 15:07:35 +09:00
Salman Ahmed
ec9ae12bbd Update API response model to accept array of tournament banners 2023-10-29 01:43:49 +03:00
Bartłomiej Dach
c3e9f5184f
Fix SoloScoreInfo not copying over legacy score ID when converting to ScoreInfo 2023-10-26 15:09:34 +02:00
Bartłomiej Dach
900530080f
Make SoloScoreInfo implement IScoreInfo 2023-10-26 14:58:35 +02:00
Bartłomiej Dach
ca4b09f8ef
Merge branch 'master' into score-encoding-cleanup 2023-10-26 09:04:05 +02:00
Dean Herbert
e081fa48a2
Fix various other inspections 2023-10-17 17:48:51 +09:00
Bartłomiej Dach
fb2293821a
Allow watching replay from multi/playlist results screens 2023-10-16 11:20:02 +02:00
Dean Herbert
c78b5112c6
Fix OAuth refresh attempt when no network available causing full logout (part 2)
This time for `SocketException`s. I seem to recall looking at this and
deciding there was a reason to not catch socket exceptions, but on
revisiting it seems sane to do so.

This covers a fail case like reported:

```
2023-10-06 03:24:17 [verbose]: Request to https://lazer.ppy.sh/oauth/token failed with System.Net.Http.HttpRequestException: No such host is known. (lazer.ppy.sh:443)
2023-10-06 03:24:17 [verbose]: ---> System.Net.Sockets.SocketException (11001): No such host is known.
2023-10-06 03:24:17 [verbose]: at System.Net.Sockets.Socket.AwaitableSocketAsyncEventArgs.ThrowException(SocketError error, CancellationToken cancellationToken)
```

Closes https://github.com/ppy/osu/issues/24890 (again).
2023-10-06 18:24:22 +09:00
Dean Herbert
3c62521e69 Fix OAuth refresh attempt when no network available causing full logout 2023-09-24 10:50:07 +09:00
Dean Herbert
56b5f52e83 Update all dependencies (except for Moq) 2023-09-16 15:37:31 +09:00
Bartłomiej Dach
99d5ff9efb
Switch download requests to new API endpoint
This API endpoint is intended for usage with the entire `solo_scores`
machinery and ID schema, rather than the legacy `*_scores_high` ID
schema. It also supports automagically falling back to downloading
legacy replays if a stable-imported score is requested for download
(internally this happens via `legacy_score_id` in the `data` json).

This change will allow replays to be downloaded, but it will still not
yield 100% correct behaviour, as there is further work to be done in
that respect. The download tracker is expecting score hashes to arrive
from web to verify the integrity of the incoming download, but the API
does not expose such a facility right now; we will have to decide as to
whether we want to add one web-side, or whether we want to disable the
checking client-side.
2023-08-28 13:50:52 +02:00
Dean Herbert
6001f7e5c7 Rename "dummy" local user to something more descriptive
This created weird cases in logs which are very hard to understand. The
one which really got me was this:

```
[runtime] 2023-08-13 07:48:27 [verbose]: Invalidating working beatmap cache for unknown artist - unknown title (Dummy)
```

Which looks like a dummy working beatmap was invalidated, but it turns
out that's just the local user which was populated when creating a new
local beatmap.
2023-08-16 13:52:27 +09:00
Dean Herbert
1abce098b4 Apply nullability to login form related classes 2023-06-26 13:26:07 +09:00
Dean Herbert
ac0c988d49 Fix weirdly named test method and add xmldoc 2023-06-26 13:21:29 +09:00
Joseph Madamba
25c9bf4061
Improve and refactor LoginPanel test scene to use LoginOverlay 2023-06-25 11:39:32 -07:00
Bartłomiej Dach
e3a89a6273
Fix remaining obvious CI inspections 2023-06-24 16:07:01 +02:00
Dean Herbert
0ab0c52ad5 Automated pass 2023-06-24 01:00:03 +09:00
Bartłomiej Dach
1672608a87
Document why things were done in DummyAPIAccess 2023-06-22 23:08:30 +02:00
Liam DeVoe
21bed336c6 adjust DummyAPIAccess to more closely match APIAccess
wrt logging in and out
2023-06-22 16:01:12 -04:00
Joseph Madamba
9ae864c219
Fix beatmap info length tooltip not showing actual drain length 2023-06-17 15:00:32 -07:00
Dean Herbert
4685ba83e1 Apply NRT to MemoryCachingComponent classes 2023-06-09 19:00:05 +09:00
Salman Ahmed
9f842ccdc0 Supply Accept-Language header in API requests 2023-06-08 02:59:34 +03:00
Salman Ahmed
ab790ec96a Expose currently selected language from IAPIProvider 2023-06-08 02:59:34 +03:00
Salman Ahmed
62cb6a98ca Remove redundant nullable suppression directives 2023-06-07 08:20:41 +03:00
Dean Herbert
b28d7b1a92 Fix non-block namespace 2023-05-03 18:51:02 +09:00
cdwcgt
26f2d9047d code style fix 2023-03-23 01:11:44 +09:00
cdwcgt
8518d15b8d use endpoint 2023-03-23 01:00:38 +09:00
Joseph Madamba
3b5d573db1 Display tournament banner on user profile 2023-02-08 17:16:09 -08:00
Bartłomiej Dach
f5459909f9
Merge branch 'master' into comment-editor-3 2023-01-17 21:31:08 +01:00
Joseph Madamba
85c1932851 Mark Converts as nullable 2023-01-15 12:46:41 -08:00
Joseph Madamba
e7ab543799 Add ability to view converted beatmaps on beatmap set overlay 2023-01-14 10:26:21 -08:00
ansel
fbb674d8e9 Rename parent comment id field 2023-01-14 20:15:19 +03:00
ansel
e9995410e8 Merge branch 'master' into comment-editor-3 2023-01-14 02:32:06 +03:00
StanR
660bf748d5 Fix GroupBadge crashing on null group colour 2023-01-14 02:23:08 +03:00
Dean Herbert
a7327b02a2 Add API level support for error message and redirect during registration flow 2023-01-13 15:32:53 +09:00
Dean Herbert
5658c3a123 Enable NRT on account creation classes 2023-01-13 15:29:25 +09:00
StanR
5441c02a1a Implement user group badges 2023-01-11 07:11:38 +03:00
Bartłomiej Dach
9b68932eb4
Merge branch 'master' into beatmap-info-nominators 2023-01-08 14:35:07 +01:00
Joseph Madamba
9d32fde592 Mark current nominations and related users as nullable 2023-01-07 11:04:42 -08:00
Joseph Madamba
0f6735564e Move and rename nomination response model to singular 2023-01-07 10:54:48 -08:00
ansel
58bf7349ee Fix request 2023-01-07 02:59:32 +03:00
ansel
768a33bb64 Add request class 2023-01-06 23:31:19 +03:00
Salman Ahmed
e449d8dda0 Fix friends list duplicating on connection failure 2023-01-06 22:39:46 +03:00
Joseph Madamba
7f970f3cd8 Display nominators on beatmap set overlay 2023-01-06 11:33:39 -08:00
Dean Herbert
96e81e7f41 Switch on NRT and add IEquatable to GetScoresRequest 2023-01-04 01:41:21 +08:00
Bartłomiej Dach
cb2b0d4178
Remove redundant type specs 2022-12-26 23:12:53 +01:00
Berkan Diler
c7ca4bbba5 Use generic Enum methods 2022-12-26 20:36:39 +01:00
Bartłomiej Dach
48dc2332fd
Refactor test to be easier to work with 2022-12-22 19:59:35 +01:00
Dean Herbert
27c497145f Fix the MOTHERLOAD of undetected issues that are now visible thanks to net6.0 2022-12-16 18:16:26 +09:00
Joseph Madamba
56e94e49a3 Display nominated ranked beatmaps in user profile 2022-12-06 23:36:11 -08:00
Dean Herbert
b7f0310070
Merge pull request #21353 from peppy/no-initial-presence
Stop requesting messages as part of initial chat presence
2022-11-30 16:15:23 +09:00
Dan Balasescu
7bc8908ca9 Partial everything 2022-11-27 00:00:27 +09:00
Dean Herbert
462a213ffc Add TODO note about handling initial silences 2022-11-21 15:23:04 +09:00
Dean Herbert
5c640d15a0 Stop requesting messages as part of initial chat presence 2022-11-21 15:17:54 +09:00
Dean Herbert
d17c091d63 Move constant to a better location 2022-11-18 15:47:31 +09:00
Dan Balasescu
219d049edf
Merge pull request #21140 from maromalo/long-standard
Standardise scores to `long` type
2022-11-18 15:26:33 +09:00
Dan Balasescu
57b8495c7a Merge branch 'master' into long-standard 2022-11-18 14:24:04 +09:00
Dean Herbert
964ceddf83 Fix API queue only being flushed once while in a failing state 2022-11-18 14:21:37 +09:00
Dean Herbert
f343ba6111 Add xmldoc for chat ack request 2022-11-13 00:10:06 +09:00
Dean Herbert
22d8a1160e Fix last silence ID being updated too often, causing most silences to be missed 2022-11-13 00:10:06 +09:00
maromalo
1911120afe
Merge branch 'master' into long-standard 2022-11-12 09:52:11 -03:00
Dean Herbert
dde09d409b Merge branch 'master' into chat-silences 2022-11-12 21:00:56 +09:00
Dean Herbert
19876ca0fb
Merge branch 'master' into websocket-chat-2 2022-11-11 23:53:42 +09:00
Dan Balasescu
cf03001c83 Better handling for joining channels with only ID 2022-11-07 11:52:07 +09:00
maromalo
b7ef9b176d Make score type consistent 2022-11-06 19:59:27 -03:00
Dan Balasescu
66bbe34116 Move polling clients to osu.Game.Tests namespace 2022-11-04 18:52:57 +09:00