init commit
This commit is contained in:
parent
9c11d244c9
commit
a8578c02f1
2
.gitignore
vendored
Normal file
2
.gitignore
vendored
Normal file
@ -0,0 +1,2 @@
|
|||||||
|
env/
|
||||||
|
*.pyc
|
3
pyproject.toml
Normal file
3
pyproject.toml
Normal file
@ -0,0 +1,3 @@
|
|||||||
|
[build-system]
|
||||||
|
requires = ["hatchling"]
|
||||||
|
build-backend = "hatchling.build"
|
11
requirements.txt
Normal file
11
requirements.txt
Normal file
@ -0,0 +1,11 @@
|
|||||||
|
bidict==0.22.1
|
||||||
|
click==8.1.3
|
||||||
|
colorama==0.4.6
|
||||||
|
Flask==2.2.2
|
||||||
|
Flask-SocketIO==5.3.2
|
||||||
|
itsdangerous==2.1.2
|
||||||
|
Jinja2==3.1.2
|
||||||
|
MarkupSafe==2.1.2
|
||||||
|
python-engineio==4.3.4
|
||||||
|
python-socketio==5.7.2
|
||||||
|
Werkzeug==2.2.2
|
41
src/__init__.py
Normal file
41
src/__init__.py
Normal file
@ -0,0 +1,41 @@
|
|||||||
|
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)
|
6
src/code.py
Normal file
6
src/code.py
Normal file
@ -0,0 +1,6 @@
|
|||||||
|
import uuid
|
||||||
|
|
||||||
|
def make_code():
|
||||||
|
code = uuid.uuid1().hex[:6]
|
||||||
|
return code
|
||||||
|
|
13
src/game.py
Normal file
13
src/game.py
Normal file
@ -0,0 +1,13 @@
|
|||||||
|
class Game:
|
||||||
|
def __init__(self, code):
|
||||||
|
self.code = code
|
||||||
|
self.locked = True
|
||||||
|
self.players = {}
|
||||||
|
def add_contestant(self, sid, signature):
|
||||||
|
self.players[sid] = Contestant(signature)
|
||||||
|
|
||||||
|
class Contestant:
|
||||||
|
def __init__(self, signature):
|
||||||
|
self.signature = signature
|
||||||
|
self.points = 0
|
||||||
|
|
Loading…
Reference in New Issue
Block a user