MingweiSamuel.Camille 1.3.0

Riot Games API library. Fully rate limited, automatic retrying, thread-safe.

There is a newer version of this package available.
See the version list below for details.
Install-Package MingweiSamuel.Camille -Version 1.3.0
dotnet add package MingweiSamuel.Camille --version 1.3.0
<PackageReference Include="MingweiSamuel.Camille" Version="1.3.0" />
For projects that support PackageReference, copy this XML node into the project file to reference the package.
paket add MingweiSamuel.Camille --version 1.3.0
The NuGet Team does not provide support for this client. Please contact its maintainers for support.

Camille

AppVeyor branch NuGet Stable NuGet Pre Release

C# Library for the Riot Games API

Camille's goals are speed and reliability. Camille handles rate limits and large requests seamlessly. Data classes are automatically generated from the Riot API Reference (Swagger).

Features

  • Fast, asynchronous, thread-safe
  • Automatically retries failed requests
  • Highly-configurable
  • Targets .NET Standard 1.1+ (.NET Core 1.0+, .NET Framework 4.5+)

Installation

Install via NuGet (MingweiSamuel.Camille).

Usage

All API interactions are done using a RiotApi instance.
RiotApi.NewInstance takes either just an API key (for default settings) or a IRiotApiConfig instance (for custom settings).

var riotApi = RiotApi.NewInstance("RGAPI-12345678-abcd-1234-abcd-123456abcdef");
var riotApi = RiotApi.NewInstance(
    new RiotApiConfig.Builder("RGAPI-12345678-abcd-1234-abcd-123456abcdef")
    {
        MaxConcurrentRequests = 200,
        Retries = 10,
        // ...
    }.Build()
);

API methods are divided up into respective endpoints, corresponding to the left bar of the API reference.

Examples

Print Summoner's Top Champions
// Get champion static data (for champion names).
// Note the LolStaticData endpoints have very low rate limits (10/hr).
var champs = riotApi.LolStaticData.GetChampionList(Region.NA, dataById: true).Data;

// Get summoners by name synchronously. (using async is faster).
var summoners = new[]
{
    riotApi.Summoner.GetBySummonerName(Region.NA, "c9 sneaky"),
    riotApi.Summoner.GetBySummonerName(Region.NA, "double LIFT")
};

foreach (var summoner in summoners)
{
    Console.WriteLine($"{summoner.Name}'s Top 10 Champs:");

    var masteries =
        riotApi.ChampionMastery.GetAllChampionMasteries(Region.NA, summoner.Id);

    for (var i = 0; i < 10; i++)
    {
        var mastery = masteries[i];
        // Get champion for this mastery.
        var champ = champs[mastery.ChampionId.ToString()];
        // print i, champ name, champ mastery points, and champ level
        Console.WriteLine("{0,3}) {1,-16} {2,7} ({3})", i + 1, champ.Name,
            mastery.ChampionPoints, mastery.ChampionLevel);
    }
    Console.WriteLine();
}

Output (2017-01-18):

C9 Sneaky's Top 10 Champs:
  1) Jhin             268,866 (7)
  2) Lucian           195,541 (7)
  3) Ezreal           146,950 (7)
  4) Ashe             144,269 (7)
  5) Caitlyn          139,390 (7)
  6) Sivir             84,331 (7)
  7) Twitch            82,702 (7)
  8) Vayne             80,733 (7)
  9) Tristana          75,150 (6)
 10) Miss Fortune      70,757 (7)

Doublelift's Top 10 Champs:
  1) Jhin             126,291 (7)
  2) Caitlyn           97,410 (7)
  3) Vayne             79,420 (7)
  4) Lucian            77,254 (7)
  5) Kalista           43,572 (5)
  6) Ashe              36,408 (7)
  7) Ezreal            35,754 (6)
  8) Twitch            33,169 (6)
  9) Kog'Maw           22,459 (5)
 10) Tristana          20,582 (4)
 

Camille

AppVeyor branch NuGet Stable NuGet Pre Release

C# Library for the Riot Games API

Camille's goals are speed and reliability. Camille handles rate limits and large requests seamlessly. Data classes are automatically generated from the Riot API Reference (Swagger).

