BaseXMPP¶
- class slixmpp.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.
- Presence(*args, **kwargs)[source]¶
Create a Presence stanza associated with this stream.
- Return type:
- api¶
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.
- property auto_authorize: bool | None¶
Auto accept or deny subscription requests.
If
True
, auto accept subscription requests. IfFalse
, auto deny subscription requests. IfNone
, don’t automatically respond.
- property auto_subscribe: bool¶
Auto send requests for mutual subscriptions.
If
True
, auto send mutual subscription requests.
- boundjid¶
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¶
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.
- property fulljid: str¶
Attribute accessor for full jid
- is_component¶
The distinction between clients and components can be important, primarily for choosing how to handle the
'to'
and'from'
JIDs of stanzas.
- property jid: str¶
Attribute accessor for bare jid
- make_iq(id=None, ifrom=None, ito=None, itype=None, iquery=None)[source]¶
Create a new
Iq
stanza with a given Id and from JID.- Parameters:
id (
Optional
[str
]) – An ideally unique ID value for this stanza thread.ifrom (
Union
[str
,JID
,None
]) – The fromJID
to use for this stanza.ito (
Union
[str
,JID
,None
]) – The destinationJID
for this stanza.itype (
Optional
[Literal
['error'
,'get'
,'set'
,'result'
]]) – TheIq
’s type, one of:'get'
,'set'
,'result'
, or'error'
.iquery (
Optional
[str
]) – Optional namespace for adding a query element.
- Return type:
- 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.
- 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:
- Return type:
- make_iq_query(iq=None, xmlns='', ito=None, ifrom=None)[source]¶
Create or modify an
Iq
stanza to use the given query namespace.
- 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:
- Return type:
- 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 (
Union
[ElementBase
,Element
,None
]) – Either anElementBase
stanza object or anElement
XML object to use as theIq
’s payload.ito (
Union
[str
,JID
,None
]) – The destinationJID
for this stanza.ifrom (
Union
[str
,JID
,None
]) – The'from'
JID
to use for this stanza.iq (
Optional
[Iq
]) – Optionally use an existing stanza instead of generating a new one.
- Return type:
- 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 (
Union
[str
,JID
]) – The recipient of the message.mbody (
Optional
[str
]) – The main contents of the message.msubject (
Optional
[str
]) – Optional subject for the message.mtype (
Optional
[Literal
['chat'
,'error'
,'groupchat'
,'headline'
,'normal'
]]) – The message’s type, such as'chat'
or'groupchat'
.mhtml (
Optional
[str
]) – Optional HTML body content in the form of a string.mfrom (
Union
[str
,JID
,None
]) – 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
[str
]) – Optional nickname of the sender.
- Return type:
- 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 (
Optional
[str
]) – The presence’s show value.pstatus (
Optional
[str
]) – The presence’s status message.ppriority (
Optional
[int
]) – This connection’s priority.pto (
Union
[str
,JID
,None
]) – The recipient of a directed presence.ptype (
Optional
[Literal
['error'
,'probe'
,'subscribe'
,'subscribed'
,'unavailable'
,'unsubscribe'
,'unsubscribed'
]]) – The type of presence, such as'subscribe'
.pnick (
Optional
[str
]) – Optional nickname of the presence’s sender.
- Return type:
- max_redirects¶
The maximum number of consecutive see-other-host redirections that will be followed before quitting.
- plugin: PluginsDict¶
A dictionary mapping plugin names to plugins.
- plugin_config¶
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¶
A list of plugins that will be loaded if
register_plugins()
is called.
- register_plugin(plugin, pconfig=None, module=None)[source]¶
Register and configure a plugin for use in this stream.
- Parameters:
plugin (
str
) – The name of the plugin class. Plugin names must be unique.pconfig (
Optional
[Dict
]) – 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¶
The JabberID (JID) requested for this connection.
- property resource: str¶
Attribute accessor for jid resource
- roster¶
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
.
- send_message(mto, mbody=None, msubject=None, mtype=None, mhtml=None, mfrom=None, mnick=None)[source]¶
Create, initialize, and send a new
Message
stanza.- Parameters:
mto (
JID
) – The recipient of the message.mbody (
Optional
[str
]) – The main contents of the message.msubject (
Optional
[str
]) – Optional subject for the message.mtype (
Optional
[Literal
['chat'
,'error'
,'groupchat'
,'headline'
,'normal'
]]) – The message’s type, such as'chat'
or'groupchat'
.mhtml (
Optional
[str
]) – Optional HTML body content in the form of a string.mfrom (
Union
[str
,JID
,None
]) – 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
[str
]) – Optional nickname of the sender.
- send_presence(pshow=None, pstatus=None, ppriority=None, pto=None, ptype=None, pfrom=None, pnick=None)[source]¶
Create, initialize, and send a new
Presence
stanza.- Parameters:
pshow (
Optional
[str
]) – The presence’s show value.pstatus (
Optional
[str
]) – The presence’s status message.ppriority (
Optional
[int
]) – This connection’s priority.pto (
Union
[str
,JID
,None
]) – The recipient of a directed presence.ptype (
Optional
[Literal
['error'
,'probe'
,'subscribe'
,'subscribed'
,'unavailable'
,'unsubscribe'
,'unsubscribed'
]]) – The type of presence, such as'subscribe'
.pnick (
Optional
[str
]) – 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 (
Union
[str
,JID
]) – The recipient of a directed presence.ptype (
Literal
['error'
,'probe'
,'subscribe'
,'subscribed'
,'unavailable'
,'unsubscribe'
,'unsubscribed'
]) – The type of presence, such as'subscribe'
.pnick (
Optional
[str
]) – Optional nickname of the presence’s sender.
- sentpresence¶
Flag indicating that the initial presence broadcast has been sent. Until this happens, some servers may not behave as expected when sending stanzas.
- property server: str¶
Attribute accessor for jid host
- stanza¶
A reference to
slixmpp.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¶
An identifier for the stream as given by the server.
- use_message_ids¶
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_origin_id¶
XEP-0359 <origin-id/> tag that gets added to <message/> stanzas.
- use_presence_ids¶
Presence updates may optionally be tagged with ID values. Setting
use_message_ids
to True will assign all outgoing messages an ID.
- property username: str¶
Attribute accessor for jid usernode