示例#1
0
    def parseStateChangesResponse(self, data):
        count, data = Protocol.extractInt(data)
        while count > 0 and len(data) >= 4:
            state, p1, p2, playerinfo, data = self.__class__.extractStateChangesResponse(data)
            if state == PlayerStates.PLAYING:
                self.parsePlayerStartGameResponse(p1, p2, playerinfo)
		if self.username == p1:
			self.playingagainst = p2
		if self.username == p2:
			self.playingagainst = p1
                if Settings.USER_LOG_PLAYHISTORY and self.username in [p1, p2]:
                    loguser().info(u"[IN A GAME] {} vs {}".format(p1, p2))
            elif state == PlayerStates.AVAILABLE:
                self.parsePlayerAvailableResponse(p1, playerinfo)
                if self.playingagainst == p1:
                    self.playingagainst = ''
                    self.killEmulator()
            elif state == PlayerStates.AFK:
                self.parsePlayerAFKResponse(p1, playerinfo)
                if self.playingagainst == p1:
                    self.playingagainst = ''
                    self.killEmulator()
            elif state == PlayerStates.QUIT:
                self.parsePlayerLeftResponse(p1)
            else:
                logdebug().error(
                    "Unknown state change payload state: {} {}".format(state, repr(data)))
            if state == PlayerStates.PLAYING:
                msg = p1 + ' ' + PlayerStates.codeToString(state) + ' ' + p2
            else:
                msg = p1 + ' ' + PlayerStates.codeToString(state)
            logdebug().info(msg)
            count -= 1
        if len(data) > 0:
            logdebug().error("stateChangesResponse, remaining data {}".format(repr(data)))
示例#2
0
 def parseStateChangesResponse(self, data):
     count, data = Protocol.extractInt(data)
     while count > 0 and len(data) >= 4:
         state, p1, p2, playerinfo, data = self.__class__.extractStateChangesResponse(
             data)
         if state == PlayerStates.PLAYING:
             self.parsePlayerStartGameResponse(p1, p2, playerinfo)
             if Settings.USER_LOG_PLAYHISTORY and self.username in [p1, p2]:
                 loguser().info(u"[IN A GAME] {} vs {}".format(p1, p2))
         elif state == PlayerStates.AVAILABLE:
             self.parsePlayerAvailableResponse(p1, playerinfo)
         elif state == PlayerStates.AFK:
             self.parsePlayerAFKResponse(p1, playerinfo)
         elif state == PlayerStates.QUIT:
             self.parsePlayerLeftResponse(p1)
         else:
             logdebug().error(
                 "Unknown state change payload state: {} {}".format(
                     state, repr(data)))
         if state == PlayerStates.PLAYING:
             msg = p1 + ' ' + PlayerStates.codeToString(state) + ' ' + p2
         else:
             msg = p1 + ' ' + PlayerStates.codeToString(state)
         logdebug().info(msg)
         count -= 1
     if len(data) > 0:
         logdebug().error("stateChangesResponse, remaining data {}".format(
             repr(data)))
示例#3
0
 def parseChatResponse(self, data):
     name, data = Protocol.extractTLV(data)
     if name in self.ignored:
         return
     msg, data = Protocol.extractTLV(data)
     try:
         msg = msg.decode('utf-8')
     except ValueError:
         msg = msg
     if Settings.USER_LOG_CHAT:
         loguser().info(u"<{}> {}".format(name, msg))
     self.sigChatReceived.emit(name, msg)
示例#4
0
 def parseChatResponse(self, data):
     name, data = Protocol.extractTLV(data)
     if name in self.ignored:
         return
     msg, data = Protocol.extractTLV(data)
     try:
         msg = msg.decode('utf-8')
     except ValueError:
         msg = msg
     if Settings.value(Settings.USER_LOG_CHAT):
         loguser().info(u"<{}> {}".format(name, msg))
     self.sigChatReceived.emit(name, msg)
示例#5
0
    def parseChatResponse(self, data):
        name, data = Protocol.extractTLV(data)
        if name in self.ignored:
            return
        msg, data = Protocol.extractTLV(data)

        if hasattr(name, 'decode'):
            name = name.decode()
        if hasattr(msg, 'decode'):
            msg = msg.decode()

        if Settings.value(Settings.USER_LOG_CHAT):
            loguser().info(u"<{}> {}".format(name, msg))
        self.sigChatReceived.emit(name, msg)