1
Fork 0
mirror of https://github.com/Steffo99/steamleaderboards.git synced 2024-10-16 06:17:29 +00:00
Retrieve and parse Steam leaderboards
Find a file
2024-05-27 17:11:25 +02:00
.media Update 2024-05-25 03:52:45 +02:00
.vscode Add placement-based limiting 2024-05-26 10:32:21 +02:00
steamleaderboards #1: Make limit accessible via code 2024-05-27 17:11:25 +02:00
.gitignore Ignore sample data/ directory 2024-05-26 10:10:24 +02:00
LICENSE.txt Create package 2019-02-05 21:25:36 +01:00
poetry.lock Update 2024-05-25 03:52:45 +02:00
pyproject.toml Bump version to 1.1.1 2024-05-27 03:55:19 +02:00
README.md Add pypi link 2024-05-25 03:55:51 +02:00

steamleaderboards

Retrieve and parse Steam leaderboards

PyPI

History

It was created with the Isaac Daily Run scoreboards in mind, but it can be used for other games that have a public leaderboard as well.

Usage

In code

To use steamleaderboards, first install it via PyPI:

$ # If you're using pip in a venv on 
$ .venv/bin/pip install steamleaderboards --upgrade
$ # If you're using poetry 
$ poetry add steamleaderboards

Then, create a LeaderboardGroup for the desired game.

import steamleaderboards as sl
lbgroup = sl.LeaderboardGroup(STEAM_APP_ID)

Once you have created the LeaderboardGroup, you can retrieve the desired leaderboards by using the LeaderboardGroup.get method.
You can specify the name, the display name or the id of the leaderboard to retrieve.

leaderboard_a = lbgroup.get(name=LEADERBOARD_NAME)
leaderboard_b = lbgroup.get(lbid=LEADERBOARD_ID)
leaderboard_c = lbgroup.get(display_name=LEADERBOARD_DISPLAY_NAME)

When you have the Leaderboard object, you can find all the entries in the Leaderboard.entries field, or you can search for a specific one through the Leaderboard.find_entry method.

all_scores = leaderboard_a.entries
my_score = leaderboard_a.find_entry(MY_STEAMID_1)
first_place_score = leaderboard_a.find_entry(rank=1)
last_place_score = leaderboard_a.find_entry(rank=-1)

In the terminal

To use steamleaderboards, first install it via PyPI:

$ # Using pipx
$ pipx install steamleaderboards

Then, you can use it to retrieve leaderboards for one or more Steam games via the terminal:

$ steamleaderboards --output_dir="./data" 440

This will download all leaderboards for Team Fortress 2, the game with the app id 440, to the ./data directory.

App ids for games can be found via SteamDB.