42 lines
1.0 KiB
Python
42 lines
1.0 KiB
Python
from flask import Flask, render_template, request
|
|
from flask_socketio import SocketIO, emit, join_room, rooms
|
|
|
|
from src.code import make_code
|
|
from src.game import Game
|
|
|
|
games = {}
|
|
|
|
app = Flask(__name__)
|
|
app.config['SECRET_KEY'] = 'secret!'
|
|
socketio = SocketIO(app, cors_allowed_origins="*")
|
|
|
|
if __name__ == '__main__':
|
|
socketio.run(app)
|
|
|
|
def with_game(listener):
|
|
global games
|
|
room = rooms()[1]
|
|
game = games[room]
|
|
def inner(event, data={}):
|
|
data['game'] = game
|
|
listener(game, data)
|
|
return inner
|
|
|
|
@socketio.on('new-game')
|
|
def on_newgame():
|
|
data = {}
|
|
code = make_code()
|
|
|
|
games[code] = Game(code)
|
|
join_room(code)
|
|
emit('set-code', {'code': code})
|
|
|
|
@socketio.on('contestant-join')
|
|
def on_join_contestant(data):
|
|
sid = request.sid
|
|
signature = data['signature']
|
|
room = data['room']
|
|
join_room(room)
|
|
games[room].add_contestant(sid, signature)
|
|
emit('contestant-joined', {'sid': sid, 'signature': signature }, to=room)
|