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
62a0c236bc
Split out raw websocket logic from conjoined notifications client contrivance
2024-01-24 21:35:30 +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
Dean Herbert
069af13aaf
Reduce enumerator overhead in GameplayLeaderboard
2024-01-23 05:31:53 +09:00
Joseph Madamba
3eeefd5b7e
Fix changelog stream user count only accounting for latest build
2024-01-18 16:15:52 -08:00
Andrei Zavatski
dfdf700560
Don't use glowing text in ScoreComponentLabel
2024-01-16 17:43:17 +03:00
Dean Herbert
ee26329353
Fix some elements not showing on leaderboard scores when almost off-screen
2024-01-16 16:44:50 +09:00
Dean Herbert
a3b63391fa
Merge pull request #26356 from stanriders/global-user-statistics
...
Add `Statistics` bindable to `IAPIProvider` and update it from `SoloStatisticsWatcher`
2024-01-15 18:43:35 +09:00
Dean Herbert
d3710f0bfd
Remove scores from song select leaderboard when leaving the screen
2024-01-06 20:53:20 +09:00
wooster0
cf5f0a2bdc
Make chat commands case-insensitive
...
Would be nice if I accidentally have caps lock enabled and write "/HELP" it still works.
2024-01-04 15:06:10 +09: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
09b2a4e3b4
Fix users blipping online briefly before their online status is known
2024-01-02 14:07:59 +01: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
Dean Herbert
5284b95bb8
Schedule even more
2023-12-20 19:42:05 +09:00
Dean Herbert
856c59f7f7
Fix thread safety of OnlineMetadataClient.UserStates
...
Closes https://github.com/ppy/osu-framework/issues/6081 .
2023-12-20 14:15:00 +09: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
41c33f74f2
Extend metadata client with user presence-observing capabilities
2023-12-06 19:37:35 +01: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
Bartłomiej Dach
cb823f367f
Simplify UserActivity
for serialisability over the wire
...
Up until now, the `UserActivity` class hierarchy contained things like
beatmap info, room info, full replay info, etc. While this was
convenient, it is soon going to be less so, as the data is sent over the
wire to the spectator server so that the user's activity can be
broadcast to other clients.
To counteract this without creating a second separate and slimmed-down
class hierarchy, slim down the `UserActivity` structure to contain the
bare minimum amounts of data such that the structures aren't overly
large and complex to serialise, but also contain enough data that they
can be used by receiving clients directly without having to do beatmap
or score lookups.
2023-12-06 18:52:26 +01:00
POeticPotatoes
07f9f5c6d8
Remove hover checks for mod-copying menu item
2023-12-06 06:33:25 +08:00
Dean Herbert
5a2240838b
Merge branch 'master' into multiplayer-abort
2023-12-05 17:01:54 +09:00
Susko3
abb4c943a7
Rename to more readable names
2023-12-01 18:35:57 +01:00
Dan Balasescu
a94180c8c6
Rename LoadAborted -> GameplayAborted, AbortGameplayReal -> AbortMatch
2023-12-01 18:26:59 +09:00
Dan Balasescu
894c31753b
Add initial support for aborting multiplayer games
2023-12-01 15:31:06 +09:00
Susko3
d3517998cf
Use common Overlaps()
logic
...
This actually fixes the problem and makes the tests pass
2023-12-01 01:11:10 +01:00
Susko3
30bdd2d4c0
Extract Overlaps()
logic to accept generic index and length
2023-12-01 01:07:23 +01:00
Dean Herbert
537c9e031d
Merge pull request #25522 from bdach/no-concurrent-connections
...
Implement flow allowing disconnection from online services when another client instance for same user is detected
2023-11-28 19:09:38 +09:00
Bartłomiej Dach
7f788058cd
Revert incorrect xmldoc change
2023-11-27 11:35:10 +09:00
Dean Herbert
ed5375536f
Reduce access to various fields and events in SpectatorClient
...
Restore some `virtual` specs to appease Moq
2023-11-24 14:26:09 +09:00
Bartłomiej Dach
85bddab52b
Refactor OnlineStatusNotifier
to be more local
2023-11-21 17:36:29 +09:00
Bartłomiej Dach
d83b2e24e7
Merge pull request #25371 from RatinFX/open-editor-timestamp
...
Implement opening editor timestamp links
2023-11-21 15:48:36 +09:00
Bartłomiej Dach
42fada578e
Centralise and improve messaging around online state
...
When the server requests a disconnect due to a user connecting
via a second device, the client will now log the user out on the first
device and show a notification informing them of the cause of
disconnection.
2023-11-21 15:15:46 +09:00
Bartłomiej Dach
2391035e49
Remove redundant api
field from HubClientConnector
2023-11-21 15:15:46 +09:00
Bartłomiej Dach
1c612e2e0c
Implement client-side disconnection flow
2023-11-21 15:15:45 +09:00
Dean Herbert
7472dc9bb5
Update APIState
checks
2023-11-16 20:39:23 +09: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
ratinfx
aa87e0a44d
HitObject Selection logic and separation for gamemodes
...
+ moved time_regex into EditorTimestampParser
2023-11-07 01:36:58 +01: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
e2192806e4
Use ID
rather than SoloScoreID
...
The latter is apparently not going to be a thing anymore.
2023-10-16 12:02:55 +02:00
Bartłomiej Dach
fb2293821a
Allow watching replay from multi/playlist results screens
2023-10-16 11:20:02 +02:00
Bartłomiej Dach
d5a733d244
Use solo score ID as OnlineID
when converting from MultiplayerScore
2023-10-16 11:20:02 +02:00
Bartłomiej Dach
b144cfd55c
Add LegacyOnlineID
handling to places that definitely need it
...
Mostly places that can interact with imported replays.
There are other places that use the online ID as a sort tiebreaker, or
to check presence of a score on results screens, but they should
probably still continue to only use `OnlineID`, since all scores with a
legacy online ID should have an online ID, but the converse is not
generally true.
2023-10-16 11:20:02 +02:00
Dean Herbert
fc1287b4c6
Reword xmldoc on invite method to better describe what is happening
2023-10-12 18:25:20 +09:00
Dean Herbert
56e27f1c27
Merge branch 'master' into multiplayer-invites
2023-10-12 18:17:15 +09:00
Dean Herbert
e48c4fa430
Add missing ConfigureAwait
calls
2023-10-12 18:15:15 +09:00
Dean Herbert
a591af2b97
Fix too many tasks in lookupRoom
method
2023-10-12 18:11:04 +09:00
Dean Herbert
5f62c225bf
Ad localisation (and adjust messaging) of invite failures
2023-10-12 18:07:03 +09:00
Dean Herbert
361d70f68a
Rename callback to match standards
2023-10-12 17:59:47 +09:00
Dean Herbert
d2aa601912
Allow localisation of the invite notification
2023-10-12 17:59:08 +09:00
Dean Herbert
a1a9bb75b7
Remove unnecessary schedule logic
2023-10-12 17:55:58 +09:00
Dean Herbert
cde4fad610
Simplify async
lookup logic in Invited
handling
2023-10-12 17:55:14 +09:00
Joseph Madamba
6a9f17d97c
Merge remote-tracking branch 'upstream/master' into pr/22237
2023-10-11 09:53:26 -07:00
Joseph Madamba
52be580f28
Fix date not aligning with flag
2023-10-11 09:41:02 -07:00
Joseph Madamba
f6741514aa
Remove alternative total score display (colour gradient) for now
...
For simplicity and a future consideration for when the skinning portion is implemented.
2023-10-11 09:41:02 -07:00
Joseph Madamba
42d41add41
Remove unused field
2023-10-11 09:41:02 -07:00
Joseph Madamba
e32be36d92
Move invalidation issue todo to tests
2023-10-10 22:29:43 -07:00
Joseph Madamba
f2aff628b2
Fix statistics container showing for a brief moment on lower widths
2023-10-10 22:17:31 -07:00
Joseph Madamba
e4f1eab6ad
Add experimental collapse content logic based on width
2023-10-10 20:47:15 -07:00
Joseph Madamba
e049a072f8
Update right content to latest design
...
- Add more scenarios to test
- Future-proof mods display to not overflow
2023-10-10 20:24:25 -07:00
Joseph Madamba
3c1d15d9b7
Fix user cover having shear
2023-10-10 20:24:25 -07:00
Joseph Madamba
3ad5a7c661
Reduce indents of private container methods
2023-10-10 18:39:35 -07:00
Joseph Madamba
e0c6c1bc66
Fix rank label tooltip area
2023-10-10 18:26:00 -07:00
Joseph Madamba
837437ac57
Rename createRightSideContent()
to createRightContent()
2023-10-10 18:26:00 -07:00
Joseph Madamba
bb3f426b93
Truncate name label and clean up positioning code
...
Also adds a test score with a long username.
2023-10-10 18:26:00 -07:00
Joseph Madamba
6087c12d85
Use grid container for centre content
2023-10-10 18:26:00 -07:00
Joseph Madamba
668e083ddc
Use AutoSizeAxes
instead of hardcoded Size
2023-10-10 16:47:33 -07:00
Joseph Madamba
dad03778b7
Fix leaderboard score caching colour provider
2023-10-10 16:47:33 -07:00
Joseph Madamba
5bea5415be
Remove weird yellow background override on mods
...
To who's reading, don't follow figma designs all the time. In most cases, follow what other places are doing.
2023-10-10 16:47:33 -07: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
Marvin Schürz
0726ccb988
Fix formatting
2023-10-04 08:32:18 +02:00
Marvin Schürz
74ed3bc4ff
Rename loadRoom
to lookupRoom
2023-10-04 08:31:50 +02:00
Marvin Schürz
bfeafd6f70
Fix formatting
2023-10-04 08:30:48 +02:00
Marvin Schürz
5469d134cb
Add missing parameter description to docs.
2023-10-04 00:28:01 +02:00
Marvin Schürz
267d1ee7d4
Handle cases when player cannot be invited.
2023-10-03 22:08:14 +02:00
Marvin Schürz
8e73dbc894
Load api room before displaying notification
2023-10-03 01:22:25 +02:00
Marvin Schürz
3879775219
Add room name to invite notification
2023-10-02 23:20:24 +02:00
Marvin Schürz
e81695bcac
Display avatar in invitation notification
2023-10-02 23:10:51 +02:00
Marvin Schürz
574dc67a9e
Add Invited
task to multiplayer client
2023-10-02 22:53:28 +02:00
Marvin Schürz
d19cdbdefb
Add InvitePlayer
method to multiplayer server
2023-10-02 22:31:47 +02:00
Bartłomiej Dach
8215c4cb0e
Merge branch 'master' into mods-stable-ordering
2023-09-28 18:30:56 +02:00
Dean Herbert
7d74d84e6c
Display mod icons using stable ordering
...
In discussion with nanaya, we likely want this now that we're adding the
ability for some icons to be extended. Historically mod icons have been
displayed in a stable but arbitrary order (based on their position in
the `Mods` enum).
This change aims to make them stable across lazer scores (where they are
stored based on .. the order the user selected them).
2023-09-28 16:48:09 +09:00
Dean Herbert
1246f15186
Don't show extended information where it duplicates already visible information
2023-09-27 19:29:03 +09:00
Dean Herbert
3c62521e69
Fix OAuth refresh attempt when no network available causing full logout
2023-09-24 10:50:07 +09:00
Joseph Madamba
236352a176
Add shadow to centre content
...
Done this way instead of edge effect because of 1px/dimming issues.
2023-09-22 19:59:40 -07:00
Joseph Madamba
f7f390195a
Add user covers to centre content
2023-09-22 19:59:40 -07:00
Joseph Madamba
2bd28e6718
Move drawable init properties to constructor
2023-09-22 19:59:40 -07:00
Joseph Madamba
9f9f7eb01b
Nuke hit results display
2023-09-22 19:59:40 -07:00
Joseph Madamba
6ed1685223
Fix/update score exporting method
2023-09-22 19:59:40 -07:00
Joseph Madamba
70b16d7246
Merge remote-tracking branch 'upstream/master' into pr/22237
2023-09-21 22:51:23 -07:00
Bartłomiej Dach
0ffb906741
Merge pull request #24831 from peppy/update-deps
...
Update all dependencies (except for Moq)
2023-09-19 07:50:27 +02:00
Bartłomiej Dach
d3cc6dbaa0
Fix link protocol allowlist allowing too much
2023-09-18 09:20:24 +02:00
Dean Herbert
56b5f52e83
Update all dependencies (except for Moq)
2023-09-16 15:37:31 +09:00
Lukynka CZE
9b8fdcbcdc
somehow accidentally removed backslashes
2023-09-14 17:55:53 +02:00
Lukynka CZE
66751ef5bb
add regex
2023-09-14 17:46:29 +02:00
Bartłomiej Dach
691c08ebde
Update spectator server development endpoint URLs
...
With the way `dev.ppy.sh` was previously configured, the `osu-web`
`/multiplayer` routes and `osu-server-spectator` `/multiplayer` routes
would conflict with each other, with the `osu-server-spectator` route
taking precedence. This would mean that some `osu-web` pages would just
straight up not be available on dev.
To counteract this, the `osu-server-spectator` routes are now exposed
under `https://dev.ppy.sh/signalr/ `. This PR updates the client-side
configuration to use these new routes.
2023-09-05 10:30:12 +02: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
Bartłomiej Dach
142abe1fd0
Make highlight messages important in order to trigger window flash
2023-08-22 09:01:32 +02:00
tsrk
96c58c86ea
refactor: make flashing available in Notifications
...
This will be used in `NotificationOverlay` when a `Notification` is posted.
2023-08-21 23:36:54 +02:00
tsrk
bdac052631
refactor(MessageNotifier): apply changes required by framework
2023-08-21 15:29:41 +02:00
tsrk
548e6dc23b
feat(MessageNotifier): flash window on PM or mention
2023-08-19 03:04:09 +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
d11e56b8bb
Add common Export
string and use in editor
2023-07-23 14:03:50 +09:00
Bartłomiej Dach
cef0dd1d61
Merge pull request #24190 from novialriptide/emoji-fix
...
Replace emoji unicode with `[emoji]`
2023-07-13 22:05:12 +02:00
Andrew Hong
ea6704ca1d
Move parsing
2023-07-13 04:41:53 -04:00
Andrew Hong
3d17a03dc6
Emojis now represented as "[emoji]"
2023-07-13 03:52:22 -04:00
Andrew Hong
d62cfc1616
Parse emoji to an empty string
2023-07-12 20:24:09 -04:00
Andrew Hong
b05ba8c501
Remove unused code
2023-07-12 06:32:33 -04:00
Andrew Hong
b3b6df6e30
Remove emoji regex
2023-07-12 06:19:48 -04:00
Susko3
2dcd790442
Resolve Clipboard
via DI
2023-07-11 11:42:31 +02:00
Bartłomiej Dach
91e286560e
Fix search being broken in channel listing "channel"
2023-07-09 21:51:08 +02:00
Bartłomiej Dach
d135b3f6f5
Add message length limit field to API response
2023-07-09 21:27:33 +02:00
Dean Herbert
0049f3fed4
Merge branch 'master' into more-notification-sounds
2023-07-07 16:39:31 +09:00
Dean Herbert
d72765b6f8
Merge pull request #24114 from peppy/editor-save-local-score-management
...
Ensure scores always have the correct linked `BeatmapInfo`
2023-07-07 15:40:54 +09:00
Jamie Taylor
fdb572fdea
Add more/different notification sounds
2023-07-07 01:51:57 +09:00
Dean Herbert
a98a36872e
Bring realm library up-to-date
2023-07-06 13:37:43 +09:00
Dean Herbert
d74b1e148d
Make ScoreInfo.BeatmapInfo
nullable
2023-07-04 14:50:34 +09:00
Bartłomiej Dach
21f758947d
Merge branch 'master' into availability-fixes
2023-07-02 20:38:37 +02:00
Bastian Pedersen
ea87000539
Localise chat related notifications
2023-06-28 21:11:56 +02:00
Dean Herbert
5d209b3ffc
Change default availability in MultiplayerRoomUser
to Unknown
2023-06-28 16:38:20 +09:00
Dean Herbert
fec086aec8
Fix OnlinePlayBeatmapAvailabilityTracker
not passing through Unknown
state
2023-06-28 16:02:46 +09:00