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)))
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)))
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)
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)
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)