Skip to main content

A Python implementation of the splits.io REST API.

Project description

splitsio

A Python implementation of the splits.io REST API.

splitsio currently supports read-only access. To upload runs, use the REST API directly.

Requires Python 3.7 or greater.

To install: pip3 install splitsio

Then to access the main data types in Python:

from splitsio import *

Usage

Game

Get information about a game

>>> sms = Game.from_id('sms')
>>> sms
Game(id='15', name='Super Mario Sunshine', shortname='sms')
>>> sms.created_at
'2014-04-18T06:28:59.764Z'

NOTE: for games, the identifier for querying is the shortname (here 'sms'), not the numerical id.

Get all games in the database

>>> games = Game.all()  # this can take a minute or so
>>> len(games)
17237
>>> games[0]
Game(id='2206', name='007: Agent Under Fire', shortname='auf')

Search games by name/keyword

>>> mario_games = Game.search('mario')
>>> len(mario_games)
353
>>> mario_games[0]
Game(id='2524', name='Super Mario Advance 4: Super Mario Bros. 3', shortname='sma4')

Category

Get the speedrun categories for a game

>>> oot = Game.from_id('oot')
>>> oot.categories[0]
Category(id='86832', name='No ACE')

Get category from id

>>> no_ace = Category.from_id('86832')
>>> no_ace
Category(id='86832', name='No ACE')

Runner

Get runners for a game or category

>>> oot_runners = Game.from_id('oot').runners()
>>> len(oot_runners)
238
>>> oot_runners[0]
Runner(id='35', twitch_id='31809791', twitch_name='cma2819', display_name='cma2819', name='cma2819')
>>> no_ace_runners = Category.from_id('86832').runners()
>>> no_ace_runners[0]
Runner(id='32189', twitch_id='63370787', twitch_name='bigmikey_', display_name='bigmikey_', name='bigmikey_')

Get runner from id

>>> bigmikey = Runner.from_id('bigmikey_')
>>> bigmikey
Runner(id='32189', twitch_id='63370787', twitch_name='bigmikey_', display_name='bigmikey_', name='bigmikey_')

NOTE: for runners, the identifier for querying is the name all lowercased (here 'bigmikey_'), not the numerical id.

Run

Get runs for a game, category, or runner

>>> oot_runs = Game.from_id('oot').runs()
>>> run = oot_runs[0]
>>> run.realtime_duration_ms
1507300
>>> run.program
'livesplit'
>>> run.attempts
97
>>> len(Category.from_id('86832').runs())
11
>>> len(Runner.from_id('bigmikey_').runs())
2

Get attempt histories for a run and its segments

>>> run = Game.from_id('oot').runs()[0]
>>> run = Run.from_id(run.id, historic = True)
>>> len(run.histories)
90
>>> run.histories[1]
History(attempt_number=89, realtime_duration_ms=1507300, gametime_duration_ms=None, started_at='2020-03-10T20:06:08.000Z', ended_at='2020-03-10T20:31:15.000Z')
>>> run.segments[0].name
'Sword Get'
>>> len(run.segments[0].histories)
67
>>> run.segments[0].histories[0]
History(attempt_number=2, realtime_duration_ms=271832, gametime_duration_ms=0, started_at=None, ended_at=None)

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

splitsio-0.1.0.tar.gz (21.2 kB view details)

Uploaded Source

Built Distribution

splitsio-0.1.0-py3-none-any.whl (21.7 kB view details)

Uploaded Python 3

File details

Details for the file splitsio-0.1.0.tar.gz.

File metadata

  • Download URL: splitsio-0.1.0.tar.gz
  • Upload date:
  • Size: 21.2 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: poetry/1.0.3 CPython/3.7.4 Darwin/17.7.0

File hashes

Hashes for splitsio-0.1.0.tar.gz
Algorithm Hash digest
SHA256 ac1bae52c6f233dd6f52ec85e63c32d5e0f80272581095967aaf76ef0d681aaa
MD5 b7a0970453400cf5614f878e92e797b8
BLAKE2b-256 91c4b0aadd9ced8d22c0ab4739fdba6932d7bbdf0af58da1d5c7cdc35922fde2

See more details on using hashes here.

File details

Details for the file splitsio-0.1.0-py3-none-any.whl.

File metadata

  • Download URL: splitsio-0.1.0-py3-none-any.whl
  • Upload date:
  • Size: 21.7 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: poetry/1.0.3 CPython/3.7.4 Darwin/17.7.0

File hashes

Hashes for splitsio-0.1.0-py3-none-any.whl
Algorithm Hash digest
SHA256 52dd52b7d4443b7d957a241fba10efc46a69dd5ace6e95619f014899d811de0f
MD5 e8fcfeb3e69cd401e20804aa79134a2e
BLAKE2b-256 0544c485f81dfc7417dce2a64a2304f80f3e6a7e41f57b840eb7fcffe58f7fc3

See more details on using hashes here.

Supported by

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