glacials / splits-io

a speedrunning data store and analysis engine
https://splits.io
GNU Affero General Public License v3.0
132 stars 26 forks source link

Splits for Mega Man 2 don't have twitch "Auto-highlight"? #806

Open nictuku opened 2 years ago

nictuku commented 2 years ago

See: https://splits.io/953s

For some reason that split doesn't give me the "Auto-highlight on Twitch" option, which I love <3.

I suspect it might be because Mega Man 2 is not on speedrun.com, for historical reasons, but in megamanleaderboards.net

See https://www.speedrun.com/mega_man/thread/dtpsq for a long and sad history. I believe it's unlikely that SRC is ever going to have all Mega Man games listed because of the above history.

Is there an easy way to at least get the "Auto-highlight on Twitch" button working in this case?

(I'm wondering if it's possible to create the game in the splits.io database manually, and if that would be sufficient to fix the problem)

glacials commented 2 years ago

There's no technical reason we need to know the game to autohighlight other than suggesting a title, so if that's stopping us then I consider that a bug on its own.

For the game not existing: we actually create a Game every time a run is uploaded whose game we haven't seen yet, but our game URL route uses the speedrun.com shortname (e.g. "sm64") so without that association there won't be a page and the game won't show up in search results -- we'll basically pretend it doesn't exist in the UI, but internally we still associate all those runs with the same Game.

We tried opening the floodgates on this before but it clogged search results with typos, meme game names, and almost-matches (e.g. "Mario 64"). To allow all the new results to be navigated to, we also allowed the /games/:game route to accept either a shortname or an ID, but that quickly hit issues with games like 2048.

A good middle ground may be to continue not showing non-shortnamed games in search (or maybe add an admin-toggled flag to Game to show it even if not shortnamed), but add a new route that specifically accepts a game ID so these games can have pages.

Marenthyu commented 2 years ago

I think the point of the route accepting either a name, shorthand or ID could be alleviated in a similar vein Twitch does it, by utilizing Query Parameters.

As an example, on top of the existing /game/:game: route, /game?id=1234, /game?short=rebirth2 and /game?query=Hyperdimension%20Neptunia%20Re%3BBirth2%3A%20Sister%27s%20Generation could be made to be supported.

glacials commented 2 years ago

Yeah that's also an option, but IMO makes the URL uglier and less permanent-feeling in exchange for some minor backend simplicity, which is a trade I'd rather not make.

I just looked and it turns out we actually do accept game IDs in the existing route, but oddly only for games on speedrun.com. I don't recall why this is, but considering it hasn't caught on fire and it makes the change very easy, I think we can start with just allowing that behavior for all games and see what happens.