from sleekxmpp.xmlstream.stanzabase import ElementBase, registerStanzaPlugin from sleekxmpp.plugins import base from sleekxmpp.xmlstream.handler.callback import Callback from sleekxmpp.xmlstream.matcher.xpath import MatchXPath from sleekxmpp.stanza.iq import Iq import logging class AliasQuery(ElementBase) : namespace = 'alias:query' name = 'query' plugin_attrib = 'query' interfaces = set(('node', 'type', 'items','object')) sub_interfaces = set(('items')) class AliasPlugin(base.base_plugin) : def plugin_init(self) : self.description = 'Plugin to handle alias queries' registerStanzaPlugin(Iq, AliasQuery) self.xmpp.registerHandler( Callback('Alias queries', MatchXPath('{%s}iq/{%s}query' % (self.xmpp.default_ns, AliasQuery.namespace)), self.handle_alias_query)) def handle_alias_query(self, iq) : iq.reply().send()