Пример #1
0
 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
Пример #2
0
 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")
Пример #3
0
 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))
Пример #4
0
    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")
Пример #5
0
 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
Пример #6
0
 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