コード例 #1
0
ファイル: controller.py プロジェクト: marcelosjrp/pyqtggpo
    def dispatchInbandData(self, seq, data):
        if not seq in self.tcpCommandsWaitingForResponse:
            logdebug().error("Sequence {} data {} not matched".format(seq, data))
            return

        origRequest = self.tcpCommandsWaitingForResponse[seq]
        del self.tcpCommandsWaitingForResponse[seq]

        if origRequest == Protocol.AUTH:
            self.parseAuthResponse(data)
        elif origRequest == Protocol.MOTD:
            self.parseMotdResponse(data)
        elif origRequest == Protocol.LIST_CHANNELS:
            self.parseListChannelsResponse(data)
        elif origRequest == Protocol.LIST_USERS:
            self.parseListUsersResponse(data)
        elif origRequest == Protocol.SPECTATE:
            status, data = Protocol.extractInt(data)
            if status != 0:
                self.sigStatusMessage.emit("Fail to spectate " + str(status))
        elif origRequest in [Protocol.WELCOME, Protocol.JOIN_CHANNEL, Protocol.TOGGLE_AFK,
                             Protocol.SEND_CHALLENGE, Protocol.CHAT, Protocol.ACCEPT_CHALLENGE,
                             Protocol.DECLINE_CHALLENGE, Protocol.CANCEL_CHALLENGE]:
            if len(data) == 4:
                status, data = Protocol.extractInt(data)
                if status != 0:
                    codestr = Protocol.codeToString(origRequest)
                    logdebug().error("{} failed, data {}".format(codestr, repr(data)))
                    self.sigActionFailed.emit(codestr)
            else:
                logdebug().error("Unknown response for {}; seq {}; data {}".format(
                    Protocol.codeToString(origRequest), seq, repr(data)))
        else:
            logdebug().error("Not handling {} response; seq {}; data {}".format(
                Protocol.codeToString(origRequest), seq, repr(data)))
コード例 #2
0
    def dispatchInbandData(self, seq, data):
        if not seq in self.tcpCommandsWaitingForResponse:
            logdebug().error("Sequence {} data {} not matched".format(
                seq, data))
            return

        origRequest = self.tcpCommandsWaitingForResponse[seq]
        del self.tcpCommandsWaitingForResponse[seq]

        if origRequest == Protocol.AUTH:
            self.parseAuthResponse(data)
        elif origRequest == Protocol.MOTD:
            self.parseMotdResponse(data)
        elif origRequest == Protocol.LIST_CHANNELS:
            self.parseListChannelsResponse(data)
        elif origRequest == Protocol.LIST_USERS:
            self.parseListUsersResponse(data)
        elif origRequest == Protocol.SPECTATE:
            status, data = Protocol.extractInt(data)
            if status != 0:
                self.sigStatusMessage.emit("Fail to spectate " + str(status))
        elif origRequest in [
                Protocol.WELCOME, Protocol.JOIN_CHANNEL, Protocol.TOGGLE_AFK,
                Protocol.SEND_CHALLENGE, Protocol.CHAT,
                Protocol.ACCEPT_CHALLENGE, Protocol.DECLINE_CHALLENGE,
                Protocol.CANCEL_CHALLENGE
        ]:
            if len(data) == 4:
                status, data = Protocol.extractInt(data)
                if status != 0:
                    codestr = Protocol.codeToString(origRequest)
                    logdebug().error("{} failed, data {}".format(
                        codestr, repr(data)))
                    if codestr == "SEND_CHALLENGE":
                        self.sigActionFailed.emit("SEND_CHALLENGE failed")
                    elif codestr == "CANCEL_CHALLENGE":
                        pass
                    else:
                        self.sigActionFailed.emit(codestr)
            else:
                logdebug().error(
                    "Unknown response for {}; seq {}; data {}".format(
                        Protocol.codeToString(origRequest), seq, repr(data)))
        else:
            logdebug().error(
                "Not handling {} response; seq {}; data {}".format(
                    Protocol.codeToString(origRequest), seq, repr(data)))
コード例 #3
0
ファイル: controller.py プロジェクト: pond3r/pyqtggpo
 def sendAndRemember(self, command, data=''):
     logdebug().info('Sending {} seq {} {}'.format(Protocol.codeToString(command), self.sequence, repr(data)))
     self.tcpCommandsWaitingForResponse[self.sequence] = command
     self.sendtcp(struct.pack('!I', command) + data)
コード例 #4
0
ファイル: controller.py プロジェクト: pond3r/pyqtggpo
 def sendAndForget(self, command, data=''):
     logdebug().info('Sending {} seq {} {}'.format(Protocol.codeToString(command), self.sequence, repr(data)))
     self.sendtcp(struct.pack('!I', command) + data)
コード例 #5
0
 def sendAndRemember(self, command, data=''):
     logdebug().info('Sending {} seq {} {}'.format(
         Protocol.codeToString(command), self.sequence, repr(data)))
     self.tcpCommandsWaitingForResponse[self.sequence] = command
     self.sendtcp(struct.pack('!I', command) + data)
コード例 #6
0
 def sendAndForget(self, command, data=''):
     logdebug().info('Sending {} seq {} {}'.format(
         Protocol.codeToString(command), self.sequence, repr(data)))
     self.sendtcp(struct.pack('!I', command) + data)
コード例 #7
0
 def sendAndRemember(self, command, data=''):
     with self.sendLock:  # extensions may send messages from separate threads
         logdebug().info('Sending {} seq {} {}'.format(Protocol.codeToString(command), self.sequence, repr(data)))
         self.tcpCommandsWaitingForResponse[self.sequence] = command
         self.sendtcp(struct.pack('!I', command) + data)