forked from mirror/Riven
1
0
Fork 0
Riot API Library for Rust
 
 
 
Go to file
Mingwei Samuel 3d0b42e31c readme example 2019-11-03 14:36:30 -08:00
src readme example 2019-11-03 14:36:30 -08:00
srcgen move dtos to 'models' module 2019-11-03 10:48:45 -08:00
tests readme example 2019-11-03 14:36:30 -08:00
.gitignore use api key from file (todo? envvar fallback) 2019-10-17 16:56:35 -07:00
.travis.yml adding travis (wip) 2019-11-02 21:25:23 -07:00
Cargo.toml Updating bucket rate limiting system, adding bulk tests 2019-11-02 20:55:07 -07:00
README.md readme example 2019-11-03 14:36:30 -08:00

README.md

Riven

Crates.io Travis CI unsafe forbidden

Rust Library for the Riot Games API.

Rivens's goals are speed, reliability, and maintainability. Riven handles rate limits and large requests with ease. Data structs and endpoints are automatically generated from the Riot API Reference (Swagger).

Riven currently uses nightly Rust.

Features

  • Fast, asynchronous, thread-safe.
  • Automatically retries failed requests.
  • TFT API Support.

Usage

use riven::RiotApi;
use riven::consts::Region;

// Enter tokio async runtime.
let rt = tokio::runtime::Runtime::new().unwrap();
rt.block_on(async {
    // Create RiotApi instance from key.
    let api_key = "RGAPI-01234567-89ab-cdef-0123-456789abcdef";
    # let api_key = std::env::var("RGAPI_KEY").ok().or_else(|| std::fs::read_to_string("apikey.txt").ok()).unwrap();
    let riot_api = RiotApi::with_key(api_key);

    // Get summoner data.
    let summoner = riot_api.summoner_v4()
        .get_by_summoner_name(Region::NA, "잘못").await
        .expect("Get summoner failed.")
        .expect("Summoner not found.");

    // Print summoner name.
    println!("{} Champion Masteries:", summoner.name);

    // Get champion mastery data.
    let masteries = riot_api.champion_mastery_v4()
        .get_all_champion_masteries(Region::NA, &summoner.id).await
        .expect("Get champion masteries failed.")
        .unwrap();

    // Print champioon masteries.
    for (i, mastery) in masteries[..10].iter().enumerate() {
        println!("{: >2}) {: <9}    {: >7} ({})", i + 1,
            mastery.champion_id.to_string(),
            mastery.champion_points, mastery.champion_level);
    }
});

Output:

잘 못 Champion Masteries:
 1) Riven        1219895 (7)
 2) Fiora         229714 (5)
 3) Katarina      175985 (5)
 4) Lee Sin       150546 (7)
 5) Jax           100509 (5)
 6) Gnar           76373 (6)
 7) Kai'Sa         64271 (5)
 8) Caitlyn        46479 (5)
 9) Irelia         46465 (5)
10) Vladimir       37176 (5)