Beispiel #1
0
    def post( self ):
        
        ## Make sure the user is logged in
        if not self.user:
            self.redirect( "/login" )
            return

        cancel = self.request.get( "cancel" )
        gameid = self.request.get( "gameid" )
        
        ## If the user hit "cancel" then refresh the board
        if cancel:
            self._cancel_move( gameid )
            return
        else:
            ## Retrieve this game from the database
            game = GameView( gameid = gameid )
            
            if game:
                
                ## Grab the move
                row = self.request.get( "row" )
                col = self.request.get( "col" )
                
                try:
                    game.update_game( user = self.user, row = int( row ), col = int( col ) )
                except WrongTurnException as e:
                    self.render( "/play?gameid=%s" % gameid, error = e.message )
                    return
                
                ## Send email to opponent telling them it's their turn
                player1_name = User.get_user_name( game.player1 )
                player2 = User.by_id( game.player2 )
                
                if player2.email and player2.move_emails:
                    HexEmail.sendMoveNotice( player2.email, player1_name )
                
                ## Redirect to homepage
                self.redirect( "/home" )
            else:
                logging.error( "That's not a valid game" )
                self.redirect( "/" )