Example #1
0
    def get(self, gid):

        players = Game.get_by_id(gid).players_as_dict()

        tvars = {'players': players}
        template = jinja_environment.get_template('/templates/table.html')

        self.response.headers['Content/Type'] = 'text/html'
        self.response.out.write(template.render(tvars))
Example #2
0
    def get(self, gid):

        game = Game.get_by_id(gid)

        pid = self.request.get('player_id')
        if not pid:
            return

        player = Player.get_by_id(pid)
        if not player:
            return

        self.response.headers['Content/Type'] = 'application/json'

        if player:
            self.response.out.write(json.dumps(game.gamestatus_as_dict(player)))
Example #3
0
    def post(self, gid):

        game = Game.get_by_id(gid)
        if not game:
            return

        pid = self.request.get('player_id')
        act = self.request.get('action')
        val = self.request.get('value')


        if pid:
            player = Player.get_by_id(pid)

        if player:
            player.do_action(game, act, val)
Example #4
0
    def post(self, gid):

        sub_player = json.loads(self.request.get('player'))

        # Make sure input is valid
        keys = ('name',
                'id',
                'tokens')

        if not all(key in sub_player for key in keys):
            self.senderror()
            return

        # Check if the game exists
        this_game = Game.get_by_id(gid)
        if not this_game:
            self.senderror()
            return

        # Check if player ID is taken
        player = Player.get_by_id(sub_player['id'])
        if player:
            self.senderror()
            return

        # Store the new player in the datastore
        new_player = Player(id=sub_player['id'],
                            name = sub_player['name'],
                            tokens = int(sub_player['tokens']),
                            a_url = sub_player['avatar_url'],
                            cards_vis = sub_player['cards_visible'],
                            cards_inv = sub_player['cards_not_visible'],
                            sync = 4)
        pkey = new_player.put()

        if not pkey:
            self.senderror()
            return

        this_game.p_cur += 1
        this_game.players.append(pkey)
        this_game.put()

        # Send response
        self.response.headers['Content/Type'] = 'text/plain'
        self.response.out.write('ok')