Skip to content

Holistic Python implementation of the public Riot Games Developer API.

License

Notifications You must be signed in to change notification settings

wilhelmagren/gromp

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

🔎 Overview

gromp is a holistic wrapper of the public Riot Games developer API, written in Python. All public methods are, as of 2023-11-10, implemented.

The core principle of the wrapper is to offer a complete, yet simple, interface which implements some of the core functionality that a developer might want to communicate with the Riot Games developer API.

For a full list of all available requests, see each respective endpoint documentation.

🔑 Requirements

  • To perform requests you need an API key from Riot Games, get yours here.

📦 Installation

Either clone this repository and perform a local install with poetry accordingly

git clone https://github.com/wilhelmagren/gromp.git
cd gromp
poetry install

or install the most recent release from the Python Package Index (PyPI).

pip install gromp

🚀 Example usage

Any HTTP errors that are returned by the requested API are propagated and, as of writing this, not handled.

import gromp
from gromp import (
    LeaguePlatforms,
    LeagueRegions,
)

platform = LeaguePlatforms.euw1
region = LeagueRegions.EUROPE
token = '<api-key>'

# Here we setup a hook for League of Legends. We specify platform and region
# to perform all REST requests to, the length of the RSA keys used to encrypt
# our token, and the number of seconds to wait before a timeout.
hook = gromp.hook.League(
    token,
    platform=platform,
    region=region,
    keylen=1024,
    timeout=10,
)

# One of the default handlers parses the HTTP response as a JSON
# dictionary, see all available attributes for the object at the
# Riot Games API documentation https://developer.riotgames.com/apis
summoner = hook.summoner.by_name('1 900 976 JUICE')

# We can also get the summoner if we know the encrypted
# puuid, lets try and see if they are actually the same...
summoner_from_puuid = hook.summoner.by_puuid(summoner['puuid'])

assert summoner == summoner_from_puuid

# Great, we get the same summoner, me. Let's try and get
# some of my played games from the match API endpoint.
matches = hook.match.matchlist_by_puuid(
    summoner['puuid'],
    start=10,
    count=5,
)

assert len(matches) == 5

# Now we can request the match data for all the match id's which we
# got from the previous request. This is unfortunately the only 
# process of getting specific match data... it is rather tedious.
for match_id in matches:
    m = hook.match.by_id(match_id)
    for participant in m['info']['participants']:
        if participant['puuid'] == summoner['puuid']:
            print(participant['win'])

💡 Gromp facts

His real name is Lord Grompulus Kevin Ribbiton of Croaksworth, and he likes to eat small insects, mushrooms, and people (source).

📋 License

All code is to be held under a general MIT license, please see LICENSE for specific information.