Skip to main content

A Python API wrapper for Speedrun.com

Project description

Speedrun API Wrapper

This Python package provides a convenient wrapper for the Speedrun API. It simplifies the process of interacting with the API by offering classes and methods for accessing user, game, run, and various other Speedrun-related data!

If I forgot some API tell me, i'll work on it.

Installation

you can install it using pip:

pip install speedruncomapi

Usage

Importing the Package

from speedruncomapi import User, Game, Run, Region, Platform, Developer, Engine, GameType, Genre, Guest, Leaderboard, Level, Notification, Profile, Publisher, Series, Variables, HiddenAPI

or

import speedruncomapi

which will lead to having to put speedruncomapi before everything like info = speedruncomapi.User.Info(name="username")

User

Get User Information

info = User.Info(name="username")  # or User.Info(ID="user_id")
print(info)

Get Personal Bests

personal_bests = User.PersonalBest(name="username", limit=5)
print(personal_bests)

Get Game ID

game_id = Game.get_game_id("game_id_or_name")
print(game_id)

Get Categories

categories = Game.get_categories("game_id")
print(categories)

Get Category Details

category_details = Game.get_category_details("category_id")
print(category_details)

Get Runs

runs = Run.get_runs(user="username", max_data=10)
print(runs)

Get Run by ID

run = Run.get_run_by_id("run_id")
print(run)

Create Run

new_run = Run.create_run(
    auth_token="your_auth_token",
    category="category_id",
    level="level_id",
    date="YYYY-MM-DD",
    region="region_id",
    platform="platform_id"
)
print(new_run)

Update Run Status

updated_run = Run.update_run_status(
    auth_token="your_auth_token",
    run_id="run_id",
    status="accepted",
    reason="Looks good!"
)
print(updated_run)

Delete Run

deleted_run = Run.delete_run(auth_token="your_auth_token", run_id="run_id")
print(deleted_run)

Region

Get All Regions

regions = Region.get_all_regions()
print(regions)

Get Region by ID

region = Region.get_region_by_id("region_id")
print(region)

Platform

Get All Platforms

platforms = Platform.get_all_platforms()
print(platforms)

Get Platform by ID

platform = Platform.get_platform_by_id("platform_id")
print(platform)

Developer

Get All Developers

developers = Developer.get_all_developers()
print(developers)

Get Developer by ID

developer = Developer.get_developer_by_id("developer_id")
print(developer)

Engine

Get All Engines

engines = Engine.get_all_engines()
print(engines)

Get Engine by ID

engine = Engine.get_engine_by_id("engine_id")
print(engine)

GameType

Get All Game Types

game_types = GameType.get_all_gametypes()
print(game_types)

Get Game Type by ID

game_type = GameType.get_gametype_by_id("gametype_id")
print(game_type)

Genre

Get All Genres

genres = Genre.get_all_genres()
print(genres)

Get Genre by ID

genre = Genre.get_genre_by_id("genre_id")
print(genre)

Guest

Get Guest by Name

guest = Guest.get_guest_by_name("guest_name")
print(guest)

Leaderboard

Get Full Game Leaderboard

leaderboard = Leaderboard.get_full_game_leaderboard("game_id", "category_id")
print(leaderboard)

Get Individual Level Leaderboard

level_leaderboard = Leaderboard.get_individual_level_leaderboard("game_id", "level_id", "category_id")
print(level_leaderboard)

Level

Get Level by ID

level = Level.get_level_by_id("level_id")
print(level)

Get Level Categories

categories = Level.get_level_categories("level_id")
print(categories)

Get Level Variables

variables = Level.get_level_variables("level_id")
print(variables)
Get Level Records
```py

records = Level.get_level_records("level_id")
print(records)

Notification

Get Notifications

notifications = Notification.get_notifications()
print(notifications)

Profile

Get Profile

profile = Profile.get_profile(api_key="your_api_key")
print(profile)
Get Profile Notifications
```py

profile_notifications = Profile.get_notifications(api_key="your_api_key")
print(profile_notifications)

##Publisher Get Publishers

publishers = Publisher.get_publishers()
print(publishers)
Get Publisher by ID
```py

publisher = Publisher.get_publisher("publisher_id")
print(publisher)

Series

Get Series

series = Series.get_series()
print(series)

Get Series by ID

series_by_id = Series.get_series_by_id("series_id")
print(series_by_id)

Get Games in Series

games_in_series = Series.get_games_in_series("series_id")
print(games_in_series)

Variables

Get Variable by ID

variable = Variables.get_variable("variable_id")
print(variable)

Get Variables for Game

variables_for_game = Variables.get_variables_for_game("game_id")
print(variables_for_game)

Get Variables for Category

variables_for_category = Variables.get_variables_for_category("category_id")
print(variables_for_category)

Get Variables for Level

variables_for_level = Variables.get_variables_for_level("level_id")
print(variables_for_level)

HiddenAPI

Send Message

hidden_api = HiddenAPI(csrf_token="your_csrf_token", cookie_session="your_cookie_session")
response = hidden_api.send_message(recipient_ids=["recipient_id"], text="Hello!")
print(response)

Get Conversations

conversations = hidden_api.get_conversations(limit=5)
print(conversations)

Get Conversation Messages

messages = hidden_api.get_conversation_messages(conversation_id="conversation_id", mark_as_read=True)
print(messages)

Get Moderations Runs

moderation_runs = api.get_moderation_runs(
    game_id='game_id_here',
    verified=0,  # 0: unverified, 1: verified, 2: rejected
    page=1,
    limit=20
)
print(moderation_runs)

Contributing

Contributions are welcome! Please fork the repository and submit a pull request with your changes. Ensure that your code adheres to the existing coding style and includes appropriate tests.

License

This project is licensed under the MIT License. See the LICENSE file for details.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

speedruncomapi-0.0.3.tar.gz (8.6 kB view details)

Uploaded Source

Built Distribution

speedruncomapi-0.0.3-py3-none-any.whl (6.8 kB view details)

Uploaded Python 3

File details

Details for the file speedruncomapi-0.0.3.tar.gz.

File metadata

  • Download URL: speedruncomapi-0.0.3.tar.gz
  • Upload date:
  • Size: 8.6 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/4.0.2 CPython/3.11.5

File hashes

Hashes for speedruncomapi-0.0.3.tar.gz
Algorithm Hash digest
SHA256 a2a1692674dcbebca284efc50ff0bb96da6942faf722b854f7b2e8dcd754f563
MD5 d4e48049b5885ee77d19c48f0c78872e
BLAKE2b-256 70d81c98f78393f2865aab1c0c3e90b67ae98bd820cd90cf8fd21a6914df3cf5

See more details on using hashes here.

File details

Details for the file speedruncomapi-0.0.3-py3-none-any.whl.

File metadata

File hashes

Hashes for speedruncomapi-0.0.3-py3-none-any.whl
Algorithm Hash digest
SHA256 e84b9675a9c67689b71d498f11ef4570b21eb476957061c4fb429e41319b45cd
MD5 3076c93a960fb5b44d0d94fa9e84e2f4
BLAKE2b-256 7147049cf2faa66c3245ca636377706101c65e1c70b3fa731063d2d9be89fc92

See more details on using hashes here.

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page