def get(connection, token, username): if exists(connection, token): sql = "SELECT score FROM users WHERE username = %s" cur = connection.query(sql, (username,)) data = {"score": cur.fetchone()[0]} cur.close() return data else: return False
def info(connection, token, room_id): assert exists(connection, token) sql = "SELECT username, local_score, solved, non_solved FROM turnir_table WHERE room_id = %s" cur = connection.query(sql, (room_id, )) row = cur.fetchall() cur.close() username_data = [] score_data = [] for w in row: username_data.append(w[0]) score_data.append(w[1:]) return {"users_data": username_data, "score_data": score_data}
def info(connection, token): if exists(connection, token): sql = "SELECT id, on_start, capacity, room_name, peer_list FROM rooms WHERE is_over = 0" cur = connection.query(sql) data = [] for row in cur.fetchall(): data.append({"id": row[0], "on_start": row[1], "capacity": row[2], "room_name": row[3], "peer_count": count(row[4])}) cur.close() return data else: return False
def status(connection, token, room_id): if exists(connection, token): sql = "SELECT on_start, capacity, room_name, peer_list FROM rooms WHERE id = %s" cur = connection.query(sql, (room_id, )) row = cur.fetchone() response = { "on_start": row[0], "capacity": row[1], "room_name": row[2], "peer_list": row[3].split(";") } cur.close() return response else: return False
def domino_task(connection, token, room_id): if exists(connection, token): sql = "SELECT domino_id, task_id FROM room_task WHERE room_id = %s" cur = connection.query(sql, (room_id,)) response = cur.fetchall() cur.close() domino_data = [] task_data = [] for w in response: domino_data.append(w[0]) task_data.append(w[1]) return { "dominoes": domino_data, "tasks": task_data } else: return False
def over(connection, token, room_id): assert exists(connection, token) sql = "SELECT time_start, domino_amt FROM rooms WHERE id = %s" cur = connection.query(sql, (room_id, )) row = cur.fetchone() cur.close() if row[1] <= 14: assert int(time()) - row[0] > 14 * 60 elif row[1] > 14: assert int(time()) - row[0] > 28 * 60 sql = "SELECT username FROM turnir_table WHERE room_id = %s" cur = connection.query(sql, (room_id, )) row = cur.fetchall() cur.close() for w in row: sql = "SELECT local_score FROM turnir_table WHERE username = %s AND room_id = %s" cur = connection.query(sql, (w[0], room_id)) ls = cur.fetchone()[0] cur.close() sql = "SELECT score FROM users WHERE username = %s" cur = connection.query(sql, (w[0], )) gs = cur.fetchone()[0] cur.close() sql = "UPDATE users SET score = %s WHERE username = %s" cur = connection.query(sql, (gs + ls, w[0])) cur.close() sql = "UPDATE turnir_table SET local_score = 0, is_over = 1 WHERE room_id = %s" cur1 = connection.query(sql, (room_id, )) sql = "UPDATE room_task SET is_solved = 1 WHERE room_id = %s" cur2 = connection.query(sql, (room_id, )) connection.commit() cur1.close() cur2.close() return True