mirror of
https://github.com/ppy/osu.git
synced 2025-02-15 11:02:57 +08:00
Initial pass to make work with real API
This commit is contained in:
parent
31b72f168d
commit
219c590b8a
@ -17,6 +17,5 @@ namespace osu.Game.Online.API.Requests
|
||||
}
|
||||
|
||||
protected override string Target => $@"changelog/{name}/{version}";
|
||||
protected override string Uri => $@"https://houtarouoreki.github.io/fake-api/{Target}"; // for testing
|
||||
}
|
||||
}
|
||||
|
@ -21,7 +21,5 @@ namespace osu.Game.Online.API.Requests
|
||||
|
||||
protected override string Target => $@"changelog/{(!string.IsNullOrEmpty(updateStream) ?
|
||||
updateStream + "/" : "")}chart-config";
|
||||
|
||||
protected override string Uri => $@"https://houtarouoreki.github.io/fake-api/{Target}"; // for testing
|
||||
}
|
||||
}
|
||||
|
@ -1,14 +1,9 @@
|
||||
// Copyright (c) ppy Pty Ltd <contact@ppy.sh>. Licensed under the MIT Licence.
|
||||
// See the LICENCE file in the repository root for full licence text.
|
||||
|
||||
using osu.Game.Online.API.Requests.Responses;
|
||||
using System.Collections.Generic;
|
||||
|
||||
namespace osu.Game.Online.API.Requests
|
||||
{
|
||||
public class GetChangelogLatestBuildsRequest : APIRequest<List<APIChangelogBuild>>
|
||||
public class GetChangelogLatestBuildsRequest : GetChangelogRequest
|
||||
{
|
||||
protected override string Target => @"changelog/latest-builds";
|
||||
protected override string Uri => $@"https://houtarouoreki.github.io/fake-api/{Target}"; // for testing
|
||||
}
|
||||
}
|
||||
|
@ -5,9 +5,8 @@ using osu.Game.Online.API.Requests.Responses;
|
||||
|
||||
namespace osu.Game.Online.API.Requests
|
||||
{
|
||||
public class GetChangelogRequest : APIRequest<APIChangelogBuild[]>
|
||||
public class GetChangelogRequest : APIRequest<APIChangelogIndex>
|
||||
{
|
||||
protected override string Target => @"changelog";
|
||||
protected override string Uri => $@"https://houtarouoreki.github.io/fake-api/{Target}/index"; // for testing
|
||||
}
|
||||
}
|
||||
|
@ -21,9 +21,6 @@ namespace osu.Game.Online.API.Requests.Responses
|
||||
[JsonProperty("users")]
|
||||
public long Users { get; set; }
|
||||
|
||||
[JsonProperty("is_featured")]
|
||||
public bool IsFeatured { get; set; }
|
||||
|
||||
[JsonProperty("created_at")]
|
||||
public DateTimeOffset CreatedAt { get; set; }
|
||||
|
||||
@ -114,7 +111,13 @@ namespace osu.Game.Online.API.Requests.Responses
|
||||
[JsonProperty("name")]
|
||||
public string Name { get; set; }
|
||||
|
||||
[JsonProperty("is_featured")]
|
||||
public bool IsFeatured { get; set; }
|
||||
|
||||
[JsonProperty("display_name")]
|
||||
public string DisplayName { get; set; }
|
||||
|
||||
[JsonProperty("latest_build")]
|
||||
public APIChangelogBuild LatestBuild { get; set; }
|
||||
}
|
||||
}
|
||||
|
14
osu.Game/Online/API/Requests/Responses/APIChangelogIndex.cs
Normal file
14
osu.Game/Online/API/Requests/Responses/APIChangelogIndex.cs
Normal file
@ -0,0 +1,14 @@
|
||||
// Copyright (c) ppy Pty Ltd <contact@ppy.sh>. Licensed under the MIT Licence.
|
||||
// See the LICENCE file in the repository root for full licence text.
|
||||
|
||||
using System.Collections.Generic;
|
||||
|
||||
namespace osu.Game.Online.API.Requests.Responses
|
||||
{
|
||||
public class APIChangelogIndex
|
||||
{
|
||||
public List<APIChangelogBuild> Builds;
|
||||
|
||||
public List<UpdateStream> Streams;
|
||||
}
|
||||
}
|
@ -45,9 +45,9 @@ namespace osu.Game.Overlays.Changelog
|
||||
};
|
||||
}
|
||||
|
||||
public void Populate(List<APIChangelogBuild> latestBuilds)
|
||||
public void Populate(List<UpdateStream> streams)
|
||||
{
|
||||
foreach (APIChangelogBuild updateStream in latestBuilds)
|
||||
foreach (UpdateStream updateStream in streams)
|
||||
{
|
||||
var streamBadge = new StreamBadge(updateStream);
|
||||
streamBadge.Selected += onBadgeSelected;
|
||||
@ -75,9 +75,9 @@ namespace osu.Game.Overlays.Changelog
|
||||
{
|
||||
foreach (StreamBadge streamBadge in badgesContainer)
|
||||
{
|
||||
if (streamBadge.LatestBuild.UpdateStream.Name == updateStream)
|
||||
if (streamBadge.Stream.Name == updateStream)
|
||||
{
|
||||
selectedStreamId = streamBadge.LatestBuild.UpdateStream.Id;
|
||||
selectedStreamId = streamBadge.Stream.Id;
|
||||
streamBadge.Activate();
|
||||
}
|
||||
else
|
||||
@ -87,13 +87,13 @@ namespace osu.Game.Overlays.Changelog
|
||||
|
||||
private void onBadgeSelected(StreamBadge source, EventArgs args)
|
||||
{
|
||||
selectedStreamId = source.LatestBuild.UpdateStream.Id;
|
||||
selectedStreamId = source.Stream.Id;
|
||||
OnSelected(source);
|
||||
}
|
||||
|
||||
protected virtual void OnSelected(StreamBadge source)
|
||||
{
|
||||
Selected?.Invoke(source.LatestBuild, EventArgs.Empty);
|
||||
Selected?.Invoke(source.Stream.LatestBuild, EventArgs.Empty);
|
||||
}
|
||||
|
||||
protected override bool OnHover(HoverEvent e)
|
||||
@ -102,7 +102,7 @@ namespace osu.Game.Overlays.Changelog
|
||||
{
|
||||
if (selectedStreamId >= 0)
|
||||
{
|
||||
if (selectedStreamId != streamBadge.LatestBuild.UpdateStream.Id)
|
||||
if (selectedStreamId != streamBadge.Stream.Id)
|
||||
streamBadge.Deactivate();
|
||||
else
|
||||
streamBadge.EnableDim();
|
||||
@ -120,7 +120,7 @@ namespace osu.Game.Overlays.Changelog
|
||||
{
|
||||
if (selectedStreamId < 0)
|
||||
streamBadge.Activate();
|
||||
else if (streamBadge.LatestBuild.UpdateStream.Id == selectedStreamId)
|
||||
else if (streamBadge.Stream.Id == selectedStreamId)
|
||||
streamBadge.DisableDim();
|
||||
}
|
||||
|
||||
|
@ -6,6 +6,7 @@ using osu.Framework.Graphics.Containers;
|
||||
using osu.Framework.Graphics.Shapes;
|
||||
using osu.Game.Online.API.Requests.Responses;
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using osuTK.Graphics;
|
||||
|
||||
namespace osu.Game.Overlays.Changelog
|
||||
@ -26,7 +27,7 @@ namespace osu.Game.Overlays.Changelog
|
||||
Padding = new MarginPadding { Bottom = 100 };
|
||||
}
|
||||
|
||||
public void ShowListing(APIChangelogBuild[] changelog)
|
||||
public void ShowListing(List<APIChangelogBuild> changelog)
|
||||
{
|
||||
DateTime currentDate = new DateTime();
|
||||
Clear();
|
||||
|
@ -32,14 +32,16 @@ namespace osu.Game.Overlays.Changelog
|
||||
private SampleChannel sampleClick;
|
||||
private SampleChannel sampleHover;
|
||||
|
||||
public readonly APIChangelogBuild LatestBuild;
|
||||
public readonly UpdateStream Stream;
|
||||
|
||||
private readonly FillFlowContainer<SpriteText> text;
|
||||
|
||||
public StreamBadge(APIChangelogBuild latestBuild)
|
||||
public StreamBadge(UpdateStream stream)
|
||||
{
|
||||
LatestBuild = latestBuild;
|
||||
Stream = stream;
|
||||
|
||||
Height = badge_height;
|
||||
Width = LatestBuild.IsFeatured ? badge_width * 2 : badge_width;
|
||||
Width = stream.IsFeatured ? badge_width * 2 : badge_width;
|
||||
Padding = new MarginPadding(5);
|
||||
isActivated = true;
|
||||
Children = new Drawable[]
|
||||
@ -53,18 +55,18 @@ namespace osu.Game.Overlays.Changelog
|
||||
{
|
||||
new SpriteText
|
||||
{
|
||||
Text = LatestBuild.UpdateStream.DisplayName,
|
||||
Text = stream.DisplayName,
|
||||
Font = OsuFont.GetFont(weight: FontWeight.Bold, size: 14), // web: 12,
|
||||
Margin = new MarginPadding { Top = 6 },
|
||||
},
|
||||
new SpriteText
|
||||
{
|
||||
Text = LatestBuild.DisplayVersion,
|
||||
Text = stream.LatestBuild.DisplayVersion,
|
||||
Font = OsuFont.GetFont(weight: FontWeight.Light, size: 20), // web: 16,
|
||||
},
|
||||
new SpriteText
|
||||
{
|
||||
Text = LatestBuild.Users > 0 ? $"{LatestBuild.Users:N0} users online" : null,
|
||||
Text = stream.LatestBuild.Users > 0 ? $"{stream.LatestBuild.Users:N0} users online" : null,
|
||||
Font = OsuFont.GetFont(weight: FontWeight.Regular, size: 12), // web: 10,
|
||||
Colour = new Color4(203, 164, 218, 255),
|
||||
},
|
||||
@ -73,7 +75,7 @@ namespace osu.Game.Overlays.Changelog
|
||||
lineBadge = new LineBadge(false)
|
||||
{
|
||||
Anchor = Anchor.TopCentre,
|
||||
Colour = StreamColour.FromStreamName(LatestBuild.UpdateStream.Name),
|
||||
Colour = StreamColour.FromStreamName(stream.Name),
|
||||
UncollapsedSize = 4,
|
||||
CollapsedSize = 2,
|
||||
},
|
||||
|
@ -111,7 +111,7 @@ namespace osu.Game.Overlays
|
||||
protected override void LoadComplete()
|
||||
{
|
||||
var req = new GetChangelogLatestBuildsRequest();
|
||||
req.Success += badges.Populate;
|
||||
req.Success += res => badges.Populate(res.Streams);
|
||||
api.Queue(req);
|
||||
fetchListing();
|
||||
base.LoadComplete();
|
||||
@ -168,7 +168,7 @@ namespace osu.Game.Overlays
|
||||
isAtListing = true;
|
||||
var req = new GetChangelogRequest();
|
||||
badges.SelectNone();
|
||||
req.Success += listing.ShowListing;
|
||||
req.Success += res => listing.ShowListing(res.Builds);
|
||||
api.Queue(req);
|
||||
}
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user