Dean Herbert
1c4a3c584a
Use correct lookup type to ensure username based lookups always prefer username
2021-09-06 15:04:27 +09:00
Davran Dilshat
e78dc1bb4c
more code quality :/
2021-09-05 15:27:28 +01:00
Davran Dilshat
e409f2dc6d
add xmldoc
2021-09-05 10:42:38 +01:00
rednir
8104b15874
remove braces
...
Co-authored-by: Salman Ahmed <frenzibyte@gmail.com>
2021-08-30 13:23:33 +01:00
Davran Dilshat
90c313e2ad
add methods to get a user from their username
2021-08-29 19:19:55 +01:00
Dean Herbert
8cd972a9fe
Merge branch 'master' into pinned-comment
2021-08-24 14:37:31 +09:00
Dean Herbert
da8eba9996
Return early to avoid updating state and failure count in fail cases
2021-08-20 12:11:41 +09:00
Dean Herbert
a6b7ca1a4c
Ensure all request failures are correctly handled during login
2021-08-19 19:55:14 +09:00
Opelkuh
7d7c5c06f0
Fix code formatting
2021-08-15 16:02:25 +02:00
Opelkuh
2f9f1ba862
Add test for ChannelManager.MarkChannelAsRead
2021-08-15 15:44:23 +02:00
Gagah Pangeran Rosfatiputra
480d5ffa5d
add pinned comment to users setter in comment bundle
2021-08-13 19:40:37 +07:00
Gagah Pangeran Rosfatiputra
39b13efdd5
add pinned comments property in comment bundle
2021-08-13 13:13:28 +07:00
Gagah Pangeran Rosfatiputra
0901333ef3
add pinned property in comment
2021-08-13 12:57:29 +07:00
Dean Herbert
556962a3d8
Add missing xmldoc comment
...
Co-authored-by: Bartłomiej Dach <dach.bartlomiej@gmail.com>
2021-08-03 14:50:56 +09:00
Dean Herbert
617ff40de7
Add the ability to not use MessagePack when creating a HubConnector
2021-08-02 18:50:22 +09:00
Dean Herbert
185ea776f5
Fix incorrect authorisation loss exception handling with recent changes
2021-07-30 18:11:40 +09:00
Dean Herbert
3a5324c947
Fix aborting an APIRequest
potentially resulting in incorrect success
2021-07-29 13:01:52 +09:00
Dean Herbert
1ed4fdd5f5
Avoid deserialisation JSON request content when error is not present (or not relevant)
2021-07-28 20:13:40 +09:00
Dean Herbert
bb3747ffc9
Fix beatmap search requests double-escaping
...
Closes #14008 .
2021-07-25 17:06:40 +09:00
Dean Herbert
17168b8137
Fix authentication loss not handled correctly
...
This handles the case where on initial API connection, the server
responds with an `Unauthorized` response. It doesn't perform this same
checking/handling on every API request, which is probably what we want
eventually.
Opting to not address the full issue because I know this is going to be
a long one (see
05c50c0f6c/osu.Game/Online/API/APIAccess.cs (L233)
).
2021-07-23 19:03:19 +09:00
Dean Herbert
57e5f5575a
Fix derived API request types firing success when they shouldn't
...
The usual case of `virtual`/`override` being dangerous when logic is
added to the base implementation. As such, I've removed this completely.
2021-07-22 14:23:27 +09:00
Dan Balasescu
747c475b95
Merge pull request #13932 from peppy/fix-multiple-request-completion-states
...
Fix API request potentially firing failed events after completion
2021-07-21 15:11:03 +09:00
Bartłomiej Dach
1e634d9db0
Adjust user beatmap sections on profile overlay to match web
2021-07-20 21:55:17 +02:00
Dean Herbert
80c2b1449b
Fix API request potentially firing failed events after completion
...
Specifically, `Cancel()` calls were not thread safe. Due to a series of
events, `ListPollingComponent` could call `Cancel` from a non-update
thread, leading to a race condition where both a `Success` and `Fail`
event can be fired.
This is intended to be the simplest fix possible, locking and guarding
specifically on the callbacks. Further work could be done in the future
to improve the flow surrounding `pendingFailure`, potentially reducing
redundant work and cleaning up the code, but that's not happening here.
Closes https://github.com/ppy/osu/issues/13632 .
2021-07-19 20:27:01 +09:00
PercyDan54
e1c646b9b2
Remove redundant arguments
2021-07-05 23:52:39 +08:00
smoogipoo
ca0eaab8e2
Add test
2021-06-29 16:30:46 +09:00
Dean Herbert
26312bf60a
Merge branch 'master' into chat-mention
2021-06-11 20:03:44 +09:00
Dean Herbert
061e3d7f26
Move legacy ScoreInfo
to be completely based on presence of classic mod
2021-06-08 18:00:09 +09:00
Craftplacer
5e44329e0b
Add DummyAPIAccess request handler
...
Make CreateChannelRequest.channel public
2021-06-05 14:43:26 +02:00
Gagah Pangeran Rosfatiputra
d4013bd885
add GetWikiRequest
2021-04-20 16:40:30 +07:00
Gagah Pangeran Rosfatiputra
f3555ad08c
add APIWikiPage response
2021-04-20 16:12:32 +07:00
Dean Herbert
9267d23dc2
Make year nullable rather than defaulting to zero
2021-05-20 15:23:49 +09:00
Andrei Zavatski
16ffedde8a
Add year parameter to GetNewsRequest
2021-05-19 15:17:57 +03:00
Andrei Zavatski
881d82ccb6
Merge remote-tracking branch 'refs/remotes/ppy/master' into news-sidebar-new
2021-05-15 19:08:48 +03:00
Bartłomiej Dach
5b2b701915
Ignore possible null in GetResponseString()
...
A null there indicates a deserialisation error and therefore due to the
catch block immediately succeeding the changed line everything will
continue to work as intended.
2021-05-15 00:09:34 +02:00
Andrei Zavatski
4b97224932
Implement NewsSideBar component
2021-05-10 09:53:52 +03:00
Bartłomiej Dach
fe86ee629e
Fix temp files from beatmap listing imports not being cleaned up
...
As reported in #12718 , it turns out that temporary files from beatmap
set downloads performed via the beatmap listing overlay could remain in
the user's filesystem even after the download has concluded.
The reason for the issue is a failure in component integration.
In the case of online downloads, files are first downloaded to a
temporary directory (`C:/Temp` or `/tmp`), with a randomly generated
filename, which ends in an extension of `.tmp`.
On the other side, `ArchiveModelManager`s have a `ShouldDeleteArchive()`
method, which determines whether a file should be deleted after
importing. At the time of writing, in the case of beatmap imports the
file is only automatically cleaned up if the extension of the file is
equal to `.osz`, which was not the case for temporary files.
As it turns out, `APIDownloadRequest` has a facility for adjusting the
file's extension, via the protected `FileExtension` property. Therefore,
use it in the case of `DownloadBeatmapSetRequest` to specify `.osz`,
which then will make sure that the `ShouldDeleteArchive()` check in
`BeatmapManager` picks it up for clean-up.
2021-05-08 17:09:14 +02:00
Salman Ahmed
92fab653e1
Take current mod settings value into account on equality comparsion
2021-04-12 20:51:13 +03:00
Salman Ahmed
fbd5195738
Extract mod setting value handling to utils class
2021-04-12 03:37:03 +03:00
Salman Ahmed
18fb9f5ac9
Merge branch 'master' into mod-using-reference-equality
2021-04-11 19:48:55 +03:00
Max Hübner
aa2c1ee85e
Add new beatmap search filter row "General"
2021-03-25 23:20:10 +01:00
Dean Herbert
aeff9bd853
Add return bool to HandleRequest to better trigger failures
2021-03-23 18:17:29 +09:00
Dean Herbert
ce452565f4
Avoid firing any kind of failures after success
2021-03-23 17:50:31 +09:00
Dean Herbert
f5ba746ae5
Fail all API requests sent to DummyAPIAccess
...
Until now, API requests sent to dummy API were just lost in the void. In most cases this somehow worked as expected, but any logic which is waiting on a request to finish will potentially never get a response.
Going forward, I'm not 100% sure that every `Wait` on a web response will have local timeout logic (I think there is a certain amount of assumption that this is being managed for us by `APIAccess`), so I've made this change to better handle such cases going forward. Now, rather than nothing happening, requests will trigger a failure via the existing exception logic rather than silently pretending the request never arrived.
2021-03-23 17:37:45 +09:00
smoogipoo
7fa5fd5647
Update usages of config with framework changes
2021-03-17 16:10:16 +09:00
Dean Herbert
765cc5cf37
Remove iOS multiplayer blocking code
2021-03-08 14:35:22 +09:00
Dean Herbert
9ed8d902f7
Fix requests being indefinitely queued when user is offline
2021-02-24 19:57:42 +09:00
Dean Herbert
664d243003
Disable multiplayer/spectator on iOS until it can be supported again
2021-02-23 15:22:46 +09:00
smoogipoo
d985b8ab2a
Increase beatmapset download timeout
2021-02-22 17:14:39 +09:00
smoogipoo
9a7b6ebe50
Fix missed occurrence
2021-02-17 14:30:52 +09:00
Dan Balasescu
6641f4d5a9
Merge branch 'master' into hub-send-version-hash
2021-02-15 21:12:46 +09:00
Dean Herbert
3562fddc27
Add missing nullability flag on CreateAccount return value
2021-02-15 17:02:07 +09:00
Dean Herbert
55d5d8d5be
Send version hash on hub connection
2021-02-15 16:51:40 +09:00
Dean Herbert
9ad38ab20e
Move HubClientConnector retrieval to IAPIProvider
2021-02-15 16:43:56 +09:00
smoogipoo
07b661e28c
Add Messagepack support for serialising unknown bindable types
2021-02-10 23:44:06 +09:00
Dan Balasescu
a71d6a4c97
Merge branch 'master' into multiplayer-beatmap-tracker
2021-02-05 12:25:36 +09:00
Dean Herbert
76cfeae7e9
Add support for Bindable int in config
2021-02-04 15:10:56 +09:00
Dean Herbert
e3d323989c
Switch to SignalR 5.0 and implement using better API
2021-02-03 22:04:14 +09:00
Dean Herbert
1380717ebb
Use PrimitiveObjectFormatter to simplify code
2021-02-03 20:19:27 +09:00
Dean Herbert
d3f056f188
Add missing licence header
2021-02-03 20:06:25 +09:00
Dean Herbert
75f1ebd5f9
Add custom resolver for mod settings dictionary
2021-02-03 19:46:47 +09:00
Dean Herbert
c73a05d0b5
Merge branch 'master' into multiplayer-beatmap-tracker
2021-02-01 17:24:24 +09:00
Dan Balasescu
7d06af916c
Merge branch 'master' into add-messagepack
2021-01-27 13:00:46 +09:00
Dean Herbert
e4fc604163
Setup all multiplayer model classes for MessagePack support
2021-01-26 16:26:03 +09:00
Salman Ahmed
c317d60169
Add offline test scene for beatmap listing overlay
2021-01-26 00:03:20 +03:00
Salman Ahmed
5e476fa189
Enforce one missed property back to single-floating type
2021-01-18 22:07:25 +03:00
Salman Ahmed
dc91cebce9
Merge branch 'master' into multiplayer-beatmap-tracker
2021-01-18 19:15:45 +03:00
Salman Ahmed
b6a37c1c15
Make TriggerSuccess(filename)
protected and expose in test instead
2021-01-17 22:10:30 +03:00
Salman Ahmed
d93a853dfd
Enforce float
type in the download progress path instead
2021-01-17 21:16:48 +03:00
Dean Herbert
5fd644fc57
Unify variable names
2021-01-17 22:42:48 +09:00
Salman Ahmed
adb2605d5d
Enforce double
type in the download progress path
...
Wasn't sure where to exactly put this, or whether to split it, but it's very small change to worry about, so I guess it's fine being here
2021-01-17 00:12:14 +03:00
Salman Ahmed
23c7afa573
Expose method for setting progress of archive download request
2021-01-17 00:05:51 +03:00
Salman Ahmed
4778686dc4
Expose method for triggering filename-backed success in APIDownloadRequest
...
Exactly like in `APIRequest<T>`
2021-01-17 00:01:11 +03:00
Salman Ahmed
a5f99ed8e6
Merge branch 'explicit-beatmap-markers' into explicit-search-control
2021-01-13 12:53:57 +03:00
Salman Ahmed
e8daea91d2
Add online beatmap "explicit content" property
2021-01-13 12:13:14 +03:00
Salman Ahmed
249be461d5
Add "explicit maps" search filter control
2021-01-12 11:09:55 +03:00
Dean Herbert
6ad1b7767e
Update osu.Game/Online/API/APIMod.cs
...
Co-authored-by: Salman Ahmed <slmanarendo1950@gmail.com>
2021-01-03 17:04:16 +09:00
Dean Herbert
99fa0e25dc
Switch back to FirstOrDefault to allow for weird testing logic to pass
2021-01-03 16:46:24 +09:00
Dean Herbert
29dbb1cc0d
Add internal pathway for ensuring correct application of bindable mods
2021-01-03 15:48:28 +09:00
Dean Herbert
23e216fa0b
Simplify some default value checks (we are sure the return is an IBindable)
2021-01-03 15:47:15 +09:00
Dean Herbert
1a44338124
Use SingleOrDefault for added safety when looking up mod acronyms
2021-01-03 15:38:30 +09:00
Bartłomiej Dach
dee694fd50
Merge branch 'master' into mod-using-reference-equality
2020-12-30 19:39:22 +01:00
Dean Herbert
03b78d1c4b
Handle SocketExceptions and HttpRequestExceptions more silently
...
These can occur when a network connection is completely unavailable (ie.
host resolution failures are occurring). Currently these would appear as
important errors which spammed the notification overlay every retry
forever, while no network connection is available.
I also took this opportunity to remove a lot of `bool` passing which was
no longer in use (previously the fail count / retry process was
different to what we have today).
2020-12-29 16:22:11 +09:00
Salman Ahmed
41b79d938b
Fix wrong checks..
2020-12-28 15:30:52 +03:00
Salman Ahmed
5efcdbd431
Fix IMod now using reference equality as well
2020-12-28 15:19:28 +03:00
Salman Ahmed
43f8f3638a
Fix mod using reference equality unless casted to IMod
2020-12-27 02:42:13 +03:00
Bartłomiej Dach
0bd9f68cbd
Refactor update stream colour mapping code
2020-12-25 21:06:03 +01:00
Bartłomiej Dach
d5c348b568
Remove explicit public access modifier from interface
2020-12-24 13:44:46 +01:00
Dean Herbert
66a23c22e5
Fix various tests failing due to dependence on specific online data
2020-12-24 21:28:24 +09:00
Dean Herbert
323da82477
Add website root URL and update most links to use it
...
For what it's worth, I intentionally didn't include news / changelog /
supporter, because these should never change.
2020-12-24 18:11:42 +09:00
Dean Herbert
eb795a2127
Move all endpoint information to a configuration class
2020-12-24 17:58:38 +09:00
Dean Herbert
e89583d732
Prefer connecting to dev server when running in DEBUG
2020-12-24 01:33:19 +09:00
Dean Herbert
d229fbba6e
Merge branch 'master' into present-recommended
2020-12-22 13:52:29 +09:00
smoogipoo
eb46c9ce9b
Fix metadata lost in beatmapset deserialisation
2020-12-21 17:11:30 +09:00
smoogipoo
c6555c53cc
Add a testable realtime room manager
2020-12-19 01:17:24 +09:00
Dean Herbert
a749dca20b
Remove left over using statement
2020-12-18 15:43:15 +09:00
Dean Herbert
99b670627a
Remove unused placeholder friend in DummyAPI implementation
2020-12-18 15:25:12 +09:00
Dean Herbert
57c5d45c02
Standardise and extract common connection failure handling logic
2020-12-18 15:19:38 +09:00
Dean Herbert
d36169f697
Move friend request to a more understandable place in connection flow
2020-12-18 15:16:48 +09:00
Dean Herbert
206bf3713e
Make IAPIProvider read-only bindables into IBindables
2020-12-18 15:16:36 +09:00
Salman Ahmed
8a01e567a1
Fix API potentially getting stuck in connecting state
2020-12-18 03:06:28 +03:00
Salman Ahmed
5d180753fa
Complete connection once friends list is succesfully fetched
2020-12-17 13:44:30 +03:00
Salman Ahmed
78ce6f1cd2
Add friends list to API providers
2020-12-17 13:30:55 +03:00
Endrik Tombak
cbbcf36eaa
Merge branch 'master' of https://github.com/ppy/osu into present-recommended
2020-12-03 19:38:32 +02:00
Dean Herbert
3550e5b30f
Add length display to room screen as well
2020-12-03 16:42:06 +09:00
Endrik Tombak
944f3480c2
Merge branch 'master' of https://github.com/ppy/osu into present-recommended
...
Conflicts:
osu.Game/OsuGameBase.cs
osu.Game/Screens/Select/DifficultyRecommender.cs
osu.Game/Screens/Select/SongSelect.cs
2020-11-21 14:01:01 +02:00
Dean Herbert
cfb42037cf
Refactor request string logic to avoid linq usage
2020-11-09 12:23:29 +09:00
Dean Herbert
893979b3de
Add exception if attempting to exceed the maximum supported lookup size for one request
2020-11-06 17:00:29 +09:00
Dean Herbert
db039da668
Add and consume multi-lookup API endpoint
2020-11-06 17:00:29 +09:00
Dean Herbert
aa252d562a
Rename top user request to make way for new type
2020-11-06 17:00:29 +09:00
Dean Herbert
1e1569eb53
Use int instead of long for user_id fields for now
2020-11-06 12:59:46 +09:00
Dean Herbert
1db8dfd03e
Merge branch 'master' into seasonal-backgrounds
2020-10-30 22:53:51 +09:00
Max Hübner
f27ce7521d
Make "Sometimes" setting depend on season end date, rather than chance
2020-10-30 10:27:43 +01:00
Bartłomiej Dach
fa53549ed2
Mark request fields as possibly-null
2020-10-28 22:57:03 +01:00
Andrei Zavatski
5c2c5f2000
Use existing ScoreRank for rank filter
2020-10-28 23:35:08 +03:00
Andrei Zavatski
6fd3686c4d
Use IReadOnlyCollection instead of List in SearchBeatmapSetsRequest
2020-10-28 02:36:35 +03:00
Andrei Zavatski
c4efceceb2
Use char instead of sting for request parameter creation
2020-10-27 23:57:11 +03:00
Andrei Zavatski
008d1d697c
Implement filtering by rank achieved
2020-10-27 23:14:48 +03:00
Andrei Zavatski
1710b396e7
Implement BeatmapSearchMultipleSelectionFilterRow
2020-10-27 22:27:29 +03:00
Andrei Zavatski
1b40b56d41
Add ability to search by play criteria
2020-10-27 21:30:53 +03:00
Andrei Zavatski
742a96484b
Add ability to set extra parameters to SearchBeatmapSetsRequest
2020-10-27 20:13:18 +03:00
Dean Herbert
b86347dc81
Merge branch 'master' into spectator
2020-10-26 13:39:07 +09:00
Dean Herbert
f11bcfcb8f
Remove unnecessary public specification in interface
...
Co-authored-by: Bartłomiej Dach <dach.bartlomiej@gmail.com>
2020-10-23 10:03:33 +09:00
Max Hübner
09d49aa0f7
Add GetSeasonalBackgroundsRequest
2020-10-22 18:25:01 +02:00
Dean Herbert
c834aa6051
Use APIMod for mod serialization
2020-10-22 17:48:15 +09:00
Dean Herbert
4788b4a643
Expose oauth access token via api interface
2020-10-22 17:48:15 +09:00
Dean Herbert
c6db832efa
Add xmldoc notes about thread safety of api bindables
2020-10-22 14:56:20 +09:00
Dean Herbert
da573c7487
Remove unused usings
2020-10-22 14:44:10 +09:00
Dean Herbert
9753dab93b
Remove IOnlineComponent and change existing components to use bindable flow
2020-10-22 14:19:12 +09:00
smoogipoo
297168ecc4
Fix scores sometimes not being re-standardised correctly
2020-09-29 19:06:09 +09:00
smoogipoo
6ed191786f
Add support for position
2020-08-31 20:01:59 +09:00
smoogipoo
ed74c39b55
Move UserTopScoreContainer into base leaderboard
2020-08-31 19:54:22 +09:00
Dean Herbert
4189e918a3
Merge branch 'master' into news
2020-08-03 14:16:45 +09:00
smoogipoo
2b77f99f56
Initialise some response parameters
2020-07-31 20:55:44 +09:00
smoogipoo
8e8a11bb72
Add APIRequest.TriggerFailure() for testing
2020-07-31 20:55:26 +09:00
Andrei Zavatski
b821d619b5
Merge remote-tracking branch 'refs/remotes/ppy/master' into news
2020-07-25 09:13:12 +03:00
smoogipoo
0957c5f74c
Re-namespace multiplayer requests/responses
2020-07-22 18:34:04 +09:00
Andrei Zavatski
17c598568d
Merge remote-tracking branch 'refs/remotes/ppy/master' into news
2020-07-16 14:38:50 +03:00
Andrei Zavatski
3d9e174ae8
Make sort changes affect request result
2020-07-14 18:09:09 +03:00
Dean Herbert
7fe69bb199
Fix some web requests retrieving the user too early
2020-07-14 13:07:17 +09:00
Andrei Zavatski
3601a2d93f
Merge remote-tracking branch 'refs/remotes/ppy/master' into news
2020-07-12 14:45:48 +03:00
smoogipoo
fe585611e7
Fix + simplify web request
2020-07-10 19:54:09 +09:00
smoogipoo
926279e39b
Implement category dropdown for multiplayer
2020-07-10 17:26:42 +09:00
Andrei Zavatski
de4c22c709
Implement news api request
2020-07-08 17:58:09 +03:00
Andrei Zavatski
857a027a73
Parse HTML entities during APINewsPost deserialisation
2020-07-07 00:11:35 +03:00
Andrei Zavatski
68d9f9de46
Use DateTimeOffset
2020-07-06 23:55:20 +03:00
Andrei Zavatski
9dde101f12
Remove string prefixes
2020-07-06 23:53:27 +03:00
Andrei Zavatski
fdb7727e95
Rename NewsPost to APINewsPost
2020-07-06 07:28:44 +03:00
Andrei Zavatski
7550097eb6
Implement NewsCard
2020-07-06 07:27:53 +03:00
Andrei Zavatski
c18ca19c9d
Add NewsPost api response
2020-07-06 05:31:34 +03:00