X-Git-Url: https://git.auder.net/?p=rpsls-web.git;a=blobdiff_plain;f=server.py;h=2f4acff9b6ef3bf846ec9e0a968735089c450a62;hp=61a01aa7f0632c57b8a2e95b21db26b95092fd7e;hb=0d0fffaac02e86dc1bb661aa60a260d3d00d8ae0;hpb=bbb90bbafb330b3eeaf95074859149a50884217e diff --git a/server.py b/server.py index 61a01aa..2f4acff 100644 --- a/server.py +++ b/server.py @@ -1,16 +1,18 @@ import socketio import eventlet import sqlite3 -import re +from re import match as re_match from datetime import date -import os +from os import getenv +from sys import path as sys_path # Create a Socket.IO server (CORS arg required on server, not locally) -sio = socketio.Server() -#sio = socketio.Server(cors_allowed_origins='URL or *') +MODE = getenv('RPSLS_MODE') +allowed_origin = 'https://rpsls.auder.net' if MODE=='production' else '*' +sio = socketio.Server(cors_allowed_origins=allowed_origin) -RPSLS_PATH = './' #edit if launched from elsewhere -DB_PATH = RPSLS_PATH + 'db/rpsls.sqlite' +RPSLS_PATH = sys_path[0] +DB_PATH = RPSLS_PATH + '/db/rpsls.sqlite' searching = {} #someone seeks a game? (uid + sid) connected = {} #map uid --> sid (seek stage) @@ -31,7 +33,7 @@ def disconnect(sid): @sio.event def login(sid, data): """ When user sends name from /login page """ - if not re.match(r"^[a-zA-Z]{3,}$", data): + if not re_match(r"^[a-zA-Z]{3,}$", data): sio.emit("login", {"err": "Name: letters only"}, room=sid) return con = sqlite3.connect(DB_PATH) @@ -91,14 +93,24 @@ def move(sid, data): con.commit() con.close() +@sio.event +def inc_pts(sid, data): + """ Add a point to the player (who won last round) """ + con = sqlite3.connect(DB_PATH) + cur = con.cursor() + cur.execute("update Players set points=points+1 where uid=? and gid=?", + (data["uid"],data["gid"])) + con.commit() + con.close() + static_files = { - '/': RPSLS_PATH + 'index.html', - '/rpsls.js': RPSLS_PATH + 'rpsls.js', - '/favicon.ico': RPSLS_PATH + 'favicon.ico', - '/assets': RPSLS_PATH + 'assets' + '/': RPSLS_PATH + '/index.html', + '/rpsls.js': RPSLS_PATH + '/rpsls.js', + '/favicon.ico': RPSLS_PATH + '/favicon.ico', + '/assets': RPSLS_PATH + '/assets' } -PORT = os.getenv('RPSLS_PORT') +PORT = getenv('RPSLS_PORT') if PORT is None: PORT = "8000" PORT = int(PORT)