import cgitb # import datetime import simplejson cgitb.enable() q = cgi.FieldStorage() levelName = q.getfirst("levelName", "") # artist = verify_id() data = {} worldData = [] levelName = q.getfirst("levelName", "") levels = Level.selectBy(name = levelName) if levels.count() > 0: objs = LevelObject.selectBy(level = levels[0]) for obj in objs: worldData.append({"x": obj.x, "y": obj.y, "width": obj.width, "height": obj.height, "type": obj.type}) data["worldData"] = worldData data["startX"] = levels[0].startX data["startY"] = levels[0].startY data["bgUrl"] = levels[0].bgUrl data["goalUrl"] = levels[0].goalUrl data["tilesetUrl"] = levels[0].tilesetUrl data["musicUrl"] = levels[0].musicUrl print "Content-type: text/html" print print simplejson.dumps(data)
# if level doesn't exist create it: levels = Level.selectBy(name = levelName) if levels.count() > 0: level = levels[0] level.modified = datetime.datetime.now() else: level = Level(name = levelName, creator = player, modified = datetime.datetime.now(), startX = 0, startY = 0) # verify that I am owner of level i.e. allowed to edit: if player == level.creator: # delete all the old ones first!! old = LevelObject.selectBy(level = level) for obj in old: LevelObject.delete(obj.id) data = simplejson.loads(levelData) level.startX = data["startX"] level.startY = data["startY"] level.bgUrl = data["bgUrl"] level.musicUrl = data["musicUrl"] level.goalUrl = data["goalUrl"] level.tilesetUrl = data["tilesetUrl"] for obj in data["worldData"]: l = LevelObject(level = level, type = obj["type"], x = obj["x"], y = obj["y"], width = obj["width"], height = obj["height"]) print "Content-type: text/html"