def post(self, author, plando): user = users.get_current_user() if user: dispname = user.email().partition("@")[0] if dispname == author: id = author + ":" + plando seedLines = self.request.POST["seed"] desc = self.request.POST["desc"] old_name = paramVal(self, "old_name") if old_name: old_seed = Seed.get_by_id("%s:%s" % (author, old_name)) else: old_seed = Seed.get_by_id("%s:%s" % (author, plando)) seed = Seed.from_plando(seedLines.split("!"), author, plando, desc) if old_seed: seed.hidden = old_seed.hidden res = seed.put() if res and old_name and old_name != plando: if not old_seed: log.error( "couldn't find old seed when trying to rename!") else: old_seed.key.delete() self.response.headers['Content-Type'] = 'text/plain' self.response.status = 200 self.response.out.write(res) else: log.error( "Auth failed, logged in as %s, trying to edit %s's seed" % (dispname, author)) self.response.status = 401 else: log.error("no auth D:") self.response.status = 401
def get(self, author, plando): owner = False user = users.get_current_user() if user: dispname = user.email().partition("@")[0] owner = dispname == author id = author + ":" + plando seed = Seed.get_by_id(id) if seed: gid = paramVal(self, "gid") pid = paramVal(self, "pid") syncFlag = "Sync%s.%s" % (gid, pid) self.response.status = 200 self.response.headers[ 'Content-Type'] = 'application/x-gzip' if not debug else 'text/plain' self.response.headers[ 'Content-Disposition'] = 'attachment; filename=randomizer.dat' if not debug else "" seedlines = seed.to_lines(player=int(pid), extraFlags=[syncFlag]) rand = Random() rand.seed(seed.name) flagline = seedlines.pop(0) rand.shuffle(seedlines) seedlines.insert(0, flagline) self.response.out.write("\n".join(seedlines)) else: self.response.status = 404 self.response.headers['Content-Type'] = 'text/plain' self.response.out.write("seed not found")
def get(self, author, plando): path = os.path.join(os.path.dirname(__file__), 'map/build/index.html') template_values = { 'app': "plandoBuilder", 'title': "Plandomizer Editor " + PLANDO_VER, 'seed_name': plando } owner = False user = users.get_current_user() if user: dispname = user.email().partition("@")[0] owner = dispname == author id = author + ":" + plando if not owner: self.redirect('/login') else: seed = Seed.get_by_id(id) template_values['user'] = dispname template_values['authed'] = "True" if seed: template_values['seed_desc'] = seed.description template_values['seed_hidden'] = seed.hidden or False template_values['seed_data'] = "\n".join( seed.to_plando_lines()) self.response.out.write(template.render(path, template_values))
def get(self, author, plando): user = users.get_current_user() dispname = "Guest" if user: dispname = user.email().partition("@")[0] id = author + ":" + plando seed = Seed.get_by_id(id) if seed: hidden = seed.hidden or False if not (hidden and dispname != author): self.response.status = 200 self.response.headers['Content-Type'] = 'text/html' path = os.path.join(os.path.dirname(__file__), 'map/build/index.html') template_values = { 'app': "seedDisplay", 'title': "%s by %s" % (plando, author), 'players': seed.players, 'seed_data': seed.to_lines()[0], 'seed_name': plando, 'author': author, 'authed': True, 'seed_desc': seed.description, 'user': dispname, 'game_id': Game.get_open_gid() } if hidden: template_values['seed_hidden'] = True self.response.out.write(template.render(path, template_values)) return self.response.status = 404 self.response.headers['Content-Type'] = 'text/plain' self.response.out.write("seed not found")
def get(self, author, old_name, new_name): user = users.get_current_user() if user: dispname = user.email().partition("@")[0] if dispname == author: old_seed = Seed.get_by_id("%s:%s" % (author, old_name)) if not old_seed: log.error("couldn't find old seed when trying to rename!") self.response.status = 404 return new_seed = clone_entity(old_seed, id="%s:%s" % (author, new_name), name=new_name) if new_seed.put(): if not paramFlag(self, "cp"): old_seed.key.delete() self.redirect('/plando/%s/%s' % (author, new_name)) else: log.error("Failed to rename seed") self.response.status = 500 else: log.error( "Auth failed, logged in as %s, trying to edit %s's seed" % (dispname, author)) self.response.status = 401 else: log.error("no auth D:") self.response.status = 401
def get(self, author, seed_name): user = users.get_current_user() if user: dispname = user.email().partition("@")[0] if dispname == author: seed = Seed.get_by_id("%s:%s" % (author, seed_name)) if seed: seed.key.delete() self.redirect('/plando/%s' % author) else: log.error("couldn't find seed!") self.response.status = 404 else: log.error( "Auth failed, logged in as %s, trying to edit %s's seed" % (dispname, author)) self.response.status = 401 else: log.error("no auth D:") self.response.status = 401