+ try
+ messages = JSON.parse args.messages
+ catch e
+ out.writeHead 400, "Content-Type": 'text/plain'
+ out.end '{"status":4,"text_status":"Invalid JSON"}'
+ return
+
+ # special handling of 'new_game' api, because for this one we don't have a
+ # game object to pass the message to
+ if messages?[0]?[0] is 'new_game'
+ message = messages.shift()
+ slug = message[1]
+ if games[slug]?
+ out.writeHead 403, "Content-Type": 'text/plain'
+ out.end '{"status":6,"text_status":"Game already exists"}'
+ return
+ game = games[slug] = new_game slug, 'server'
+ game.last_seen = now_s()
+ console.log "new game: #{slug}"
+ expire_old_games()
+