diff --git a/models/f_room.py b/models/f_room.py index 8b985dc0956a3833c25289715543cd8d0f0538fa..3b4e794a31fb98dea473017087c0a7fca9486768 100644 --- a/models/f_room.py +++ b/models/f_room.py @@ -3,14 +3,14 @@ from hashlib import blake2b db.define_table( 'Room', - Field('code', 'string', notnull=True, requires=IS_NOT_EMPTY(), writable=False, unique=True), - Field('hashcode', 'string', notnull=True, requires=IS_NOT_EMPTY(), writable=False), - Field('player_max', 'integer', notnull=True, requires=IS_NOT_EMPTY()), - Field('creation', 'datetime', default=request.now, notnull=True, requires=IS_NOT_EMPTY()), - Field('heartbeat', 'datetime', default=request.now, notnull=True, requires=IS_NOT_EMPTY()) + Field('code', 'string', notnull=True, unique=True), + Field('hashcode', 'string', notnull=True), + Field('player_max', 'integer', notnull=True), + Field('creation', 'datetime', default=request.now, notnull=True), + Field('heartbeat', 'datetime', default=request.now, notnull=True) ) -def generateRoomCode(_record): +def generateRoomCode(): code = None while not code or db(db.Room.code == code).count() > 0: @@ -21,14 +21,11 @@ def generateRoomCode(_record): return(code) -def generateHashCode(_record): - code = "" +def generateHashCode(): digest = blake2b(digest_size=32) - digest.update(_record.code.encode("utf-8")) - digest.update(str(_record.player_max).encode("utf-8")) - digest.update(str(_record.creation).encode("utf-8")) + digest.update(str(request.now).encode("utf-8")) digest.update(str(random.random()).encode("utf-8")) return (digest.hexdigest()) -db.Room.code.compute = generateRoomCode -db.Room.hashcode.compute = generateHashCode +db.Room.code.default = generateRoomCode +db.Room.hashcode.default = generateHashCode