Exemple #1
0
class JJB9:
    def __init__(self):
        self.h = Helpers()
        self.board = [[' ' for x in range(15)] for x in range(15)]
        self.staticTiles = [[0 for x in range(15)] for x in range(15)]

    def getLetterPoints(self, ruleset):
        assert(self.cookie != None)
        url         = "http://game03.wordfeud.com/wf/tile_points/%s/" % ruleset
        messageJSON = "{}"

        response = self.h.doPost(url, self.cookie, messageJSON)
        response = json.loads(response.read())
        self.h.setLetterPoints(response['content']['tile_points'])

        self.h.debug(response)

    def setStaticTiles(self, number):
        assert(self.cookie != None)
        url         = "http://game03.wordfeud.com/wf/board/%s/" % number
        messageJSON = "{}"

        response = self.h.doPost(url, self.cookie, messageJSON)
        response = json.loads(response.read())
        self.staticTiles = response['content']['board']
        self.h.debug(response)

    def sendMessage(self, game, message):
        assert(self.cookie != None)
        url         = "http://game03.wordfeud.com/wf/game/%s/chat/send/" % game
        messageJSON = "{\"message\": \"%s\"}" % message

        response = self.h.doPost(url, self.cookie, messageJSON)
        self.h.debug(response.read())
    
    """
    Returns a list of games
    """
    def getGames(self):
        assert(self.cookie != None)
        url         = "http://game03.wordfeud.com/wf/user/games/"
        message     = ""
        response    = self.h.doPost(url, self.cookie, message).read()
        return json.loads(response)['content']['games']

    def getGame(self, game):
        assert(self.cookie != None)
        url         = "http://game06.wordfeud.com/wf/game/%s/" % game
        message     = ""
        response    = self.h.doPost(url, self.cookie, message)
        response    = response.read()
        js          = json.loads(response)
        content     = js['content']['game']
        board       = content['tiles']
        staticTiles = content['board']
        ruleSet     = content['ruleset']
       
        self.setStaticTiles(staticTiles)
        self.getLetterPoints(ruleSet)
        self.buildBoard(board)
        self.h.printBoard(self.board)

        return response

    def buildBoard(self, newBoard):
        for w in newBoard:
            self.board[w[1]][w[0]] = w[2]

    def playPieces(self, game, moves):
        assert(self.cookie != None)
        words = self.h.getWords(moves, self.board)
        url         = "http://game06.wordfeud.com/wf/game/%s/move/" % game
        message     = { 'words'     : words,
                        'ruleset'   : 4,
                        'move'      : moves }
        message = json.dumps(message)
        self.h.debug(message)
        response    = self.h.doPost(url, self.cookie, message)
        return response.read()


    # Sets proper member variables on successful login, throws exception on failed 
    # login.
    def login(self, email, password):
        url = "http://game03.wordfeud.com/wf/user/login/email/"
        data = "{\"password\": \"%s\",\
                 \"email\": \"%s\"}" % (password, email)
        response = self.h.doPost(url, {}, data)
        dictedResponse = json.loads(response.read())
        if (dictedResponse['status'] == 'success'):
            cookie = self.h.getCookie(response.info().headers)
            self.cookie     = {"Cookie" : "%s=%s" % (cookie[0],cookie[1])}
            content         = dictedResponse['content']
            self.uid        = content['id']
            self.username   = content['username']
            self.email      = content['email']
            self.h.debug(self.cookie)
            self.h.debug(dictedResponse)
            self.h.debug(self.uid)
        else:
            raise Exception("Login failed: %s" % dictedResponse)