Skip to content

b11p/Bleatingsheep.Osu.ApiClient

Repository files navigation

Osu! API Client

This is an osu! API wrapper. See https://github.com/ppy/osu-api/wiki.

Usage

Install Nuget package.

See this code.

using Bleatingsheep.Osu.ApiClient;

var osuApiClient = OsuApiClientFactory.CreateClient("your-API-key");
var user = await osuApiClient.GetUser(124493, Mode.Standard);
var user2 = await osuApiClient.GetUser("idke");
var beatmaps = await osuApiClient.GetBeatmaps(Mode.Mania, false, DateTime.Now - TimeSpan.FromDays(2), 100);

Use factory

using Bleatingsheep.Osu.ApiClient;

var factory = OsuApiClientFactory.CreateFactory("your-API-key");
var osuApiClient = factory.CreateHttpApi();
var user = await osuApiClient.GetUser(124493, Mode.Standard);
var user2 = await osuApiClient.GetUser("idke");
var beatmaps = await osuApiClient.GetBeatmaps(Mode.Mania, false, DateTime.Now - TimeSpan.FromDays(2), 100);

Use ASP .NET Core

1. Configure Services

Add following content to your ConfigureServices method.

public void ConfigureServices(IServiceCollection services)
{
    services.AddSingleton<IHttpApiFactory<IOsuApiClient>>(p =>
    {
        return OsuApiClientFactory.CreateFactory("your-API-key",
            c =>
            {
                c.LoggerFactory = p.GetRequiredService<ILoggerFactory>();
            });
    });
    services.AddTransient<IOsuApiClient>(p =>
    {
        var factory = p.GetRequiredService<IHttpApiFactory<IOsuApiClient>>();
        return factory.CreateHttpApi();
    });
}

You should replace your-API-key with your osu! API key from configuration file or other places.

2. Edit Controller

public class OsuApiController : Controller
{
    private readonly IOsuApiClient _osuApiClient;

    public OsuApiController(IOsuApiClient osuApiClient)
    {
        this._osuApiClient = osuApiClient;
    }

    public async Task<string> Index()
    {
        var user = await _osuApiClient.GetUser("bleatingsheep");
        return $"{user.Name} | {user.Performance} PP";
    }
}

About

Osu! C# API Client.

Topics

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages