12 releases (4 breaking)

0.5.3 Sep 18, 2024
0.5.2 Sep 18, 2024
0.4.0 Sep 18, 2024
0.3.3 Sep 14, 2024
0.1.1 Sep 2, 2024

#812 in Web programming

Download history 325/week @ 2024-09-02 438/week @ 2024-09-09 564/week @ 2024-09-16 56/week @ 2024-09-23 16/week @ 2024-09-30

106 downloads per month
Used in trustfall-pandascore-adap…

MIT license

91KB
2K SLoC

pandascore License: MIT pandascore on crates.io pandascore on docs.rs Source Code Repository

Rust client for the PandaScore API.

Currently only supports the free tier of the API.

Features

  • “All Video Games” endpoints
    • Incidents
    • Leagues
    • Lives
    • Matches
    • Players
    • Series
    • Teams
    • Tournaments
    • Video Games
  • “League of Legends” endpoints
    • Champions
    • Games
    • Items
    • Leagues
    • Mastery
    • Stats
    • Matches
    • Stats
    • Players
    • Series
    • Teams
    • Spells
    • Tournaments
  • “Call of Duty” endpoints
  • “Counter Strike” endpoints
  • “Dota 2” endpoints
  • “EA Sports FC” endpoints
  • “LOL Wild Rift” endpoints
  • “Mobile Legends: Bang Bang” endpoints
  • “OverWatch” endpoints
  • “PUBG” endpoints
  • “Rainbow Six Siege” endpoints
  • “Rocket League” endpoints
  • “Valorant” endpoints
  • “King of Glory” endpoints
  • “StarCraft 2” endpoints
  • “StarCraft Brood War” endpoints

Examples

To search for a league by name:

use anyhow::Context;
use pandascore::{
    endpoint::{all::leagues::ListLeagues, CollectionOptions},
    Client,
};

#[tokio::main]
async fn main() -> anyhow::Result<()> {
    let token = std::env::var("PANDASCORE_TOKEN").context("PANDASCORE_TOKEN missing")?;
    let search = std::env::args().nth(1).unwrap_or_else(|| "LCK".to_owned());

    let list_leagues = ListLeagues(CollectionOptions::new().search("name", search));

    let client = Client::new(reqwest::Client::new(), token)?;
    let response = client.execute(list_leagues).await?;
    println!("{:#?}", response);

    Ok(())
}

To get a player by ID or name:

use anyhow::Context;
use pandascore::{endpoint::all::players::GetPlayer, model::Identifier, Client};

#[tokio::main]
async fn main() -> anyhow::Result<()> {
    let token = std::env::var("PANDASCORE_TOKEN").context("PANDASCORE_TOKEN missing")?;
    let arg = std::env::args()
        .nth(1)
        .unwrap_or_else(|| "faker".to_owned());

    let get_player = match arg.parse::<u64>() {
        Ok(id) => GetPlayer(Identifier::Id(id)),
        Err(_) => GetPlayer(Identifier::Slug(&arg)),
    };

    let client = Client::new(reqwest::Client::new(), token)?;
    let response = client.execute(get_player).await?;
    println!("{:#?}", response);

    Ok(())
}

Dependencies

~10–22MB
~320K SLoC