Here's my first pass at the architecture for automatch. See github code for details.
- JS browser extension adds an automatch button/UI to the Goko lobby
- User specifies their match criteria: minimum rating, desired sets, etc
- User submits form to begin an Automatch search
- Browser extension looks up player's own details: name, id, sets owned, etc
- Browser extension submits request to third-party automatch server
- HTTP request remains open until a match is found
- Automatch server receives HTTP request
- Tries to match new player with a currently waiting player
- If no immediate match, join list of waiting players
- Responds to request with proposed match
- Broswer extension receives match info via HTTP response
- Asks user whether proposed match is acceptable
- Resubmits modified match request if match declined
- Sends player to Outpost if accepted
- creates table if player is host
- joins table if player is guest
The automatch python code can run on any third party server.
The current version is on port 8080 of gokologs.drunkensailor.org right now. Edit: No longer. I broke it. The current JS script works as a Greasemonkey script in Firefox. It should eventually be incorporated into the extension that nutki and michaeljb are maintaining. Having two independent extension to modifying the same code can cause collisions.