Made first pass at cleaning BaseXMPP.

Have not intregrated the new JID class yet.
This commit is contained in:
Lance Stout
2010-10-01 22:24:19 -04:00
parent 433c147627
commit 9f0baec7b2
4 changed files with 538 additions and 239 deletions

View File

@@ -8,7 +8,7 @@
See the file LICENSE for copying permission.
"""
from __future__ import absolute_import
from . basexmpp import basexmpp
from . basexmpp import BaseXMPP
from xml.etree import cElementTree as ET
from . xmlstream.xmlstream import XMLStream
@@ -39,12 +39,11 @@ class ComponentXMPP(basexmpp, XMLStream):
"""SleekXMPP's client class. Use only for good, not evil."""
def __init__(self, jid, secret, host, port, plugin_config = {}, plugin_whitelist=[], use_jc_ns=False):
XMLStream.__init__(self)
if use_jc_ns:
self.default_ns = 'jabber:client'
default_ns = 'jabber:client'
else:
self.default_ns = 'jabber:component:accept'
basexmpp.__init__(self)
default_ns = 'jabber:component:accept'
BaseXMPP.__init__(self, default_ns)
self.auto_authorize = None
self.stream_header = "<stream:stream xmlns='jabber:component:accept' xmlns:stream='http://etherx.jabber.org/streams' to='%s'>" % jid
self.stream_footer = "</stream:stream>"
@@ -54,17 +53,7 @@ class ComponentXMPP(basexmpp, XMLStream):
self.secret = secret
self.is_component = True
self.registerHandler(Callback('Handshake', MatchXPath('{jabber:component:accept}handshake'), self._handleHandshake))
def __getitem__(self, key):
if key in self.plugin:
return self.plugin[key]
else:
logging.warning("""Plugin "%s" is not loaded.""" % key)
return False
def get(self, key, default):
return self.plugin.get(key, default)
def incoming_filter(self, xmlobj):
if xmlobj.tag.startswith('{jabber:client}'):
xmlobj.tag = xmlobj.tag.replace('jabber:client', self.default_ns)
@@ -80,10 +69,10 @@ class ComponentXMPP(basexmpp, XMLStream):
else:
handshake.text = hashlib.sha1(bytes("%s%s" % (sid, self.secret), 'utf-8')).hexdigest().lower()
self.sendXML(handshake)
def _handleHandshake(self, xml):
self.event("session_start")
def connect(self):
logging.debug("Connecting to %s:%s" % (self.server_host, self.server_port))
return xmlstreammod.XMLStream.connect(self, self.server_host, self.server_port)