mirror of
https://github.com/ppy/osu.git
synced 2025-01-28 05:22:54 +08:00
Add individual beatmap set lookup request
This commit is contained in:
parent
ead88224c5
commit
7550b461e3
17
osu.Game/Online/API/Requests/GetBeatmapSetRequest.cs
Normal file
17
osu.Game/Online/API/Requests/GetBeatmapSetRequest.cs
Normal file
@ -0,0 +1,17 @@
|
|||||||
|
// Copyright (c) 2007-2017 ppy Pty Ltd <contact@ppy.sh>.
|
||||||
|
// Licensed under the MIT Licence - https://raw.githubusercontent.com/ppy/osu/master/LICENCE
|
||||||
|
|
||||||
|
namespace osu.Game.Online.API.Requests
|
||||||
|
{
|
||||||
|
public class GetBeatmapSetRequest : APIRequest<GetBeatmapSetsResponse>
|
||||||
|
{
|
||||||
|
private readonly int beatmapSetId;
|
||||||
|
|
||||||
|
public GetBeatmapSetRequest(int beatmapSetId)
|
||||||
|
{
|
||||||
|
this.beatmapSetId = beatmapSetId;
|
||||||
|
}
|
||||||
|
|
||||||
|
protected override string Target => $@"beatmapsets/{beatmapSetId}";
|
||||||
|
}
|
||||||
|
}
|
@ -5,34 +5,11 @@ using System.Collections.Generic;
|
|||||||
using System.Linq;
|
using System.Linq;
|
||||||
using Newtonsoft.Json;
|
using Newtonsoft.Json;
|
||||||
using osu.Game.Beatmaps;
|
using osu.Game.Beatmaps;
|
||||||
using osu.Game.Overlays;
|
|
||||||
using osu.Game.Overlays.Direct;
|
|
||||||
using osu.Game.Rulesets;
|
using osu.Game.Rulesets;
|
||||||
using osu.Game.Users;
|
using osu.Game.Users;
|
||||||
|
|
||||||
namespace osu.Game.Online.API.Requests
|
namespace osu.Game.Online.API.Requests
|
||||||
{
|
{
|
||||||
public class GetBeatmapSetsRequest : APIRequest<IEnumerable<GetBeatmapSetsResponse>>
|
|
||||||
{
|
|
||||||
private readonly string query;
|
|
||||||
private readonly RulesetInfo ruleset;
|
|
||||||
private readonly RankStatus rankStatus;
|
|
||||||
private readonly DirectSortCriteria sortCriteria;
|
|
||||||
private readonly SortDirection direction;
|
|
||||||
private string directionString => direction == SortDirection.Descending ? @"desc" : @"asc";
|
|
||||||
|
|
||||||
public GetBeatmapSetsRequest(string query, RulesetInfo ruleset, RankStatus rankStatus = RankStatus.Any, DirectSortCriteria sortCriteria = DirectSortCriteria.Ranked, SortDirection direction = SortDirection.Descending)
|
|
||||||
{
|
|
||||||
this.query = System.Uri.EscapeDataString(query);
|
|
||||||
this.ruleset = ruleset;
|
|
||||||
this.rankStatus = rankStatus;
|
|
||||||
this.sortCriteria = sortCriteria;
|
|
||||||
this.direction = direction;
|
|
||||||
}
|
|
||||||
|
|
||||||
protected override string Target => $@"beatmapsets/search?q={query}&m={ruleset.ID ?? 0}&s={(int)rankStatus}&sort={sortCriteria.ToString().ToLower()}_{directionString}";
|
|
||||||
}
|
|
||||||
|
|
||||||
public class GetBeatmapSetsResponse : BeatmapMetadata
|
public class GetBeatmapSetsResponse : BeatmapMetadata
|
||||||
{
|
{
|
||||||
[JsonProperty(@"covers")]
|
[JsonProperty(@"covers")]
|
32
osu.Game/Online/API/Requests/SearchBeatmapSetsRequest.cs
Normal file
32
osu.Game/Online/API/Requests/SearchBeatmapSetsRequest.cs
Normal file
@ -0,0 +1,32 @@
|
|||||||
|
// Copyright (c) 2007-2017 ppy Pty Ltd <contact@ppy.sh>.
|
||||||
|
// Licensed under the MIT Licence - https://raw.githubusercontent.com/ppy/osu/master/LICENCE
|
||||||
|
|
||||||
|
using System.Collections.Generic;
|
||||||
|
using osu.Game.Beatmaps;
|
||||||
|
using osu.Game.Overlays;
|
||||||
|
using osu.Game.Overlays.Direct;
|
||||||
|
using osu.Game.Rulesets;
|
||||||
|
|
||||||
|
namespace osu.Game.Online.API.Requests
|
||||||
|
{
|
||||||
|
public class SearchBeatmapSetsRequest : APIRequest<IEnumerable<GetBeatmapSetsResponse>>
|
||||||
|
{
|
||||||
|
private readonly string query;
|
||||||
|
private readonly RulesetInfo ruleset;
|
||||||
|
private readonly RankStatus rankStatus;
|
||||||
|
private readonly DirectSortCriteria sortCriteria;
|
||||||
|
private readonly SortDirection direction;
|
||||||
|
private string directionString => direction == SortDirection.Descending ? @"desc" : @"asc";
|
||||||
|
|
||||||
|
public SearchBeatmapSetsRequest(string query, RulesetInfo ruleset, RankStatus rankStatus = RankStatus.Any, DirectSortCriteria sortCriteria = DirectSortCriteria.Ranked, SortDirection direction = SortDirection.Descending)
|
||||||
|
{
|
||||||
|
this.query = System.Uri.EscapeDataString(query);
|
||||||
|
this.ruleset = ruleset;
|
||||||
|
this.rankStatus = rankStatus;
|
||||||
|
this.sortCriteria = sortCriteria;
|
||||||
|
this.direction = direction;
|
||||||
|
}
|
||||||
|
|
||||||
|
protected override string Target => $@"beatmapsets/search?q={query}&m={ruleset.ID ?? 0}&s={(int)rankStatus}&sort={sortCriteria.ToString().ToLower()}_{directionString}";
|
||||||
|
}
|
||||||
|
}
|
@ -248,7 +248,7 @@ namespace osu.Game.Overlays
|
|||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
private GetBeatmapSetsRequest getSetsRequest;
|
private SearchBeatmapSetsRequest getSetsRequest;
|
||||||
|
|
||||||
private readonly Bindable<string> currentQuery = new Bindable<string>();
|
private readonly Bindable<string> currentQuery = new Bindable<string>();
|
||||||
|
|
||||||
@ -269,7 +269,7 @@ namespace osu.Game.Overlays
|
|||||||
|
|
||||||
if (Header.Tabs.Current.Value == DirectTab.Search && (Filter.Search.Text == string.Empty || currentQuery == string.Empty)) return;
|
if (Header.Tabs.Current.Value == DirectTab.Search && (Filter.Search.Text == string.Empty || currentQuery == string.Empty)) return;
|
||||||
|
|
||||||
getSetsRequest = new GetBeatmapSetsRequest(currentQuery.Value ?? string.Empty,
|
getSetsRequest = new SearchBeatmapSetsRequest(currentQuery.Value ?? string.Empty,
|
||||||
((FilterControl)Filter).Ruleset.Value,
|
((FilterControl)Filter).Ruleset.Value,
|
||||||
Filter.DisplayStyleControl.Dropdown.Current.Value,
|
Filter.DisplayStyleControl.Dropdown.Current.Value,
|
||||||
Filter.Tabs.Current.Value); //todo: sort direction (?)
|
Filter.Tabs.Current.Value); //todo: sort direction (?)
|
||||||
|
@ -263,6 +263,8 @@
|
|||||||
<Compile Include="Beatmaps\Drawables\BeatmapPanel.cs" />
|
<Compile Include="Beatmaps\Drawables\BeatmapPanel.cs" />
|
||||||
<Compile Include="Beatmaps\Drawables\BeatmapSetCover.cs" />
|
<Compile Include="Beatmaps\Drawables\BeatmapSetCover.cs" />
|
||||||
<Compile Include="Beatmaps\Drawables\BeatmapSetHeader.cs" />
|
<Compile Include="Beatmaps\Drawables\BeatmapSetHeader.cs" />
|
||||||
|
<Compile Include="Online\API\Requests\GetBeatmapSetRequest.cs" />
|
||||||
|
<Compile Include="Online\API\Requests\GetBeatmapSetsResponse.cs" />
|
||||||
<Compile Include="Screens\Edit\Screens\Compose\Timeline\BeatmapWaveformGraph.cs" />
|
<Compile Include="Screens\Edit\Screens\Compose\Timeline\BeatmapWaveformGraph.cs" />
|
||||||
<Compile Include="Beatmaps\Drawables\DifficultyColouredContainer.cs" />
|
<Compile Include="Beatmaps\Drawables\DifficultyColouredContainer.cs" />
|
||||||
<Compile Include="Beatmaps\Drawables\DifficultyIcon.cs" />
|
<Compile Include="Beatmaps\Drawables\DifficultyIcon.cs" />
|
||||||
@ -370,7 +372,7 @@
|
|||||||
<Compile Include="Online\API\OAuthToken.cs" />
|
<Compile Include="Online\API\OAuthToken.cs" />
|
||||||
<Compile Include="Online\API\Requests\DownloadBeatmapSetRequest.cs" />
|
<Compile Include="Online\API\Requests\DownloadBeatmapSetRequest.cs" />
|
||||||
<Compile Include="Online\API\Requests\GetBeatmapDetailsRequest.cs" />
|
<Compile Include="Online\API\Requests\GetBeatmapDetailsRequest.cs" />
|
||||||
<Compile Include="Online\API\Requests\GetBeatmapSetsRequest.cs" />
|
<Compile Include="Online\API\Requests\SearchBeatmapSetsRequest.cs" />
|
||||||
<Compile Include="Online\API\Requests\GetMessagesRequest.cs" />
|
<Compile Include="Online\API\Requests\GetMessagesRequest.cs" />
|
||||||
<Compile Include="Online\API\Requests\GetScoresRequest.cs" />
|
<Compile Include="Online\API\Requests\GetScoresRequest.cs" />
|
||||||
<Compile Include="Online\API\Requests\GetUserRequest.cs" />
|
<Compile Include="Online\API\Requests\GetUserRequest.cs" />
|
||||||
|
Loading…
Reference in New Issue
Block a user