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