Esempio n. 1
0
 def _finish_message(self, data):
     self.data.append(data)
     message = "".join(self.data)
     logging.debug("Presence: %r", message)
     xml = xml2list(message)[0]
     # logging.debug(xml)
     self.client.presence_cb(xml)
     self.client.read_next()  # give control back to the client
Esempio n. 2
0
    def handle(self, data, content=None):
        if data.endswith("/>"):
            logging.debug("Presence: %r", data)
            xml = xml2list(data)[0]
            # logging.debug(xml)
            self.client.presence_cb(xml)
            return True
        else:
            self.data = [data]
        if content:
            self.data.append(content)

        self.client.read_until("</presence>", self._finish_message)
Esempio n. 3
0
    def _finish_message(self, data):
        for_id = re.findall(r'id="(.*?)"', self.data[0])[0]
        self.data.append(data)
        message = "".join(self.data)
        logging.debug("IQ: %r", message)

        # if we have a match
        if for_id in self._handlers:
            callback = self._handlers.pop(for_id)
            xml = xml2list(message)[0]
            # logging.debug(xml)
            callback(xml)

        self.client.read_next()  # give control back to the client