Commit Graph

950 Commits

Author SHA1 Message Date
cf633973a9 Refactor exposed mod retrieval methods for better safety 2021-09-10 11:09:13 +09:00
ce6b022a90 Remove unused IMod specification from APIMod 2021-09-10 10:59:30 +09:00
2edb851008 Add ability to lookup mod from a type specification 2021-09-09 16:50:59 +09:00
4d0530ca9d Add new methods to ruleset for quicker mod lookups 2021-09-09 16:46:14 +09:00
e66d76d26e Avoid settings copy if there are no settings 2021-09-09 15:43:55 +09:00
7543f9dfb0 Add featured artist track ID online info 2021-09-08 12:21:24 +09:00
be9540e535 fix "key" having wrong url parameter name 2021-09-07 17:17:10 +01:00
b6c80f04b0 Add "featured artists" filter to beatmap search 2021-09-07 16:44:45 +09:00
1c4a3c584a Use correct lookup type to ensure username based lookups always prefer username 2021-09-06 15:04:27 +09:00
e78dc1bb4c more code quality :/ 2021-09-05 15:27:28 +01:00
e409f2dc6d add xmldoc 2021-09-05 10:42:38 +01:00
8104b15874 remove braces
Co-authored-by: Salman Ahmed <frenzibyte@gmail.com>
2021-08-30 13:23:33 +01:00
90c313e2ad add methods to get a user from their username 2021-08-29 19:19:55 +01:00
8cd972a9fe Merge branch 'master' into pinned-comment 2021-08-24 14:37:31 +09:00
da8eba9996 Return early to avoid updating state and failure count in fail cases 2021-08-20 12:11:41 +09:00
a6b7ca1a4c Ensure all request failures are correctly handled during login 2021-08-19 19:55:14 +09:00
7d7c5c06f0 Fix code formatting 2021-08-15 16:02:25 +02:00
2f9f1ba862 Add test for ChannelManager.MarkChannelAsRead 2021-08-15 15:44:23 +02:00
480d5ffa5d add pinned comment to users setter in comment bundle 2021-08-13 19:40:37 +07:00
39b13efdd5 add pinned comments property in comment bundle 2021-08-13 13:13:28 +07:00
0901333ef3 add pinned property in comment 2021-08-13 12:57:29 +07:00
556962a3d8 Add missing xmldoc comment
Co-authored-by: Bartłomiej Dach <dach.bartlomiej@gmail.com>
2021-08-03 14:50:56 +09:00
617ff40de7 Add the ability to not use MessagePack when creating a HubConnector 2021-08-02 18:50:22 +09:00
185ea776f5 Fix incorrect authorisation loss exception handling with recent changes 2021-07-30 18:11:40 +09:00
3a5324c947 Fix aborting an APIRequest potentially resulting in incorrect success 2021-07-29 13:01:52 +09:00
1ed4fdd5f5 Avoid deserialisation JSON request content when error is not present (or not relevant) 2021-07-28 20:13:40 +09:00
bb3747ffc9 Fix beatmap search requests double-escaping
Closes #14008.
2021-07-25 17:06:40 +09:00
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
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
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
1e634d9db0 Adjust user beatmap sections on profile overlay to match web 2021-07-20 21:55:17 +02:00
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
e1c646b9b2 Remove redundant arguments 2021-07-05 23:52:39 +08:00
ca0eaab8e2 Add test 2021-06-29 16:30:46 +09:00
26312bf60a Merge branch 'master' into chat-mention 2021-06-11 20:03:44 +09:00
061e3d7f26 Move legacy ScoreInfo to be completely based on presence of classic mod 2021-06-08 18:00:09 +09:00
5e44329e0b Add DummyAPIAccess request handler
Make CreateChannelRequest.channel public
2021-06-05 14:43:26 +02:00
d4013bd885 add GetWikiRequest 2021-04-20 16:40:30 +07:00
f3555ad08c add APIWikiPage response 2021-04-20 16:12:32 +07:00
9267d23dc2 Make year nullable rather than defaulting to zero 2021-05-20 15:23:49 +09:00
16ffedde8a Add year parameter to GetNewsRequest 2021-05-19 15:17:57 +03:00
881d82ccb6 Merge remote-tracking branch 'refs/remotes/ppy/master' into news-sidebar-new 2021-05-15 19:08:48 +03:00
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
4b97224932 Implement NewsSideBar component 2021-05-10 09:53:52 +03:00
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
92fab653e1 Take current mod settings value into account on equality comparsion 2021-04-12 20:51:13 +03:00
fbd5195738 Extract mod setting value handling to utils class 2021-04-12 03:37:03 +03:00
18fb9f5ac9 Merge branch 'master' into mod-using-reference-equality 2021-04-11 19:48:55 +03:00
aa2c1ee85e Add new beatmap search filter row "General" 2021-03-25 23:20:10 +01:00
aeff9bd853 Add return bool to HandleRequest to better trigger failures 2021-03-23 18:17:29 +09:00