blob: 5232ff5e42707f97b33125e1c5bc03ef0c358e60 (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
|
from __future__ import absolute_import
from sleekxmpp.xmlstream.matcher.xpath import MatchXPath
class StanzaBase(object):
MATCHER = MatchXPath("")
def __init__(self, stream, xml=None, extensions=[]):
self.extensions = extensions
self.p = {} #plugins
self.xml = xml
self.stream = stream
if xml is not None:
self.fromXML(xml)
def fromXML(self, xml):
"Initialize based on incoming XML"
self._processXML(xml)
for ext in self.extensions:
ext.fromXML(self, xml)
def _processXML(self, xml, cur_ns=''):
if '}' in xml.tag:
ns,tag = xml.tag[1:].split('}')
else:
tag = xml.tag
def toXML(self, xml):
"Set outgoing XML"
def extend(self, extension_class, xml=None):
"Initialize extension"
def match(self, xml):
return self.MATCHER.match(xml)
|