Example #1
0
    def testFixNs(self):
        """Test fixing namespaces in an XPath expression."""

        e = ElementBase()
        ns = "http://jabber.org/protocol/disco#items"
        result = e._fix_ns("{%s}foo/bar/{abc}baz/{%s}more" % (ns, ns))

        expected = "/".join(
            ["{%s}foo" % ns,
             "{%s}bar" % ns, "{abc}baz",
             "{%s}more" % ns])
        self.assertTrue(expected == result,
                        "Incorrect namespace fixing result: %s" % str(result))
Example #2
0
 def update_filters(self, matcher):
     if not self.filters:
         messages = self.core_buffer.messages[:]
         self.filtered_buffer.messages = []
         self.core_buffer.del_window(self.text_win)
         self.filtered_buffer.add_window(self.text_win)
     else:
         messages = self.filtered_buffer.messages
         self.filtered_buffer.messages = []
     self.filters.append(matcher)
     new_messages = []
     for msg in messages:
         if self.match_stanza(
                 ElementBase(ET.fromstring(clean_text(msg.txt)))):
             new_messages.append(msg)
     self.filtered_buffer.messages = new_messages
     self.text_win.rebuild_everything(self.filtered_buffer)
     self.gen_filter_repr()
Example #3
0
 def update_filters(self, matcher):
     if not self.filters:
         messages = self.core_buffer.messages[:]
         self.filtered_buffer.messages = []
         self.core_buffer.del_window(self.text_win)
         self.filtered_buffer.add_window(self.text_win)
     else:
         messages = self.filtered_buffer.messages
         self.filtered_buffer.messages = []
     self.filters.append(matcher)
     new_messages = []
     for msg in messages:
         try:
             if msg.txt.strip() and self.match_stanza(ElementBase(ET.fromstring(clean_text(msg.txt)))):
                 new_messages.append(msg)
         except ET.ParseError:
             log.debug('Malformed XML : %s', msg.txt, exc_info=True)
     self.filtered_buffer.messages = new_messages
     self.text_win.rebuild_everything(self.filtered_buffer)
     self.gen_filter_repr()
Example #4
0
def outgoing_stanza(self, stanza):
    """
    We are sending a new stanza, write it in the xml buffer if needed.
    """
    if self.xml_tab:
        if PYGMENTS:
            xhtml_text = highlight('%s' % stanza, LEXER, FORMATTER)
            poezio_colored = xhtml.xhtml_to_poezio_colors(xhtml_text, force=True).rstrip('\x19o').strip()
        else:
            poezio_colored = '%s' % stanza
        self.add_message_to_text_buffer(self.xml_buffer, poezio_colored,
                                        nickname=get_theme().CHAR_XML_OUT)
        try:
            if self.xml_tab.match_stanza(ElementBase(ET.fromstring(stanza))):
                self.add_message_to_text_buffer(self.xml_tab.filtered_buffer, poezio_colored,
                                                nickname=get_theme().CHAR_XML_OUT)
        except:
            log.debug('', exc_info=True)

        if isinstance(self.current_tab(), tabs.XMLTab):
            self.current_tab().refresh()
            self.doupdate()