mirror of
https://github.com/correl/SleekXMPP.git
synced 2024-11-24 03:00:15 +00:00
37 lines
790 B
Python
37 lines
790 B
Python
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)
|