Merge branch 'develop'

This commit is contained in:
Lance Stout 2013-02-25 09:53:35 -08:00
commit 82bbe5d1a6
8 changed files with 22 additions and 21 deletions

View file

@ -222,7 +222,7 @@ handler function to process registration requests.
self.description = "In-Band Registration" self.description = "In-Band Registration"
self.xep = "0077" self.xep = "0077"
self.xmpp.registerHandler( self.xmpp.register_handler(
Callback('In-Band Registration', Callback('In-Band Registration',
MatchXPath('{%s}iq/{jabber:iq:register}query' % self.xmpp.default_ns), MatchXPath('{%s}iq/{jabber:iq:register}query' % self.xmpp.default_ns),
self.__handleRegistration)) self.__handleRegistration))
@ -601,7 +601,7 @@ with some additional registration fields implemented.
self.form_instructions = "" self.form_instructions = ""
self.backend = UserStore() self.backend = UserStore()
self.xmpp.registerHandler( self.xmpp.register_handler(
Callback('In-Band Registration', Callback('In-Band Registration',
MatchXPath('{%s}iq/{jabber:iq:register}query' % self.xmpp.default_ns), MatchXPath('{%s}iq/{jabber:iq:register}query' % self.xmpp.default_ns),
self.__handleRegistration)) self.__handleRegistration))

View file

@ -51,7 +51,7 @@ class ActionBot(sleekxmpp.ClientXMPP):
# our roster. # our roster.
self.add_event_handler("session_start", self.start) self.add_event_handler("session_start", self.start)
self.registerHandler( self.register_handler(
Callback('Some custom iq', Callback('Some custom iq',
StanzaPath('iq@type=set/action'), StanzaPath('iq@type=set/action'),
self._handle_action)) self._handle_action))

View file

@ -32,15 +32,15 @@ class XEP_0009(BasePlugin):
register_stanza_plugin(RPCQuery, MethodCall) register_stanza_plugin(RPCQuery, MethodCall)
register_stanza_plugin(RPCQuery, MethodResponse) register_stanza_plugin(RPCQuery, MethodResponse)
self.xmpp.registerHandler( self.xmpp.register_handler(
Callback('RPC Call', MatchXPath('{%s}iq/{%s}query/{%s}methodCall' % (self.xmpp.default_ns, RPCQuery.namespace, RPCQuery.namespace)), Callback('RPC Call', MatchXPath('{%s}iq/{%s}query/{%s}methodCall' % (self.xmpp.default_ns, RPCQuery.namespace, RPCQuery.namespace)),
self._handle_method_call) self._handle_method_call)
) )
self.xmpp.registerHandler( self.xmpp.register_handler(
Callback('RPC Call', MatchXPath('{%s}iq/{%s}query/{%s}methodResponse' % (self.xmpp.default_ns, RPCQuery.namespace, RPCQuery.namespace)), Callback('RPC Call', MatchXPath('{%s}iq/{%s}query/{%s}methodResponse' % (self.xmpp.default_ns, RPCQuery.namespace, RPCQuery.namespace)),
self._handle_method_response) self._handle_method_response)
) )
self.xmpp.registerHandler( self.xmpp.register_handler(
Callback('RPC Call', MatchXPath('{%s}iq/{%s}error' % (self.xmpp.default_ns, self.xmpp.default_ns)), Callback('RPC Call', MatchXPath('{%s}iq/{%s}error' % (self.xmpp.default_ns, self.xmpp.default_ns)),
self._handle_error) self._handle_error)
) )

View file

@ -128,9 +128,10 @@ class DiscoItems(ElementBase):
def del_items(self): def del_items(self):
"""Remove all items.""" """Remove all items."""
self._items = set() self._items = set()
for item in self['substanzas']: items = [i for i in self.iterables if isinstance(i, DiscoItem)]
if isinstance(item, DiscoItem): for item in items:
self.xml.remove(item.xml) self.xml.remove(item.xml)
self.iterables.remove(item)
class DiscoItem(ElementBase): class DiscoItem(ElementBase):

View file