Features

  • Fast, asynchronous, thread-safe
  • Automatically retries failed requests
  • Highly-configurable
  • Targets .NET Standard 1.1+ (.NET Core 1.0+, .NET Framework 4.5+)

Installation

Install via NuGet (MingweiSamuel.Camille).

Usage

All API interactions are done using a RiotApi instance.
RiotApi.NewInstance takes either just an API key (for default settings) or a IRiotApiConfig instance (for custom settings).

var riotApi = RiotApi.NewInstance("RGAPI-12345678-abcd-1234-abcd-123456abcdef");
var riotApi = RiotApi.NewInstance(
    new RiotApiConfig.Builder("RGAPI-12345678-abcd-1234-abcd-123456abcdef")
    {
        MaxConcurrentRequests = 200,
        Retries = 10,
        // ...
    }.Build()
);

API methods are divided up into respective endpoints, corresponding to the left bar of the API reference.

Examples

Print Summoner's Top Champions
// Get champion static data (for champion names).
// Note the LolStaticData endpoints have very low rate limits (10/hr).
var champs = riotApi.LolStaticData.GetChampionList(Region.NA, dataById: true).Data;

// Get summoners by name synchronously. (using async is faster).
var summoners = new[]
{
    riotApi.Summoner.GetBySummonerName(Region.NA, "c9 sneaky"),
    riotApi.Summoner.GetBySummonerName(Region.NA, "double LIFT")
};

foreach (var summoner in summoners)
{
    Console.WriteLine($"{summoner.Name}'s Top 10 Champs:");

    var masteries =
        riotApi.ChampionMastery.GetAllChampionMasteries(Region.NA, summoner.Id);

    for (var i = 0; i < 10; i++)
    {
        var mastery = masteries[i];
        // Get champion for this mastery.
        var champ = champs[mastery.ChampionId.ToString()];
        // print i, champ name, champ mastery points, and champ level
        Console.WriteLine("{0,3}) {1,-16} {2,7} ({3})", i + 1, champ.Name,
            mastery.ChampionPoints, mastery.ChampionLevel);
    }
    Console.WriteLine();
}

Output (2017-01-18):

C9 Sneaky's Top 10 Champs:
  1) Jhin             268,866 (7)
  2) Lucian           195,541 (7)
  3) Ezreal           146,950 (7)
  4) Ashe             144,269 (7)
  5) Caitlyn          139,390 (7)
  6) Sivir             84,331 (7)
  7) Twitch            82,702 (7)
  8) Vayne             80,733 (7)
  9) Tristana          75,150 (6)
 10) Miss Fortune      70,757 (7)

Doublelift's Top 10 Champs:
  1) Jhin             126,291 (7)
  2) Caitlyn           97,410 (7)
  3) Vayne             79,420 (7)
  4) Lucian            77,254 (7)
  5) Kalista           43,572 (5)
  6) Ashe              36,408 (7)
  7) Ezreal            35,754 (6)
  8) Twitch            33,169 (6)
  9) Kog'Maw           22,459 (5)
 10) Tristana          20,582 (4)
 

Release Notes

Adding CancellationTokens

NuGet packages

This package is not used by any NuGet packages.

GitHub repositories

This package is not used by any popular GitHub repositories.

Version History

