Splits I/O is a website similar to Pastebin or GitHub Gist, but for splits generated from speedruns rather than text or code. It's written in Ruby on Rails.
Splits I/O currently supports splits from ShitSplit, Splitty, Llanfair2, FaceSplit, Portal2LiveTimer, LlanfairGered, Llanfair, Urn, LiveSplit, SplitterZ, TimeSplitTracker, WSplit.
For full API documentation, see the API readme.
Splits I/O runs on Docker, which makes it easy and consistent to set up and run on any machine despite any unusual dependencies. The one downside is that you must first install Docker!
- Docker
- Docker Compose (Mac and Windows include this in the Docker install)
The first time you run Splits I/O with Docker is the best, because you'll have time to get a coffee! Yum! After the first run, it will be much quicker (on Linux, docker commands may need to be prefixed with sudo).
docker-compose up
Once the output looks settled, you're good to go! Access localhost:3000 in your browser.
Splits I/O accounts are built on top of Twitch accounts, so if you want sign up / sign in to work, you will need to register a Twitch application at dev.twitch.tv/dashboard. Use this redirect URI when asked:
http://localhost:3000/auth/twitch/callback
Twitch will give you a client ID and a client secret. Open Dockerfile
and find the spots to fill in. Then run
git update-index --skip-worktree Dockerfile # to avoid accidentally committing your changes
docker-compose build
before starting the server again and you're set!
If you're having trouble getting Splits I/O running at all using the above instructions, please make a GitHub issue so we can work it out! Even if you think it's a silly issue, the fact that it's happening to you means we haven't ironed out everything (even if the only thing preventing you from setting up is better documentation!).
If you have the app up and running but are looking for insight into debugging your own changes, you can access a Rails console with
docker-compose run web rails console
To run tests, use
docker-compose run -e RAILS_ENV=test web rspec
If you change the Dockerfile or Gemfile, you'll need to run
docker-compose build
to rebuild the Docker image for your changes to apply.
Split I/O uses livesplit-core for parsing. The parser is located in lib/parser/*
.
To upgrade the parser, simply run bundle exec rake update_lsc
and commit the changes.