ylorant / splitty

Tiny speedrun timer made in HTML5 and Javascript
MIT License
25 stars 6 forks source link

Allow importing from other timers #8

Open ylorant opened 7 years ago

ylorant commented 7 years ago

Allow to import timers from other timers such as Livesplit.

thejoshwolfe commented 7 years ago

Is there any formal documentation for the other split file formats? I tried looking at an example from splits.io, and they support downloading splits in these formats:

It wouldn't be too hard to take a guess at the file formats, since they seem pretty simple, but that approach will inevitably lead to weird bugs where certain file imports don't work.

CryZe commented 7 years ago

Here's the LiveSplit implementations for all those formats: https://github.com/LiveSplit/LiveSplit/tree/master/LiveSplit/LiveSplit.Core/Model/RunFactories

shouldn't be too hard to understand how the formats work

thejoshwolfe commented 7 years ago

@CryZe sounds like there's no formal documentation then? People are just watching each other and trying to keep up? That's kinda what I expected, but I just wanted to be sure I understood the ecosystem here.

I'm guessing that no one is really thinking too hard about semver, and not thinking about making breaking changes to their file formats. So in summary, most timer software doesn't care if other timer software can import their file format. Is that your perspective on the ecosystem?

CryZe commented 7 years ago

LiveSplit is the only one that does some kind of versioning, but it's not really semver. But yeah there's no documentation for any of them.

ylorant commented 7 years ago

That's what I thought too, I expected to have to study each timer's split format to do imports, and track modifications to that. And for the ability to import them, I thought about just asking the user for the format instead of trying to guess it (at least at the beginning).

Also, that conversation between you 2 made me think about getting some kind of update track (and backwards compatibility) with older formats from my own timer when I update it. This is a thing I'm usually bad at.