コード例 #1
0
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
コード例 #2
0
ファイル: users.py プロジェクト: N18JAVAPROGRAMMING/Backend
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}
コード例 #3
0
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
コード例 #4
0
ファイル: status.py プロジェクト: N18JAVAPROGRAMMING/Backend
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
コード例 #5
0
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
コード例 #6
0
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