mirror of
https://github.com/ppy/osu.git
synced 2025-02-15 20:53:00 +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 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) ?
|
protected override string Target => $@"changelog/{(!string.IsNullOrEmpty(updateStream) ?
|
||||||
updateStream + "/" : "")}chart-config";
|
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.
|
// 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.
|
// 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
|
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
|
namespace osu.Game.Online.API.Requests
|
||||||
{
|
{
|
||||||
public class GetChangelogRequest : APIRequest<APIChangelogBuild[]>
|
public class GetChangelogRequest : APIRequest<APIChangelogIndex>
|
||||||
{
|
{
|
||||||
protected override string Target => @"changelog";
|
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")]
|
[JsonProperty("users")]
|
||||||
public long Users { get; set; }
|
public long Users { get; set; }
|
||||||
|
|
||||||
[JsonProperty("is_featured")]
|
|
||||||
public bool IsFeatured { get; set; }
|
|
||||||
|
|
||||||
[JsonProperty("created_at")]
|
[JsonProperty("created_at")]
|
||||||
public DateTimeOffset CreatedAt { get; set; }
|
public DateTimeOffset CreatedAt { get; set; }
|
||||||
|
|
||||||
@ -114,7 +111,13 @@ namespace osu.Game.Online.API.Requests.Responses
|
|||||||
[JsonProperty("name")]
|
[JsonProperty("name")]
|
||||||
public string Name { get; set; }
|
public string Name { get; set; }
|
||||||
|
|
||||||
|
[JsonProperty("is_featured")]
|
||||||
|
public bool IsFeatured { get; set; }
|
||||||
|
|
||||||
[JsonProperty("display_name")]
|
[JsonProperty("display_name")]
|
||||||
public string DisplayName { get; set; }
|
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);
|
var streamBadge = new StreamBadge(updateStream);
|
||||||
streamBadge.Selected += onBadgeSelected;
|
streamBadge.Selected += onBadgeSelected;
|
||||||
@ -75,9 +75,9 @@ namespace osu.Game.Overlays.Changelog
|
|||||||
{
|
{
|
||||||
foreach (StreamBadge streamBadge in badgesContainer)
|
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();
|
streamBadge.Activate();
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
@ -87,13 +87,13 @@ namespace osu.Game.Overlays.Changelog
|
|||||||
|
|
||||||
private void onBadgeSelected(StreamBadge source, EventArgs args)
|
private void onBadgeSelected(StreamBadge source, EventArgs args)
|
||||||
{
|
{
|
||||||
selectedStreamId = source.LatestBuild.UpdateStream.Id;
|
selectedStreamId = source.Stream.Id;
|
||||||
OnSelected(source);
|
OnSelected(source);
|
||||||
}
|
}
|
||||||
|
|
||||||
protected virtual void OnSelected(StreamBadge 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)
|
protected override bool OnHover(HoverEvent e)
|
||||||
@ -102,7 +102,7 @@ namespace osu.Game.Overlays.Changelog
|
|||||||
{
|
{
|
||||||
if (selectedStreamId >= 0)
|
if (selectedStreamId >= 0)
|
||||||
{
|
{
|
||||||
if (selectedStreamId != streamBadge.LatestBuild.UpdateStream.Id)
|
if (selectedStreamId != streamBadge.Stream.Id)
|
||||||
streamBadge.Deactivate();
|
streamBadge.Deactivate();
|
||||||
else
|
else
|
||||||
streamBadge.EnableDim();
|
streamBadge.EnableDim();
|
||||||
@ -120,7 +120,7 @@ namespace osu.Game.Overlays.Changelog
|
|||||||
{
|
{
|
||||||
if (selectedStreamId < 0)
|
if (selectedStreamId < 0)
|
||||||
streamBadge.Activate();
|
streamBadge.Activate();
|
||||||
else if (streamBadge.LatestBuild.UpdateStream.Id == selectedStreamId)
|
else if (streamBadge.Stream.Id == selectedStreamId)
|
||||||
streamBadge.DisableDim();
|
streamBadge.DisableDim();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -6,6 +6,7 @@ using osu.Framework.Graphics.Containers;
|
|||||||
using osu.Framework.Graphics.Shapes;
|
using osu.Framework.Graphics.Shapes;
|
||||||
using osu.Game.Online.API.Requests.Responses;
|
using osu.Game.Online.API.Requests.Responses;
|
||||||
using System;
|
using System;
|
||||||
|
using System.Collections.Generic;
|
||||||
using osuTK.Graphics;
|
using osuTK.Graphics;
|
||||||
|
|
||||||
namespace osu.Game.Overlays.Changelog
|
namespace osu.Game.Overlays.Changelog
|
||||||
@ -26,7 +27,7 @@ namespace osu.Game.Overlays.Changelog
|
|||||||
Padding = new MarginPadding { Bottom = 100 };
|
Padding = new MarginPadding { Bottom = 100 };
|
||||||
}
|
}
|
||||||
|
|
||||||
public void ShowListing(APIChangelogBuild[] changelog)
|
public void ShowListing(List<APIChangelogBuild> changelog)
|
||||||
{
|
{
|
||||||
DateTime currentDate = new DateTime();
|
DateTime currentDate = new DateTime();
|
||||||
Clear();
|
Clear();
|
||||||
|
@ -32,14 +32,16 @@ namespace osu.Game.Overlays.Changelog
|
|||||||
private SampleChannel sampleClick;
|
private SampleChannel sampleClick;
|
||||||
private SampleChannel sampleHover;
|
private SampleChannel sampleHover;
|
||||||
|
|
||||||
public readonly APIChangelogBuild LatestBuild;
|
public readonly UpdateStream Stream;
|
||||||
|
|
||||||
private readonly FillFlowContainer<SpriteText> text;
|
private readonly FillFlowContainer<SpriteText> text;
|
||||||
|
|
||||||
public StreamBadge(APIChangelogBuild latestBuild)
|
public StreamBadge(UpdateStream stream)
|
||||||
{
|
{
|
||||||
LatestBuild = latestBuild;
|
Stream = stream;
|
||||||
|
|
||||||
Height = badge_height;
|
Height = badge_height;
|
||||||
Width = LatestBuild.IsFeatured ? badge_width * 2 : badge_width;
|
Width = stream.IsFeatured ? badge_width * 2 : badge_width;
|
||||||
Padding = new MarginPadding(5);
|
Padding = new MarginPadding(5);
|
||||||
isActivated = true;
|
isActivated = true;
|
||||||
Children = new Drawable[]
|
Children = new Drawable[]
|
||||||
@ -53,18 +55,18 @@ namespace osu.Game.Overlays.Changelog
|
|||||||
{
|
{
|
||||||
new SpriteText
|
new SpriteText
|
||||||
{
|
{
|
||||||
Text = LatestBuild.UpdateStream.DisplayName,
|
Text = stream.DisplayName,
|
||||||
Font = OsuFont.GetFont(weight: FontWeight.Bold, size: 14), // web: 12,
|
Font = OsuFont.GetFont(weight: FontWeight.Bold, size: 14), // web: 12,
|
||||||
Margin = new MarginPadding { Top = 6 },
|
Margin = new MarginPadding { Top = 6 },
|
||||||
},
|
},
|
||||||
new SpriteText
|
new SpriteText
|
||||||
{
|
{
|
||||||
Text = LatestBuild.DisplayVersion,
|
Text = stream.LatestBuild.DisplayVersion,
|
||||||
Font = OsuFont.GetFont(weight: FontWeight.Light, size: 20), // web: 16,
|
Font = OsuFont.GetFont(weight: FontWeight.Light, size: 20), // web: 16,
|
||||||
},
|
},
|
||||||
new SpriteText
|
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,
|
Font = OsuFont.GetFont(weight: FontWeight.Regular, size: 12), // web: 10,
|
||||||
Colour = new Color4(203, 164, 218, 255),
|
Colour = new Color4(203, 164, 218, 255),
|
||||||
},
|
},
|
||||||
@ -73,7 +75,7 @@ namespace osu.Game.Overlays.Changelog
|
|||||||
lineBadge = new LineBadge(false)
|
lineBadge = new LineBadge(false)
|
||||||
{
|
{
|
||||||
Anchor = Anchor.TopCentre,
|
Anchor = Anchor.TopCentre,
|
||||||
Colour = StreamColour.FromStreamName(LatestBuild.UpdateStream.Name),
|
Colour = StreamColour.FromStreamName(stream.Name),
|
||||||
UncollapsedSize = 4,
|
UncollapsedSize = 4,
|
||||||
CollapsedSize = 2,
|
CollapsedSize = 2,
|
||||||
},
|
},
|
||||||
|
@ -111,7 +111,7 @@ namespace osu.Game.Overlays
|
|||||||
protected override void LoadComplete()
|
protected override void LoadComplete()
|
||||||
{
|
{
|
||||||
var req = new GetChangelogLatestBuildsRequest();
|
var req = new GetChangelogLatestBuildsRequest();
|
||||||
req.Success += badges.Populate;
|
req.Success += res => badges.Populate(res.Streams);
|
||||||
api.Queue(req);
|
api.Queue(req);
|
||||||
fetchListing();
|
fetchListing();
|
||||||
base.LoadComplete();
|
base.LoadComplete();
|
||||||
@ -168,7 +168,7 @@ namespace osu.Game.Overlays
|
|||||||
isAtListing = true;
|
isAtListing = true;
|
||||||
var req = new GetChangelogRequest();
|
var req = new GetChangelogRequest();
|
||||||
badges.SelectNone();
|
badges.SelectNone();
|
||||||
req.Success += listing.ShowListing;
|
req.Success += res => listing.ShowListing(res.Builds);
|
||||||
api.Queue(req);
|
api.Queue(req);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user