示例#1
0
    def _getEventAndObservers(self, event):
        if isinstance(event, xpath.XPathQuery):
            # Treat as xpath
            observers = self._xpathObservers
        else:
            if self.prefix == event[:len(self.prefix)]:
                # Treat as event
                observers = self._eventObservers
            else:
                # Treat as xpath
                event = xpath.internQuery(event)
                observers = self._xpathObservers

        return event, observers
示例#2
0
    def _getEventAndObservers(self, event):
        if isinstance(event, xpath.XPathQuery):
            # Treat as xpath
            observers = self._xpathObservers
        else:
            if self.prefix == event[: len(self.prefix)]:
                # Treat as event
                observers = self._eventObservers
            else:
                # Treat as xpath
                event = xpath.internQuery(event)
                observers = self._xpathObservers

        return event, observers
示例#3
0
# -*- test-case-name: lib.twisted.words.test.test_jabberclient -*-
#
# Copyright (c) 2001-2009 Twisted Matrix Laboratories.
# See LICENSE for details.

from lib.twisted.internet import defer
from lib.twisted.words.xish import domish, xpath, utility
from lib.twisted.words.protocols.jabber import xmlstream, sasl, error
from lib.twisted.words.protocols.jabber.jid import JID

NS_XMPP_STREAMS = 'urn:ietf:params:xml:ns:xmpp-streams'
NS_XMPP_BIND = 'urn:ietf:params:xml:ns:xmpp-bind'
NS_XMPP_SESSION = 'urn:ietf:params:xml:ns:xmpp-session'
NS_IQ_AUTH_FEATURE = 'http://jabber.org/features/iq-auth'

DigestAuthQry = xpath.internQuery("/iq/query/digest")
PlaintextAuthQry = xpath.internQuery("/iq/query/password")

def basicClientFactory(jid, secret):
	a = BasicAuthenticator(jid, secret)
	return xmlstream.XmlStreamFactory(a)

class IQ(domish.Element):
	"""
	Wrapper for a Info/Query packet.

	This provides the necessary functionality to send IQs and get notified when
	a result comes back. It's a subclass from L{domish.Element}, so you can use
	the standard DOM manipulation calls to add data to the outbound request.

	@type callbacks: L{utility.CallbackList}