@ -125,11 +125,11 @@ class XEP_0045(BasePlugin):
self.xep = '0045' self.xep = '0045'
# load MUC support in presence stanzas # load MUC support in presence stanzas
register_stanza_plugin(Presence, MUCPresence) register_stanza_plugin(Presence, MUCPresence)
self.xmpp.registerHandler(Callback('MUCPresence', MatchXMLMask("<presence xmlns='%s' />" % self.xmpp.default_ns), self.handle_groupchat_presence)) self.xmpp.register_handler(Callback('MUCPresence', MatchXMLMask("<presence xmlns='%s' />" % self.xmpp.default_ns), self.handle_groupchat_presence))
self.xmpp.registerHandler(Callback('MUCMessage', MatchXMLMask("<message xmlns='%s' type='groupchat'><body/></message>" % self.xmpp.default_ns), self.handle_groupchat_message)) self.xmpp.register_handler(Callback('MUCMessage', MatchXMLMask("<message xmlns='%s' type='groupchat'><body/></message>" % self.xmpp.default_ns), self.handle_groupchat_message))
self.xmpp.registerHandler(Callback('MUCSubject', MatchXMLMask("<message xmlns='%s' type='groupchat'><subject/></message>" % self.xmpp.default_ns), self.handle_groupchat_subject)) self.xmpp.register_handler(Callback('MUCSubject', MatchXMLMask("<message xmlns='%s' type='groupchat'><subject/></message>" % self.xmpp.default_ns), self.handle_groupchat_subject))
self.xmpp.registerHandler(Callback('MUCConfig', MatchXMLMask("<message xmlns='%s' type='groupchat'><x xmlns='http://jabber.org/protocol/muc#user'><status/></x></message>" % self.xmpp.default_ns), self.handle_config_change)) self.xmpp.register_handler(Callback('MUCConfig', MatchXMLMask("<message xmlns='%s' type='groupchat'><x xmlns='http://jabber.org/protocol/muc#user'><status/></x></message>" % self.xmpp.default_ns), self.handle_config_change))
self.xmpp.registerHandler(Callback('MUCInvite', MatchXPath("{%s}message/{%s}x/{%s}invite" % ( self.xmpp.register_handler(Callback('MUCInvite', MatchXPath("{%s}message/{%s}x/{%s}invite" % (
self.xmpp.default_ns, self.xmpp.default_ns,
'http://jabber.org/protocol/muc#user', 'http://jabber.org/protocol/muc#user',
'http://jabber.org/protocol/muc#user')), self.handle_groupchat_invite)) 'http://jabber.org/protocol/muc#user')), self.handle_groupchat_invite))

View file

@ -48,7 +48,7 @@ class XEP_0202(BasePlugin):
self.local_time = default_local_time self.local_time = default_local_time
self.xmpp.registerHandler( self.xmpp.register_handler(
Callback('Entity Time', Callback('Entity Time',
StanzaPath('iq/entity_time'), StanzaPath('iq/entity_time'),
self._handle_time_request)) self._handle_time_request))

View file

@ -1015,8 +1015,8 @@ class XMLStream(object):
# and handler classes here. # and handler classes here.
if name is None: if name is None:
name = 'add_handler_%s' % self.getNewId() name = 'add_handler_%s' % self.new_id()
self.registerHandler(XMLCallback(name, MatchXMLMask(mask), pointer, self.register_handler(XMLCallback(name, MatchXMLMask(mask), pointer,
once=disposable, instream=instream)) once=disposable, instream=instream))
def register_handler(self, handler, before=None, after=None): def register_handler(self, handler, before=None, after=None):

View file

@ -21,7 +21,7 @@ class TestHandlers(SleekTest):
"""Test using stream callback handlers.""" """Test using stream callback handlers."""
def callback_handler(stanza): def callback_handler(stanza):
self.xmpp.sendRaw(""" self.xmpp.send_raw("""
<message> <message>
<body>Success!</body> <body>Success!</body>
</message> </message>
@ -31,7 +31,7 @@ class TestHandlers(SleekTest):
MatchXPath('{test}tester'), MatchXPath('{test}tester'),
callback_handler) callback_handler)
self.xmpp.registerHandler(callback) self.xmpp.register_handler(callback)
self.recv("""<tester xmlns="test" />""") self.recv("""<tester xmlns="test" />""")
@ -49,7 +49,7 @@ class TestHandlers(SleekTest):
iq['query'] = 'test' iq['query'] = 'test'
reply = iq.send(block=True) reply = iq.send(block=True)
if reply: if reply:
self.xmpp.sendRaw(""" self.xmpp.send_raw("""
<message> <message>
<body>Successful: %s</body> <body>Successful: %s</body>
</message> </message>
@ -112,7 +112,7 @@ class TestHandlers(SleekTest):
time.sleep(0.1) time.sleep(0.1)
# Check that the waiter is no longer registered # Check that the waiter is no longer registered
waiter_exists = self.xmpp.removeHandler('IqWait_test2') waiter_exists = self.xmpp.remove_handler('IqWait_test2')
self.failUnless(waiter_exists == False, self.failUnless(waiter_exists == False,
"Waiter handler was not removed.") "Waiter handler was not removed.")