import base64 db.define_table( 'Player', Field('room_id', db.Room, notnull=True), Field('hashcode', 'string', notnull=True), Field('name', 'string', notnull=True), Field('role', 'string', default="idle"), Field('role_next', 'string', default="idle"), Field('prompts', 'text', default=base64.standard_b64encode(b'[]'), notnull=True), Field('inputs', 'text', default=base64.standard_b64encode(b'[]'), notnull=True), Field('input_max', 'integer', default=0, notnull=True), Field('submit_done', 'boolean', default=False), Field('creation', 'datetime', default=request.now, notnull=True) ) def generateHashCode(): digest = blake2b(digest_size=32) digest.update(str(request.now).encode("utf-8")) digest.update(str(random.random()).encode("utf-8")) return (digest.hexdigest()) db.Player.hashcode.default = generateHashCode