def createNew(title, creator, history, layers): kwargs = {"date": datetime.datetime.now(), "title": title, "history_json": history, "layer_json": layers, "creator": creator} newEntry = DrawingHistory(**kwargs) def updateOld(entry, history, layers): entry.date = datetime.datetime.now() entry.history_json = history entry.layer_json = layers cgitb.enable() q = cgi.FieldStorage() history = q.getfirst("history", "") layers = q.getfirst("layers", "") title = q.getfirst("title", "") artist = verify_id() matches = DrawingHistory.selectBy(title = title, creator=artist) if matches.count() > 0: updateOld(matches[0], history, layers) else: createNew(title, artist, history, layers) print "Content-type: text/html" print print "OK, saved"
# NOTE TO SELF how do we prevent people from just posting scores to this # URL that they didn't actually earn? from database_tables import Level, Score from webserver_utils import verify_id import cgi import cgitb import datetime cgitb.enable() q = cgi.FieldStorage() levelName = q.getfirst("levelName", "") completionTime = q.getfirst("completionTime", "") player = verify_id() print "Content-type: text/html" print if (levelName != "" and completionTime != ""): levels = Level.selectBy(name = levelName) if levels.count() > 0: level = levels[0] score = Score(level = level, player = player, completionTime = int(completionTime), achievedOn = datetime.datetime.now()) print "Saved score %d for %s on %s." % (int(completionTime), player.name, level.name) else: