Package pyxmpp :: Package jabber :: Module client :: Class JabberClient

[hide private]

# Class JabberClient

source code

    client.Client --+
                    |
                   JabberClient

Base class for a Jabber client.

Instance Methods | [hide private]

__init__(self, jid=None, password=None, server=None, port=5222, auth_methods=`(``'``sasl:DIGEST-MD5``'``,` `'``digest``'``)`, tls_settings=None, keepalive=0, disco_name=`u'``pyxmpp based Jabber client``'`, disco_category=`u'``client``'`, disco_type=`u'``pc``'`) Initialize a JabberClient object. | source code

connect(self, register=False) Connect to the server and set up the stream. | source code

register_feature(self, feature_name) Register a feature to be announced by Service Discovery. | source code

unregister_feature(self, feature_name) Unregister a feature to be announced by Service Discovery. | source code

submit_registration_form(self, form) Submit a registration form | source code

__disco_info(self, iq) Handle a disco#info request. | source code

__disco_items(self, iq) Handle a disco#items request. | source code

_session_started(self) Called when session is started. | source code

authorized(self) Handle "authorized" event. | source code

DiscoInfo

disco_get_info(self, node, iq) Return Disco#info data for a node. | source code

DiscoInfo

disco_get_items(self, node, iq) Return Disco#items data for a node. | source code

process_registration_form(self, stanza, form) Fill-in the registration form provided by the server. | source code

Inherited from `client.Client`: `authenticated`, `connected`, `disconnect`, `disconnected`, `get_socket`, `get_stream`, `idle`, `loop`, `request_roster`, `request_session`, `roster_updated`, `session_started`, `stream_closed`, `stream_created`, `stream_error`, `stream_state_changed`

Instance Variables | [hide private]

| disco_identity : default identity of the default disco_info.
: DiscoInfo | disco_info : default Disco#info reply for a query to an empty node -- provides information about the client and its supported fetures.
: DiscoItems | disco_items : default Disco#items reply for a query to an empty node.
: `bool` | register : when `True` than registration will be started instead of authentication.
Inherited from `client.Client`: `auth_methods`, `interface_providers`, `jid`, `keepalive`, `lock`, `password`, `port`, `roster`, `server`, `session_established`, `state_changed`, `stream`

Method Details | [hide private]

### __init__(self, jid=None, password=None, server=None, port=5222, auth_methods=`(``'``sasl:DIGEST-MD5``'``,` `'``digest``'``)`, tls_settings=None, keepalive=0, disco_name=`u'``pyxmpp based Jabber client``'`, disco_category=`u'``client``'`, disco_type=`u'``pc``'`)
(Constructor)

source code

Initialize a JabberClient object.

Parameters:
  - `jid` (: pyxmpp.JID) - : user full JID for the connection.
  - `password` (: `unicode`) - : user password.
  - `server` (: `unicode`) - : server to use. If not given then address will be derived form the JID.
  - `port` (: `int`) - : port number to use. If not given then address will be derived form the JID.
  - `auth_methods` (: sequence of `str`) - : sallowed authentication methods. SASL authentication mechanisms in the list should be prefixed with "sasl:" string.
  - `tls_settings` (: pyxmpp.TLSSettings) - : settings for StartTLS -- TLSSettings instance.
  - `keepalive` (: `int`) - : keepalive output interval. 0 to disable.
  - `disco_name` (: `unicode`) - : name of the client identity in the disco#info replies.
  - `disco_category` (: `unicode`) - : category of the client identity in the disco#info replies. The default of u'client' should be the right choice in most cases.
  - `disco_type` (: `unicode`) - : type of the client identity in the disco#info replies. Use the types registered by Jabber Registrar
Overrides: client.Client.__init__

### connect(self, register=False)

source code

Connect to the server and set up the stream.

Set self.stream and notify self.state_changed when connection succeeds. Additionally, initialize Disco items and info of the client.

Overrides: client.Client.connect

### register_feature(self, feature_name)

source code

Register a feature to be announced by Service Discovery.

Parameters:
  - `feature_name` (: `unicode`) - : feature namespace or name.

### unregister_feature(self, feature_name)

source code

Unregister a feature to be announced by Service Discovery.

Parameters:
  - `feature_name` (: `unicode`) - : feature namespace or name.

### submit_registration_form(self, form)

source code

Submit a registration form

Parameters:
  - `form` (: pyxmpp.jabber.dataforms.Form) - : the form to submit

### __disco_info(self, iq)

source code

Handle a disco#info request.

self.disco_get_info method will be used to prepare the query response.

Parameters:
  - `iq` (: pyxmpp.iq.Iq) - : the IQ stanza received.

### __disco_items(self, iq)

source code

Handle a disco#items request.

self.disco_get_items method will be used to prepare the query response.

Parameters:
  - `iq` (: pyxmpp.iq.Iq) - : the IQ stanza received.

### _session_started(self)

source code

Called when session is started.

Activates objects from `self.interface_provides` by installing their disco features.

Overrides: client.Client._session_started

### authorized(self)

source code

Handle "authorized" event. May be overriden in derived classes. By default: request an IM session and setup Disco handlers.

Overrides: client.Client.authorized

### disco_get_info(self, node, iq)

source code

Return Disco#info data for a node.

Parameters:
  - `node` (: `unicode`) - : the node queried.
  - `iq` (: pyxmpp.iq.Iq) - : the request stanza received.
Returns: DiscoInfo
  self.disco_info if `node` is empty or `None` otherwise.

### disco_get_items(self, node, iq)

source code

Return Disco#items data for a node.

Parameters:
  - `node` (: `unicode`) - : the node queried.
  - `iq` (: pyxmpp.iq.Iq) - : the request stanza received.
Returns: DiscoInfo
  self.disco_info if `node` is empty or `None` otherwise.

### process_registration_form(self, stanza, form)

source code

Fill-in the registration form provided by the server.

This default implementation fills-in "username" and "passwords" fields only and instantly submits the form.

Parameters:
  - `stanza` (: pyxmpp.iq.Iq) - : the stanza received.
  - `form` (: pyxmpp.jabber.dataforms.Form) - : the registration form.