BaseXMPP¶
-
class
sleekxmpp.basexmpp.
BaseXMPP
(jid='', default_ns='jabber:client', **kwargs)[source]¶ The BaseXMPP class adapts the generic XMLStream class for use with XMPP. It also provides a plugin mechanism to easily extend and add support for new XMPP features.
Parameters: default_ns – Ensure that the correct default XML namespace is used during initialization. -
api
= None¶ The API registry is a way to process callbacks based on JID+node combinations. Each callback in the registry is marked with:
- An API name, e.g. xep_0030
- The name of an action, e.g. get_info
- The JID that will be affected
- The node that will be affected
API handlers with no JID or node will act as global handlers, while those with a JID and no node will service all nodes for a JID, and handlers with both a JID and node will be used only for that specific combination. The handler that provides the most specificity will be used.
Auto accept or deny subscription requests.
If
True
, auto accept subscription requests. IfFalse
, auto deny subscription requests. IfNone
, don’t automatically respond.
-
auto_subscribe
¶ Auto send requests for mutual subscriptions.
If
True
, auto send mutual subscription requests.
-
boundjid
= None¶ The JabberID (JID) used by this connection, as set after session binding. This may even be a different bare JID than what was requested.
-
client_roster
= None¶ The single roster for the bound JID. This is the equivalent of:
self.roster[self.boundjid.bare]
-
exception
(exception)[source]¶ Process any uncaught exceptions, notably
IqError
andIqTimeout
exceptions.Parameters: exception – An unhandled Exception
object.
-
fulljid
¶ Attribute accessor for full jid
-
is_component
= None¶ The distinction between clients and components can be important, primarily for choosing how to handle the
'to'
and'from'
JIDs of stanzas.
-
jid
¶ Attribute accessor for bare jid
-
makeIq
(id=0, ifrom=None, ito=None, itype=None, iquery=None)¶ Create a new Iq stanza with a given Id and from JID.
Parameters:
-
makeIqError
(id, type='cancel', condition='feature-not-implemented', text=None, ito=None, ifrom=None, iq=None)¶ Create an
Iq
stanza of type'error'
.Parameters: - id – An ideally unique ID value. May use
new_id()
. - type – The type of the error, such as
'cancel'
or'modify'
. Defaults to'cancel'
. - condition – The error condition. Defaults to
'feature-not-implemented'
. - text – A message describing the cause of the error.
- ito – The destination
JID
for this stanza. - ifrom – The
'from'
JID
to use for this stanza. - iq – Optionally use an existing stanza instead of generating a new one.
- id – An ideally unique ID value. May use
-
makeIqGet
(queryxmlns=None, ito=None, ifrom=None, iq=None)¶ Create an
Iq
stanza of type'get'
.Optionally, a query element may be added.
Parameters:
-
makeIqQuery
(iq=None, xmlns='', ito=None, ifrom=None)¶ Create or modify an
Iq
stanza to use the given query namespace.Parameters:
-
makeIqResult
(id=None, ito=None, ifrom=None, iq=None)¶ Create an
Iq
stanza of type'result'
with the given ID value.Parameters:
-
makeIqSet
(sub=None, ito=None, ifrom=None, iq=None)¶ Create an
Iq
stanza of type'set'
.Optionally, a substanza may be given to use as the stanza’s payload.
Parameters: - sub – Either an
ElementBase
stanza object or anElement
XML object to use as theIq
’s payload. - ito – The destination
JID
for this stanza. - ifrom – The
'from'
JID
to use for this stanza. - iq – Optionally use an existing stanza instead of generating a new one.
- sub – Either an
-
makeMessage
(mto, mbody=None, msubject=None, mtype=None, mhtml=None, mfrom=None, mnick=None)¶ Create and initialize a new
Message
stanza.Parameters: - mto – The recipient of the message.
- mbody – The main contents of the message.
- msubject – Optional subject for the message.
- mtype – The message’s type, such as
'chat'
or'groupchat'
. - mhtml – Optional HTML body content in the form of a string.
- mfrom – The sender of the message. if sending from a client, be aware that some servers require that the full JID of the sender be used.
- mnick – Optional nickname of the sender.
-
makePresence
(pshow=None, pstatus=None, ppriority=None, pto=None, ptype=None, pfrom=None, pnick=None)¶ Create and initialize a new
Presence
stanza.Parameters: - pshow – The presence’s show value.
- pstatus – The presence’s status message.
- ppriority – This connection’s priority.
- pto – The recipient of a directed presence.
- ptype – The type of presence, such as
'subscribe'
. - pfrom – The sender of the presence.
- pnick – Optional nickname of the presence’s sender.
-
makeQueryRoster
(iq=None)¶ Create a roster query element.
Parameters: iq – Optionally use an existing stanza instead of generating a new one.
-
make_iq
(id=0, ifrom=None, ito=None, itype=None, iquery=None)[source]¶ Create a new Iq stanza with a given Id and from JID.
Parameters:
-
make_iq_error
(id, type='cancel', condition='feature-not-implemented', text=None, ito=None, ifrom=None, iq=None)[source]¶ Create an
Iq
stanza of type'error'
.Parameters: - id – An ideally unique ID value. May use
new_id()
. - type – The type of the error, such as
'cancel'
or'modify'
. Defaults to'cancel'
. - condition – The error condition. Defaults to
'feature-not-implemented'
. - text – A message describing the cause of the error.
- ito – The destination
JID
for this stanza. - ifrom – The
'from'
JID
to use for this stanza. - iq – Optionally use an existing stanza instead of generating a new one.
- id – An ideally unique ID value. May use
-
make_iq_get
(queryxmlns=None, ito=None, ifrom=None, iq=None)[source]¶ Create an
Iq
stanza of type'get'
.Optionally, a query element may be added.
Parameters:
-
make_iq_query
(iq=None, xmlns='', ito=None, ifrom=None)[source]¶ Create or modify an
Iq
stanza to use the given query namespace.Parameters:
-
make_iq_result
(id=None, ito=None, ifrom=None, iq=None)[source]¶ Create an
Iq
stanza of type'result'
with the given ID value.Parameters:
-
make_iq_set
(sub=None, ito=None, ifrom=None, iq=None)[source]¶ Create an
Iq
stanza of type'set'
.Optionally, a substanza may be given to use as the stanza’s payload.
Parameters: - sub – Either an
ElementBase
stanza object or anElement
XML object to use as theIq
’s payload. - ito – The destination
JID
for this stanza. - ifrom – The
'from'
JID
to use for this stanza. - iq – Optionally use an existing stanza instead of generating a new one.
- sub – Either an
-
make_message
(mto, mbody=None, msubject=None, mtype=None, mhtml=None, mfrom=None, mnick=None)[source]¶ Create and initialize a new
Message
stanza.Parameters: - mto – The recipient of the message.
- mbody – The main contents of the message.
- msubject – Optional subject for the message.
- mtype – The message’s type, such as
'chat'
or'groupchat'
. - mhtml – Optional HTML body content in the form of a string.
- mfrom – The sender of the message. if sending from a client, be aware that some servers require that the full JID of the sender be used.
- mnick – Optional nickname of the sender.
-
make_presence
(pshow=None, pstatus=None, ppriority=None, pto=None, ptype=None, pfrom=None, pnick=None)[source]¶ Create and initialize a new
Presence
stanza.Parameters: - pshow – The presence’s show value.
- pstatus – The presence’s status message.
- ppriority – This connection’s priority.
- pto – The recipient of a directed presence.
- ptype – The type of presence, such as
'subscribe'
. - pfrom – The sender of the presence.
- pnick – Optional nickname of the presence’s sender.
-
make_query_roster
(iq=None)[source]¶ Create a roster query element.
Parameters: iq – Optionally use an existing stanza instead of generating a new one.
-
max_redirects
= None¶ The maximum number of consecutive see-other-host redirections that will be followed before quitting.
-
plugin
= None¶ A dictionary mapping plugin names to plugins.
-
plugin_config
= None¶ Configuration options for whitelisted plugins. If a plugin is registered without any configuration, and there is an entry here, it will be used.
-
plugin_whitelist
= None¶ A list of plugins that will be loaded if
register_plugins()
is called.
-
process
(*args, **kwargs)[source]¶ Initialize plugins and begin processing the XML stream.
The number of threads used for processing stream events is determined by
HANDLER_THREADS
.Parameters: - block (bool) – If
False
, then event dispatcher will run in a separate thread, allowing for the stream to be used in the background for another application. Otherwise,process(block=True)
blocks the current thread. Defaults toFalse
. - threaded (bool) – DEPRECATED
If
True
, then event dispatcher will run in a separate thread, allowing for the stream to be used in the background for another application. Defaults toTrue
. This does not mean that no threads are used at all ifthreaded=False
.
Regardless of these threading options, these threads will always exist:
- The event queue processor
- The send queue processor
- The scheduler
- block (bool) – If
-
registerPlugin
(plugin, pconfig=None, module=None)¶ Register and configure a plugin for use in this stream.
Parameters: - plugin – The name of the plugin class. Plugin names must be unique.
- pconfig – A dictionary of configuration data for the plugin. Defaults to an empty dictionary.
- module – Optional refence to the module containing the plugin class if using custom plugins.
-
register_plugin
(plugin, pconfig=None, module=None)[source]¶ Register and configure a plugin for use in this stream.
Parameters: - plugin – The name of the plugin class. Plugin names must be unique.
- pconfig – A dictionary of configuration data for the plugin. Defaults to an empty dictionary.
- module – Optional refence to the module containing the plugin class if using custom plugins.
-
register_plugins
()[source]¶ Register and initialize all built-in plugins.
Optionally, the list of plugins loaded may be limited to those contained in
plugin_whitelist
.Plugin configurations stored in
plugin_config
will be used.
-
requested_jid
= None¶ The JabberID (JID) requested for this connection.
-
resource
¶ Attribute accessor for jid resource
-
roster
= None¶ The main roster object. This roster supports multiple owner JIDs, as in the case for components. For clients which only have a single JID, see
client_roster
.
-
sendMessage
(mto, mbody, msubject=None, mtype=None, mhtml=None, mfrom=None, mnick=None)¶ Create, initialize, and send a new
Message
stanza.Parameters: - mto – The recipient of the message.
- mbody – The main contents of the message.
- msubject – Optional subject for the message.
- mtype – The message’s type, such as
'chat'
or'groupchat'
. - mhtml – Optional HTML body content in the form of a string.
- mfrom – The sender of the message. if sending from a client, be aware that some servers require that the full JID of the sender be used.
- mnick – Optional nickname of the sender.
-
sendPresence
(pshow=None, pstatus=None, ppriority=None, pto=None, pfrom=None, ptype=None, pnick=None)¶ Create, initialize, and send a new
Presence
stanza.Parameters: - pshow – The presence’s show value.
- pstatus – The presence’s status message.
- ppriority – This connection’s priority.
- pto – The recipient of a directed presence.
- ptype – The type of presence, such as
'subscribe'
. - pfrom – The sender of the presence.
- pnick – Optional nickname of the presence’s sender.
-
sendPresenceSubscription
(pto, pfrom=None, ptype='subscribe', pnick=None)¶ Create, initialize, and send a new
Presence
stanza of type'subscribe'
.Parameters: - pto – The recipient of a directed presence.
- pfrom – The sender of the presence.
- ptype – The type of presence, such as
'subscribe'
. - pnick – Optional nickname of the presence’s sender.
-
send_message
(mto, mbody, msubject=None, mtype=None, mhtml=None, mfrom=None, mnick=None)[source]¶ Create, initialize, and send a new
Message
stanza.Parameters: - mto – The recipient of the message.
- mbody – The main contents of the message.
- msubject – Optional subject for the message.
- mtype – The message’s type, such as
'chat'
or'groupchat'
. - mhtml – Optional HTML body content in the form of a string.
- mfrom – The sender of the message. if sending from a client, be aware that some servers require that the full JID of the sender be used.
- mnick – Optional nickname of the sender.
-
send_presence
(pshow=None, pstatus=None, ppriority=None, pto=None, pfrom=None, ptype=None, pnick=None)[source]¶ Create, initialize, and send a new
Presence
stanza.Parameters: - pshow – The presence’s show value.
- pstatus – The presence’s status message.
- ppriority – This connection’s priority.
- pto – The recipient of a directed presence.
- ptype – The type of presence, such as
'subscribe'
. - pfrom – The sender of the presence.
- pnick – Optional nickname of the presence’s sender.
-
send_presence_subscription
(pto, pfrom=None, ptype='subscribe', pnick=None)[source]¶ Create, initialize, and send a new
Presence
stanza of type'subscribe'
.Parameters: - pto – The recipient of a directed presence.
- pfrom – The sender of the presence.
- ptype – The type of presence, such as
'subscribe'
. - pnick – Optional nickname of the presence’s sender.
-
sentpresence
= None¶ Flag indicating that the initial presence broadcast has been sent. Until this happens, some servers may not behave as expected when sending stanzas.
-
server
¶ Attribute accessor for jid host
-
stanza
= None¶ A reference to
sleekxmpp.stanza
to make accessing stanza classes easier.
-
start_stream_handler
(xml)[source]¶ Save the stream ID once the streams have been established.
Parameters: xml – The incoming stream’s root element.
-
stream_id
= None¶ An identifier for the stream as given by the server.
-
use_message_ids
= None¶ Messages may optionally be tagged with ID values. Setting
use_message_ids
to True will assign all outgoing messages an ID. Some plugin features require enabling this option.
-
use_presence_ids
= None¶ Presence updates may optionally be tagged with ID values. Setting
use_message_ids
to True will assign all outgoing messages an ID.
-
username
¶ Attribute accessor for jid usernode
-