-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathacceptLevelData.py
More file actions
executable file
·54 lines (41 loc) · 1.83 KB
/
acceptLevelData.py
File metadata and controls
executable file
·54 lines (41 loc) · 1.83 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
#!/usr/bin/python
import sqlite3, cgi, cgitb
from Crypto.PublicKey import RSA
from base64 import b64decode
fOpen = open('/srv/maze/private.pem', 'r')
privateKey = fOpen.read()
rsakey = RSA.importKey(privateKey)
def decrypt(decryptThis):
raw_cipher_data = b64decode(decryptThis)
return unicode(rsakey.decrypt(raw_cipher_data))
dbName = "gameData"
db = sqlite3.connect('/srv/sqlite/data/' + dbName)
cursor = db.cursor()
# Create instance of FieldStorage
levelForm = cgi.FieldStorage()
userName = decrypt(levelForm.getvalue('userName'))
currentLevel = int(decrypt(levelForm.getvalue('currentLevel')))
trackCount = int(decrypt(levelForm.getvalue('trackCount')))
crashCount = int(decrypt(levelForm.getvalue('crashCount')))
stepCount = int(decrypt(levelForm.getvalue('stepCount')))
timeElapsed = float(decrypt(levelForm.getvalue('timeElapsed')))
totalEchoes = int(decrypt(levelForm.getvalue('totalEchoes')))
startTime = decrypt(levelForm.getvalue('startTime'))
endTime = decrypt(levelForm.getvalue('endTime'))
exitAttempts = decrypt(levelForm.getvalue('exitAttempts'))
asciiLevelRep = (levelForm.getvalue('asciiLevelRep')) #decrypt
levelRecord = levelForm.getvalue('levelRecord')
cursor.execute('''INSERT INTO LevelData(userName, currentLevel, trackCount,
crashCount, stepCount, timeElapsed, totalEchoes, startTime, endTime, exitAttempts, asciiLevelRep,
levelRecord, dateTimeStamp)
VALUES(?,?,?,?,?,?,?,?,?,?,?,?,CURRENT_TIMESTAMP)''', (userName,
currentLevel, trackCount, crashCount, stepCount, timeElapsed, crashCount, startTime,
endTime, exitAttempts, asciiLevelRep, levelRecord))
db.commit() #changes are committed to database
db.close()
print "Content-type:text/json\r\n\r\n"
print "{",
keys = levelForm.keys()
for key in keys:
print key, ":\"", levelForm[key].value, "\"", ",",
print "}"