Version Downloads Last updated
2.7.1-nightly-2020-09-19-31... 38 9/19/2020
2.7.0 44 9/17/2020
2.6.4-nightly-2020-09-16-7b... 93 9/16/2020
2.6.4-nightly-2020-09-15-7b... 84 9/15/2020
2.6.3 74 9/2/2020
2.6.3-nightly-2020-09-02-7b... 82 9/2/2020
2.6.3-nightly-2020-09-01-7b... 57 9/1/2020
2.6.3-nightly-2020-08-27-b7... 84 8/27/2020
2.6.2 86 8/25/2020
2.6.2-nightly-2020-08-04-43... 38 8/4/2020
2.6.2-nightly-2020-07-31-43... 69 7/31/2020
2.6.2-nightly-2020-07-30-43... 83 7/30/2020
2.6.2-nightly-2020-07-27-43... 46 7/27/2020
2.6.2-nightly-2020-07-24-43... 41 7/24/2020
2.6.2-nightly-2020-07-23-43... 52 7/23/2020
2.6.1 200 7/23/2020
2.6.1-nightly-2020-07-17-42... 100 7/17/2020
2.6.1-nightly-2020-07-14-42... 53 7/14/2020
2.6.0 45 7/12/2020
2.5.3-nightly-2020-07-12-42... 46 7/12/2020
2.5.3-nightly-2020-05-12-d1... 67 5/12/2020
2.5.3-nightly-2020-05-11-3a... 55 5/11/2020
2.5.3-nightly-2020-04-16-41... 72 5/5/2020
2.5.2 219 5/4/2020
2.5.2-nightly-2020-04-16-41... 73 4/17/2020
2.5.2-nightly-2020-04-14-da... 66 4/16/2020
2.5.1 95 4/14/2020
2.5.0 112 4/13/2020
2.4.2-nightly-2020-04-14-da... 74 4/14/2020
2.4.2-nightly-2020-02-18-01... 149 2/18/2020
2.4.2-nightly-2020-02-12-1e... 112 2/12/2020
2.4.1 245 11/5/2019
2.4.1-nightly-2019-11-05-d3... 101 11/5/2019
2.4.0 99 10/31/2019
2.3.1-nightly-2019-10-31-7f... 99 10/31/2019
2.3.1-nightly-2019-10-16-f4... 101 10/17/2019
2.3.1-nightly-2019-10-11-0b... 114 10/12/2019
2.3.0 155 10/11/2019
2.2.3-nightly-2019-10-08-e3... 112 10/10/2019
2.2.3-nightly-2019-09-27-64... 114 9/27/2019
2.2.3-nightly-2019-08-29-43... 120 8/30/2019
2.2.2 205 8/29/2019
2.2.2-nightly-2019-08-14-2d... 135 8/14/2019
2.2.2-nightly-2019-08-05-2e... 133 8/5/2019
2.2.2-nightly-2019-07-09-07... 169 7/9/2019
2.2.1 187 7/2/2019
2.2.1-nightly-2019-07-02-c9... 133 7/2/2019
2.2.1-nightly-2019-05-23-29... 162 5/23/2019
2.2.0 338 2/7/2019
2.2.0-nightly-2019-04-08-4d... 177 4/8/2019
2.2.0-nightly-2019-03-08-2d... 191 3/8/2019
2.2.0-nightly-2019-03-05-f6... 185 3/5/2019
2.2.0-nightly-2019-02-19-13... 181 2/19/2019
2.1.0 208 1/27/2019
2.0.0 231 12/16/2018
2.0.0-nightly-2019-01-17-9f... 227 1/17/2019
2.0.0-alpha-nightly-2018-12... 166 12/16/2018
2.0.0-alpha-nightly-2018-12... 178 12/16/2018
1.3.0 422 7/14/2018
1.3.0-nightly-2018-07-14-7c... 403 7/14/2018
1.2.0 354 6/2/2018
1.2.0-nightly-2018-07-14-b1... 342 7/14/2018
1.2.0-nightly-2018-06-06-2c... 354 6/6/2018
1.2.0-nightly-2018-06-06-28... 369 6/6/2018
1.2.0-nightly-2018-06-02-98... 331 6/3/2018
1.1.0 401 2/27/2018
1.1.0-nightly-2018-06-02-17... 316 6/2/2018
1.1.0-nightly-2018-02-23-7e... 384 2/23/2018
1.0.1 391 2/8/2018
1.0.1-nightly-2018-02-16-b9... 378 2/16/2018
1.0.1-nightly-2018-02-15-13... 379 2/15/2018
1.0.1-nightly-2018-02-14-46... 371 2/14/2018
1.0.1-nightly-2018-02-08-97... 372 2/8/2018
1.0.0 387 1/16/2018
1.0.0-nightly-b24c77881a 349 1/16/2018
1.0.0-nightly-986e3393a4 370 1/18/2018
1.0.0-nightly-2018-02-08-f0... 395 2/8/2018
Show less