diff options
author | Emmanuel Gil Peyrot <linkmauve@linkmauve.fr> | 2014-08-17 21:53:34 +0200 |
---|---|---|
committer | Florent Le Coz <louiz@louiz.org> | 2014-09-01 02:47:15 +0200 |
commit | 17174016ec6603afe87a65282f9b7eb55f2eafeb (patch) | |
tree | 1e815d4ab942bf3b8ac932d3a1213b7a00659e26 /docs | |
parent | ed37174a2b40d2d90aa6a0c7f778108687d39602 (diff) | |
download | slixmpp-17174016ec6603afe87a65282f9b7eb55f2eafeb.tar.gz slixmpp-17174016ec6603afe87a65282f9b7eb55f2eafeb.tar.bz2 slixmpp-17174016ec6603afe87a65282f9b7eb55f2eafeb.tar.xz slixmpp-17174016ec6603afe87a65282f9b7eb55f2eafeb.zip |
Remove all trailing whitespaces.
Diffstat (limited to 'docs')
-rw-r--r-- | docs/_static/nature.css | 68 | ||||
-rw-r--r-- | docs/_static/sphinxdoc.css | 2 | ||||
-rw-r--r-- | docs/api/exceptions.rst | 2 | ||||
-rw-r--r-- | docs/api/xmlstream/stanzabase.rst | 2 | ||||
-rw-r--r-- | docs/architecture.rst | 10 | ||||
-rw-r--r-- | docs/create_plugin.rst | 8 | ||||
-rw-r--r-- | docs/event_index.rst | 38 | ||||
-rw-r--r-- | docs/getting_started/component.rst | 6 | ||||
-rw-r--r-- | docs/getting_started/echobot.rst | 22 | ||||
-rw-r--r-- | docs/getting_started/iq.rst | 8 | ||||
-rw-r--r-- | docs/getting_started/proxy.rst | 2 | ||||
-rw-r--r-- | docs/getting_started/sendlogout.rst | 8 | ||||
-rw-r--r-- | docs/guide_xep_0030.rst | 4 | ||||
-rw-r--r-- | docs/index.rst | 12 | ||||
-rw-r--r-- | docs/license.rst | 2 | ||||
-rw-r--r-- | docs/xeps.rst | 6 | ||||
-rw-r--r-- | docs/xmpp_tdg.rst | 8 |
17 files changed, 104 insertions, 104 deletions
diff --git a/docs/_static/nature.css b/docs/_static/nature.css index 52b328ea..b271ec97 100644 --- a/docs/_static/nature.css +++ b/docs/_static/nature.css @@ -8,11 +8,11 @@ * :license: BSD, see LICENSE for details. * */ - + @import url("basic.css"); - + /* -- page layout ----------------------------------------------------------- */ - + body { font-family: Arial, sans-serif; font-size: 100%; @@ -34,18 +34,18 @@ div.bodywrapper { hr { border: 1px solid #B1B4B6; } - + div.document { background-color: #eee; } - + div.body { background-color: #ffffff; color: #3E4349; padding: 0 30px 30px 30px; font-size: 0.9em; } - + div.footer { color: #555; width: 100%; @@ -53,12 +53,12 @@ div.footer { text-align: center; font-size: 75%; } - + div.footer a { color: #444; text-decoration: underline; } - + div.related { background-color: #6BA81E; line-height: 32px; @@ -66,11 +66,11 @@ div.related { text-shadow: 0px 1px 0 #444; font-size: 0.9em; } - + div.related a { color: #E2F3CC; } - + div.sphinxsidebar { font-size: 0.75em; line-height: 1.5em; @@ -79,7 +79,7 @@ div.sphinxsidebar { div.sphinxsidebarwrapper{ padding: 20px 0; } - + div.sphinxsidebar h3, div.sphinxsidebar h4 { font-family: Arial, sans-serif; @@ -95,30 +95,30 @@ div.sphinxsidebar h4 { div.sphinxsidebar h4{ font-size: 1.1em; } - + div.sphinxsidebar h3 a { color: #444; } - - + + div.sphinxsidebar p { color: #888; padding: 5px 20px; } - + div.sphinxsidebar p.topless { } - + div.sphinxsidebar ul { margin: 10px 20px; padding: 0; color: #000; } - + div.sphinxsidebar a { color: #444; } - + div.sphinxsidebar input { border: 1px solid #ccc; font-family: sans-serif; @@ -128,19 +128,19 @@ div.sphinxsidebar input { div.sphinxsidebar input[type=text]{ margin-left: 20px; } - + /* -- body styles ----------------------------------------------------------- */ - + a { color: #005B81; text-decoration: none; } - + a:hover { color: #E32E00; text-decoration: underline; } - + div.body h1, div.body h2, div.body h3, @@ -155,30 +155,30 @@ div.body h6 { padding: 5px 0 5px 10px; text-shadow: 0px 1px 0 white } - + div.body h1 { border-top: 20px solid white; margin-top: 0; font-size: 200%; } div.body h2 { font-size: 150%; background-color: #C8D5E3; } div.body h3 { font-size: 120%; background-color: #D8DEE3; } div.body h4 { font-size: 110%; background-color: #D8DEE3; } div.body h5 { font-size: 100%; background-color: #D8DEE3; } div.body h6 { font-size: 100%; background-color: #D8DEE3; } - + a.headerlink { color: #c60f0f; font-size: 0.8em; padding: 0 4px 0 4px; text-decoration: none; } - + a.headerlink:hover { background-color: #c60f0f; color: white; } - + div.body p, div.body dd, div.body li { line-height: 1.5em; } - + div.admonition p.admonition-title + p { display: inline; } @@ -191,29 +191,29 @@ div.note { background-color: #eee; border: 1px solid #ccc; } - + div.seealso { background-color: #ffc; border: 1px solid #ff6; } - + div.topic { background-color: #eee; } - + div.warning { background-color: #ffe4e4; border: 1px solid #f66; } - + p.admonition-title { display: inline; } - + p.admonition-title:after { content: ":"; } - + pre { padding: 10px; background-color: White; @@ -225,7 +225,7 @@ pre { -webkit-box-shadow: 1px 1px 1px #d8d8d8; -moz-box-shadow: 1px 1px 1px #d8d8d8; } - + tt { background-color: #ecf0f3; color: #222; diff --git a/docs/_static/sphinxdoc.css b/docs/_static/sphinxdoc.css index 0a428074..55c574f6 100644 --- a/docs/_static/sphinxdoc.css +++ b/docs/_static/sphinxdoc.css @@ -134,7 +134,7 @@ div.footer a { /* -- body styles ----------------------------------------------------------- */ -p { +p { margin: 0.8em 0 0.5em 0; } diff --git a/docs/api/exceptions.rst b/docs/api/exceptions.rst index 0736a09c..51e2e170 100644 --- a/docs/api/exceptions.rst +++ b/docs/api/exceptions.rst @@ -3,7 +3,7 @@ Exceptions .. module:: slixmpp.exceptions - + .. autoexception:: XMPPError :members: diff --git a/docs/api/xmlstream/stanzabase.rst b/docs/api/xmlstream/stanzabase.rst index ec28bafe..216ceebe 100644 --- a/docs/api/xmlstream/stanzabase.rst +++ b/docs/api/xmlstream/stanzabase.rst @@ -101,7 +101,7 @@ of an interface defined by the parent. - :ref:`create-stanza-plugins` - :ref:`create-extension-plugins` - :ref:`override-parent-interfaces` - + Registering Stanza Plugins -------------------------- diff --git a/docs/architecture.rst b/docs/architecture.rst index 2d0170d2..cfc56f3e 100644 --- a/docs/architecture.rst +++ b/docs/architecture.rst @@ -88,7 +88,7 @@ when this bit of XML is received (with an assumed namespace of callback, the callback function is executed with the stanza as its only parameter. - .. warning:: + .. warning:: The callback, aka :term:`stream handler`, is executed in the main event processing thread. If the handler blocks, event processing will also block. @@ -117,7 +117,7 @@ when this bit of XML is received (with an assumed namespace of paired with an :term:`event handler`:: ('event', 'message', msg_copy1, custom_event_handler_1) - ('event', 'message', msg_copy2, custom_evetn_handler_2) + ('event', 'message', msg_copy2, custom_evetn_handler_2) 5. **Process Custom Events** @@ -127,9 +127,9 @@ when this bit of XML is received (with an assumed namespace of will be spawned for it. .. note:: - Events may be raised without needing :term:`stanza objects <stanza object>`. - For example, you could use ``self.event('custom', {'a': 'b'})``. - You don't even need any arguments: ``self.event('no_parameters')``. + Events may be raised without needing :term:`stanza objects <stanza object>`. + For example, you could use ``self.event('custom', {'a': 'b'})``. + You don't even need any arguments: ``self.event('no_parameters')``. However, every event handler MUST accept at least one argument. Finally, after a long trek, our message is handed off to the user's diff --git a/docs/create_plugin.rst b/docs/create_plugin.rst index 7e082a7e..98d682eb 100644 --- a/docs/create_plugin.rst +++ b/docs/create_plugin.rst @@ -40,7 +40,7 @@ module. To do so, use the following form when registering the plugin: self.register_plugin('myplugin', module=mod_containing_my_plugin) The plugin name must be the same as the plugin's class name. - + Now, we can open our favorite text editors and create ``xep_0077.py`` in ``Slixmpp/slixmpp/plugins``. We want to do some basic house-keeping and declare the name and description of the XEP we are implementing. If you @@ -535,9 +535,9 @@ with some additional registration fields implemented. namespace = 'jabber:iq:register' name = 'query' plugin_attrib = 'register' - interfaces = set(('username', 'password', 'email', 'nick', 'name', - 'first', 'last', 'address', 'city', 'state', 'zip', - 'phone', 'url', 'date', 'misc', 'text', 'key', + interfaces = set(('username', 'password', 'email', 'nick', 'name', + 'first', 'last', 'address', 'city', 'state', 'zip', + 'phone', 'url', 'date', 'misc', 'text', 'key', 'registered', 'remove', 'instructions')) sub_interfaces = interfaces diff --git a/docs/event_index.rst b/docs/event_index.rst index b5f249f2..3dd45ce8 100644 --- a/docs/event_index.rst +++ b/docs/event_index.rst @@ -60,13 +60,13 @@ Event Index disco_info - **Data:** :py:class:`~slixmpp.plugins.xep_0030.stanza.DiscoInfo` - **Source:** :py:class:`~slixmpp.plugins.xep_0030.disco.xep_0030` - + Triggered whenever a ``disco#info`` result stanza is received. disco_items - **Data:** :py:class:`~slixmpp.plugins.xep_0030.stanza.DiscoItems` - **Source:** :py:class:`~slixmpp.plugins.xep_0030.disco.xep_0030` - + Triggered whenever a ``disco#items`` result stanza is received. disconnected @@ -88,13 +88,13 @@ Event Index gmail_notify - **Data:** ``{}`` - **Source:** :py:class:`~slixmpp.plugins.gmail_notify.gmail_notify` - + Signal that there are unread emails for the Gmail account associated with the current XMPP account. gmail_messages - **Data:** :py:class:`~slixmpp.Iq` - **Source:** :py:class:`~slixmpp.plugins.gmail_notify.gmail_notify` - + Signal that there are unread emails for the Gmail account associated with the current XMPP account. got_online @@ -122,19 +122,19 @@ Event Index groupchat_message - **Data:** :py:class:`~slixmpp.Message` - **Source:** :py:class:`~slixmpp.plugins.xep_0045.xep_0045` - + Triggered whenever a message is received from a multi-user chat room. groupchat_presence - **Data:** :py:class:`~slixmpp.Presence` - **Source:** :py:class:`~slixmpp.plugins.xep_0045.xep_0045` - + Triggered whenever a presence stanza is received from a user in a multi-user chat room. groupchat_subject - **Data:** :py:class:`~slixmpp.Message` - **Source:** :py:class:`~slixmpp.plugins.xep_0045.xep_0045` - + Triggered whenever the subject of a multi-user chat room is changed, or announced when joining a room. killed @@ -148,7 +148,7 @@ Event Index message - **Data:** :py:class:`~slixmpp.Message` - **Source:** :py:class:`BaseXMPP <slixmpp.BaseXMPP>` - + Makes the contents of message stanzas available whenever one is received. Be sure to check the message type in order to handle error messages. @@ -183,67 +183,67 @@ Event Index presence_available - **Data:** :py:class:`~slixmpp.Presence` - **Source:** :py:class:`~slixmpp.BaseXMPP` - + A presence stanza with a type of '``available``' is received. presence_error - **Data:** :py:class:`~slixmpp.Presence` - **Source:** :py:class:`~slixmpp.BaseXMPP` - + A presence stanza with a type of '``error``' is received. presence_form - **Data:** :py:class:`~slixmpp.plugins.xep_0004.Form` - **Source:** :py:class:`~slixmpp.plugins.xep_0004.xep_0004` - + This event is present in the XEP-0004 plugin code, but is currently not used. presence_probe - **Data:** :py:class:`~slixmpp.Presence` - **Source:** :py:class:`~slixmpp.BaseXMPP` - + A presence stanza with a type of '``probe``' is received. presence_subscribe - **Data:** :py:class:`~slixmpp.Presence` - **Source:** :py:class:`~slixmpp.BaseXMPP` - + A presence stanza with a type of '``subscribe``' is received. presence_subscribed - **Data:** :py:class:`~slixmpp.Presence` - **Source:** :py:class:`~slixmpp.BaseXMPP` - + A presence stanza with a type of '``subscribed``' is received. presence_unavailable - **Data:** :py:class:`~slixmpp.Presence` - **Source:** :py:class:`~slixmpp.BaseXMPP` - + A presence stanza with a type of '``unavailable``' is received. presence_unsubscribe - **Data:** :py:class:`~slixmpp.Presence` - **Source:** :py:class:`~slixmpp.BaseXMPP` - + A presence stanza with a type of '``unsubscribe``' is received. presence_unsubscribed - **Data:** :py:class:`~slixmpp.Presence` - **Source:** :py:class:`~slixmpp.BaseXMPP` - + A presence stanza with a type of '``unsubscribed``' is received. roster_update - **Data:** :py:class:`~slixmpp.stanza.Roster` - **Source:** :py:class:`~slixmpp.ClientXMPP` - + An IQ result containing roster entries is received. sent_presence - **Data:** ``{}`` - **Source:** :py:class:`~slixmpp.roster.multi.Roster` - + Signal that an initial presence stanza has been written to the XML stream. session_end diff --git a/docs/getting_started/component.rst b/docs/getting_started/component.rst index efac7ad3..484a8e84 100644 --- a/docs/getting_started/component.rst +++ b/docs/getting_started/component.rst @@ -5,7 +5,7 @@ Create and Run a Server Component ================================= .. note:: - + If you have any issues working through this quickstart guide or the other tutorials here, please either send a message to the `mailing list <http://groups.google.com/group/slixmpp-discussion>`_ @@ -21,8 +21,8 @@ or ``easy_install``. pip install slixmpp # Or: easy_install slixmpp -Many XMPP applications eventually graduate to requiring to run as a server -component in order to meet scalability requirements. To demonstrate how to +Many XMPP applications eventually graduate to requiring to run as a server +component in order to meet scalability requirements. To demonstrate how to turn an XMPP client bot into a component, we'll turn the echobot example (:ref:`echobot`) into a component version. diff --git a/docs/getting_started/echobot.rst b/docs/getting_started/echobot.rst index df5aa2b0..0d0bab72 100644 --- a/docs/getting_started/echobot.rst +++ b/docs/getting_started/echobot.rst @@ -5,7 +5,7 @@ Slixmpp Quickstart - Echo Bot =============================== .. note:: - + If you have any issues working through this quickstart guide or the other tutorials here, please either send a message to the `mailing list <http://groups.google.com/group/slixmpp-discussion>`_ @@ -93,7 +93,7 @@ as well. .. code-block:: python class EchoBot(slixmpp.ClientXMPP): - + def __init__(self, jid, password): super(EchoBot, self).__init__(jid, password) @@ -102,7 +102,7 @@ Handling Session Start The XMPP spec requires clients to broadcast its presence and retrieve its roster (buddy list) once it connects and establishes a session with the XMPP server. Until these two tasks are completed, some servers may not deliver or send messages or presence notifications to the client. So we now -need to be sure that we retrieve our roster and send an initial presence once the session has +need to be sure that we retrieve our roster and send an initial presence once the session has started. To do that, we will register an event handler for the :term:`session_start` event. .. code-block:: python @@ -198,7 +198,7 @@ or ``chat``. (Other potential types are ``error``, ``headline``, and ``groupchat Let's take a closer look at the ``.reply()`` method used above. For message stanzas, ``.reply()`` accepts the parameter ``body`` (also as the first positional argument), -which is then used as the value of the ``<body />`` element of the message. +which is then used as the value of the ``<body />`` element of the message. Setting the appropriate ``to`` JID is also handled by ``.reply()``. Another way to have sent the reply message would be to use :meth:`send_message <slixmpp.basexmpp.BaseXMPP.send_message>`, @@ -242,7 +242,7 @@ the newer ``argparse`` module. We want to accept three parameters: the JID for the echo bot, its password, and a flag for displaying the debugging logs. We also want these to be optional parameters, since passing -a password directly through the command line can be a security risk. +a password directly through the command line can be a security risk. .. code-block:: python @@ -303,21 +303,21 @@ the ``EchoBot.__init__`` method instead. .. note:: - If you are using the OpenFire server, you will need to include an additional + If you are using the OpenFire server, you will need to include an additional configuration step. OpenFire supports a different version of SSL than what most servers and Slixmpp support. .. code-block:: python - + import ssl xmpp.ssl_version = ssl.PROTOCOL_SSLv3 Now we're ready to connect and begin echoing messages. If you have the package ``dnspython`` installed, then the :meth:`slixmpp.clientxmpp.ClientXMPP` method will perform a DNS query to find the appropriate server to connect to for the -given JID. If you do not have ``dnspython``, then Slixmpp will attempt to +given JID. If you do not have ``dnspython``, then Slixmpp will attempt to connect to the hostname used by the JID, unless an address tuple is supplied -to :meth:`slixmpp.clientxmpp.ClientXMPP`. +to :meth:`slixmpp.clientxmpp.ClientXMPP`. .. code-block:: python @@ -349,12 +349,12 @@ to :meth:`slixmpp.clientxmpp.ClientXMPP`. To begin responding to messages, you'll see we called :meth:`slixmpp.basexmpp.BaseXMPP.process` which will start the event handling, send queue, and XML reader threads. It will also call the :meth:`slixmpp.plugins.base.base_plugin.post_init` method on all registered plugins. By -passing ``block=True`` to :meth:`slixmpp.basexmpp.BaseXMPP.process` we are running the +passing ``block=True`` to :meth:`slixmpp.basexmpp.BaseXMPP.process` we are running the main processing loop in the main thread of execution. The :meth:`slixmpp.basexmpp.BaseXMPP.process` call will not return until after Slixmpp disconnects. If you need to run the client in the background for another program, use ``block=False`` to spawn the processing loop in its own thread. -.. note:: +.. note:: Before 1.0, controlling the blocking behaviour of :meth:`slixmpp.basexmpp.BaseXMPP.process` was done via the ``threaded`` argument. This arrangement was a source of confusion because some users diff --git a/docs/getting_started/iq.rst b/docs/getting_started/iq.rst index cbf3d476..be15e170 100644 --- a/docs/getting_started/iq.rst +++ b/docs/getting_started/iq.rst @@ -36,7 +36,7 @@ stanzas this way. The relevant methods are: * :meth:`~slixmpp.basexmpp.BaseXMPP.make_iq_error` * :meth:`~slixmpp.basexmpp.BaseXMPP.make_iq_query` -These methods all follow the same pattern: create or modify an existing +These methods all follow the same pattern: create or modify an existing :class:`~slixmpp.stanza.iq.Iq` stanza, set the ``'type'`` value based on the method name, and finally add a ``<query />`` element with the given namespace. For example, to produce the query above, you would use: @@ -74,7 +74,7 @@ These options are: To change the timeout for a single call, the ``timeout`` parameter works: .. code-block:: python - + iq.send(timeout=60) * ``callback``: When not using a blocking call, using the ``callback`` @@ -85,7 +85,7 @@ These options are: .. code-block:: python - cb_name = iq.send(callback=self.a_callback) + cb_name = iq.send(callback=self.a_callback) # ... later if we need to cancel self.remove_handler(cb_name) @@ -133,7 +133,7 @@ interfacting with the :class:`~slixmpp.stanza.iq.Iq` payload. * :ref:`create-plugin` * :ref:`work-with-stanzas` * :ref:`using-handlers-matchers` - + The typical way to respond to :class:`~slixmpp.stanza.iq.Iq` requests is to register stream handlers. As an example, suppose we create a stanza class diff --git a/docs/getting_started/proxy.rst b/docs/getting_started/proxy.rst index b5e74180..e45b2b3a 100644 --- a/docs/getting_started/proxy.rst +++ b/docs/getting_started/proxy.rst @@ -5,7 +5,7 @@ Enable HTTP Proxy Support ========================= .. note:: - + If you have any issues working through this quickstart guide or the other tutorials here, please either send a message to the `mailing list <http://groups.google.com/group/slixmpp-discussion>`_ diff --git a/docs/getting_started/sendlogout.rst b/docs/getting_started/sendlogout.rst index 5b23a469..7669e340 100644 --- a/docs/getting_started/sendlogout.rst +++ b/docs/getting_started/sendlogout.rst @@ -2,7 +2,7 @@ Sign in, Send a Message, and Disconnect ======================================= .. note:: - + If you have any issues working through this quickstart guide or the other tutorials here, please either send a message to the `mailing list <http://groups.google.com/group/slixmpp-discussion>`_ @@ -10,7 +10,7 @@ Sign in, Send a Message, and Disconnect <xmpp:sleek@conference.jabber.org?join>`_. A common use case for Slixmpp is to send one-off messages from -time to time. For example, one use case could be sending out a notice when +time to time. For example, one use case could be sending out a notice when a shell script finishes a task. We will create our one-shot bot based on the pattern explained in :ref:`echobot`. To @@ -24,7 +24,7 @@ for the JID that will receive our message, and the string content of the message class SendMsgBot(slixmpp.ClientXMPP): - + def __init__(self, jid, password, recipient, msg): super(SendMsgBot, self).__init__(jid, password) @@ -52,7 +52,7 @@ Finally, we need to disconnect the client using :meth:`disconnect <slixmpp.xmlst Now, sent stanzas are placed in a queue to pass them to the send thread. If we were to call :meth:`disconnect <slixmpp.xmlstream.XMLStream.disconnect>` without any parameters, then it is possible for the client to disconnect before the send queue is processed and the message is actually -sent on the wire. To ensure that our message is processed, we use +sent on the wire. To ensure that our message is processed, we use :meth:`disconnect(wait=True) <slixmpp.xmlstream.XMLStream.disconnect>`. .. code-block:: python diff --git a/docs/guide_xep_0030.rst b/docs/guide_xep_0030.rst index cd0f4850..674b9eb5 100644 --- a/docs/guide_xep_0030.rst +++ b/docs/guide_xep_0030.rst @@ -159,7 +159,7 @@ item itself, and the JID and node that will own the item. .. note:: In this case, the owning JID and node are provided with the - parameters ``ijid`` and ``node``. + parameters ``ijid`` and ``node``. Peforming Disco Queries ----------------------- @@ -197,5 +197,5 @@ a full Iq stanza. info = self['xep_0030'].get_info(node='foo', local=True) items = self['xep_0030'].get_items(jid='somejid@mycomponent.example.com', - node='bar', + node='bar', local=True) diff --git a/docs/index.rst b/docs/index.rst index 33d6cd00..3e97fb09 100644 --- a/docs/index.rst +++ b/docs/index.rst @@ -31,7 +31,7 @@ Slixmpp Slixmpp is an :ref:`MIT licensed <license>` XMPP library for Python 2.6/3.1+, and is featured in examples in -`XMPP: The Definitive Guide <http://oreilly.com/catalog/9780596521271>`_ +`XMPP: The Definitive Guide <http://oreilly.com/catalog/9780596521271>`_ by Kevin Smith, Remko Tronçon, and Peter Saint-Andre. If you've arrived here from reading the Definitive Guide, please see the notes on updating the examples to the latest version of Slixmpp. @@ -113,7 +113,7 @@ Here's your first Slixmpp Bot: if __name__ == '__main__': - # Ideally use optparse or argparse to get JID, + # Ideally use optparse or argparse to get JID, # password, and log level. logging.basicConfig(level=logging.DEBUG, @@ -129,7 +129,7 @@ Getting Started (with Examples) ------------------------------- .. toctree:: :maxdepth: 1 - + getting_started/echobot getting_started/sendlogout getting_started/component @@ -144,7 +144,7 @@ Tutorials, FAQs, and How To Guides ---------------------------------- .. toctree:: :maxdepth: 1 - + faq xeps xmpp_tdg @@ -156,7 +156,7 @@ Tutorials, FAQs, and How To Guides Plugin Guides ~~~~~~~~~~~~~ -.. toctree:: +.. toctree:: :maxdepth: 1 guide_xep_0030 @@ -173,7 +173,7 @@ API Reference ------------- .. toctree:: :maxdepth: 2 - + event_index api/clientxmpp api/componentxmpp diff --git a/docs/license.rst b/docs/license.rst index cbcf5c11..d9505344 100644 --- a/docs/license.rst +++ b/docs/license.rst @@ -1,4 +1,4 @@ -.. _license: +.. _license: License (MIT) ============= diff --git a/docs/xeps.rst b/docs/xeps.rst index 3653d10a..c5b4592d 100644 --- a/docs/xeps.rst +++ b/docs/xeps.rst @@ -4,9 +4,9 @@ Supported XEPS ======= ============================= ================ XEP Description Notes ======= ============================= ================ -`0004`_ Data forms -`0009`_ Jabber RPC -`0012`_ Last Activity +`0004`_ Data forms +`0009`_ Jabber RPC +`0012`_ Last Activity `0030`_ Service Discovery `0033`_ Extended Stanza Addressing `0045`_ Multi-User Chat (MUC) Client-side only diff --git a/docs/xmpp_tdg.rst b/docs/xmpp_tdg.rst index c0d85196..dc921f8f 100644 --- a/docs/xmpp_tdg.rst +++ b/docs/xmpp_tdg.rst @@ -1,7 +1,7 @@ Following *XMPP: The Definitive Guide* ====================================== -Slixmpp was featured in the first edition of the O'Reilly book +Slixmpp was featured in the first edition of the O'Reilly book `XMPP: The Definitive Guide <http://oreilly.com/catalog/9780596521271/>`_ by Peter Saint-Andre, Kevin Smith, and Remko Tronçon. The original source code for the book's examples can be found at http://github.com/remko/xmpp-tdg. An @@ -79,7 +79,7 @@ Updated Code user = self.backend.getUserFromJID(event["from"].jid) if user is not None: self.backend.addMessageFromUser(message, user) - + def handleMessageAddedToBackend(self, message) : body = message.user + ": " + message.text htmlBody = "<p><a href='%(uri)s'>%(user)s</a>: %(message)s</p>" % { @@ -203,7 +203,7 @@ Example 14-7. (Page 225) **Extended CheshiR IM server component implementation.** .. note:: - Since the CheshiR examples build on each other, see previous + Since the CheshiR examples build on each other, see previous sections for corrections to code that is not marked as new in the book example. @@ -246,4 +246,4 @@ Updated Code self.sendAllContactSubscriptionRequestsToUser(userJID) `View full source <http://github.com/legastero/xmpp-tdg/blob/master/code/CheshiR/Component.py>`_ | -`View original code <http://github.com/remko/xmpp-tdg/blob/master/code/CheshiR/Component.py>`_ +`View original code <http://github.com/remko/xmpp-tdg/blob/master/code/CheshiR/Component.py>`_ |