From e39a2395d7d5b1490e66316cd46b3f31b787cb37 Mon Sep 17 00:00:00 2001 From: Nathan Fritz Date: Fri, 15 Jan 2010 21:07:28 -0800 Subject: xep 30 and 50 always reply from jid iq sent to --- sleekxmpp/xmlstream/matcher/id.py | 2 +- sleekxmpp/xmlstream/matcher/stanzapath.py | 7 +++++++ sleekxmpp/xmlstream/matcher/xmlmask.py | 1 + sleekxmpp/xmlstream/matcher/xpath.py | 1 + 4 files changed, 10 insertions(+), 1 deletion(-) create mode 100644 sleekxmpp/xmlstream/matcher/stanzapath.py (limited to 'sleekxmpp/xmlstream/matcher') diff --git a/sleekxmpp/xmlstream/matcher/id.py b/sleekxmpp/xmlstream/matcher/id.py index ec7597d4..44fad15c 100644 --- a/sleekxmpp/xmlstream/matcher/id.py +++ b/sleekxmpp/xmlstream/matcher/id.py @@ -3,4 +3,4 @@ from . import base class MatcherId(base.MatcherBase): def match(self, xml): - return xml.get('id') == self._criteria + return xml['id'] == self._criteria diff --git a/sleekxmpp/xmlstream/matcher/stanzapath.py b/sleekxmpp/xmlstream/matcher/stanzapath.py new file mode 100644 index 00000000..d036d0b8 --- /dev/null +++ b/sleekxmpp/xmlstream/matcher/stanzapath.py @@ -0,0 +1,7 @@ +from . import base +from xml.etree import cElementTree + +class StanzaPath(base.MatcherBase): + + def match(self, stanza): + return stanza.match(self._criteria) diff --git a/sleekxmpp/xmlstream/matcher/xmlmask.py b/sleekxmpp/xmlstream/matcher/xmlmask.py index e8e4df02..1cd19644 100644 --- a/sleekxmpp/xmlstream/matcher/xmlmask.py +++ b/sleekxmpp/xmlstream/matcher/xmlmask.py @@ -16,6 +16,7 @@ class MatchXMLMask(base.MatcherBase): self.default_ns = ns def match(self, xml): + xml = xml.xml return self.maskcmp(xml, self._criteria, True) def maskcmp(self, source, maskobj, use_ns=False, default_ns='__no_ns__'): diff --git a/sleekxmpp/xmlstream/matcher/xpath.py b/sleekxmpp/xmlstream/matcher/xpath.py index 060d5df3..5e0411ef 100644 --- a/sleekxmpp/xmlstream/matcher/xpath.py +++ b/sleekxmpp/xmlstream/matcher/xpath.py @@ -6,6 +6,7 @@ ignore_ns = False class MatchXPath(base.MatcherBase): def match(self, xml): + xml = xml.xml x = cElementTree.Element('x') x.append(xml) if not ignore_ns: -- cgit v1.2.3 From 7a9a86af3d2406ef921ae2d5f8ba7e42eeff973d Mon Sep 17 00:00:00 2001 From: Nathan Fritz Date: Fri, 15 Jan 2010 21:36:53 -0800 Subject: fixed matcher bug introduced with stanza matching --- sleekxmpp/xmlstream/matcher/xmlmask.py | 3 ++- sleekxmpp/xmlstream/matcher/xpath.py | 3 ++- 2 files changed, 4 insertions(+), 2 deletions(-) (limited to 'sleekxmpp/xmlstream/matcher') diff --git a/sleekxmpp/xmlstream/matcher/xmlmask.py b/sleekxmpp/xmlstream/matcher/xmlmask.py index 1cd19644..e4a22faa 100644 --- a/sleekxmpp/xmlstream/matcher/xmlmask.py +++ b/sleekxmpp/xmlstream/matcher/xmlmask.py @@ -16,7 +16,8 @@ class MatchXMLMask(base.MatcherBase): self.default_ns = ns def match(self, xml): - xml = xml.xml + if hasattr(xml, 'xml'): + xml = xml.xml return self.maskcmp(xml, self._criteria, True) def maskcmp(self, source, maskobj, use_ns=False, default_ns='__no_ns__'): diff --git a/sleekxmpp/xmlstream/matcher/xpath.py b/sleekxmpp/xmlstream/matcher/xpath.py index 5e0411ef..fe18a655 100644 --- a/sleekxmpp/xmlstream/matcher/xpath.py +++ b/sleekxmpp/xmlstream/matcher/xpath.py @@ -6,7 +6,8 @@ ignore_ns = False class MatchXPath(base.MatcherBase): def match(self, xml): - xml = xml.xml + if hasattr(xml, 'xml'): + xml = xml.xml x = cElementTree.Element('x') x.append(xml) if not ignore_ns: -- cgit v1.2.3