Commit Graph

144 Commits

Author SHA1 Message Date
Lance Stout 253de8518c Modified xmlstream.py to pass a clean stanza object to each stream handler.
The previous version passed the same stanza object to each registered handler,
which can cause issues when the stanza object is modified by one handler. The next
handler receives the stanza with the modifications, not the original stanza.
2010-06-03 22:56:57 -04:00
Lance Stout e700a54d11 Return result of iq.send() for disco requests. Events are still triggered, but now the caller can determine if there was a timeout. 2010-06-02 15:59:10 -04:00
Lance Stout 6469cdb4ca Merge branch 'develop' of git://github.com/fritzy/SleekXMPP into develop 2010-06-02 15:57:18 -04:00
Nathan Fritz 18e27d65ce Merge branch 'develop' of github.com:fritzy/SleekXMPP into develop 2010-06-01 21:45:15 -07:00
Nathan Fritz 0c39567f20 hack fix for session before bind 2010-06-01 21:44:54 -07:00
Nathan Fritz f5491c901f if binding and session are advertised in the same go, do session first 2010-06-01 21:40:52 -07:00
Lance stout f5cae85af5 Make sure that the id parameter used in xmpp.makeIq is converted to a string.
Otherwise, SleekXMPP will barf on trying to serialize an integer when it expects text.
2010-06-01 10:52:37 -04:00
Lance stout 01e8040a07 Added additional parameter to xep_0030's getInfo and getItems methods.
By using dfrom, a server component may send disco requests using any of its JIDS.
2010-06-01 10:51:03 -04:00
Nathan Fritz aa916c9ac8 included jobs plugin 2010-05-31 13:57:39 -07:00
Lance stout 332eea3b3b Make sure that the node is alway set in disco responses. 2010-05-31 13:35:15 -04:00
Lance stout 109af1b1b6 Merge branch 'xep_0085' into develop 2010-05-31 13:31:11 -04:00
Lance stout 629f6e76a9 Added implementation and tests for XEP-0085 - Chat State Notifications.
Chat states may be set using:

msg['chat_state'].active()
msg['chat_state'].composing()
msg['chat_state'].gone()
msg['chat_state'].inactive()
msg['chat_state'].paused()

Checking a chat state can be done with either:

msg['chat_state'].getState()
msg['chat_state'].name

When a message with a chat state is receieved, the following events
may occur:

chatstate_active
chatstate_composing
chatstate_gone
chatstate_inactive
chatstate_paused

where the event data is the message stanza. Note that currently these
events are also triggered for messages sent by SleekXMPP, not just those
received.
2010-05-31 13:24:14 -04:00
Nathan Fritz 82a3918aa4 Scheduler waits too longer, and pubsubstate registration was backwards 2010-05-31 03:36:25 -07:00
Lance stout cff3079a04 Added missing 'internal-server-error' condition to error stanza interface. 2010-05-31 05:30:50 +08:00
Lance stout 4f864a07f5 Touched up the style of creating an Iq stanza. 2010-05-31 05:30:49 +08:00
Lance stout 938066bd50 Added 'resource-constraint' to the list of error conditions. 2010-05-31 05:30:48 +08:00
Lance Stout 9fee87c258 Added unit tests for the new XEP-0030 stanza objects. All pass.
(cherry picked from commit e1b814f27bf160f20bb30c315ca30769d217482d)
2010-05-31 05:30:47 +08:00
Lance Stout fd573880eb Updated the XEP-0030 plugin to work with stanza objects instead of manipulating XML directly.
Four new events have been added:
  disco_info - A disco#info result has been received
  disco_info_request - A disco#info request has been received
  disco_items - A disco#items result has been received
  disco_items_request - A disco#items request has been received

For disco_info_request and disco_items_request two default handlers are registered. These handlers will only run if they are the only handler for these two events so that multiple responses are not returned and cause errors.

In your own handlers for these two events, you can call the default handlers to preserve the static node behaviour as so:
  self.plugin['xep_0030'].handle_disco_info(iq, True)

The forwarded=True will disable the check for other registered handlers.

Agents can now dynamically respond to disco requests by using these events.
(cherry picked from commit 0fc3381492a8bd75e6a9858539a972334881d8ff)
2010-05-31 05:30:45 +08:00
Nathan Fritz 2f1ba368e2 control-c fixes 2010-05-28 19:19:28 -07:00
Nathan Fritz bde1818400 added pubsubjobs test 2010-05-27 04:59:41 -07:00
Nathan Fritz 3a28f9e5d2 added pubsub state stanzas and scheduled events 2010-05-27 04:58:57 -07:00
Nathan Fritz 0bda5fd3f2 adding scheduler 2010-05-26 18:32:28 -07:00
Nathan Fritz 1e3a6e1b5f added muc room to readme 2010-05-26 11:46:56 -07:00
Nathan Fritz fa92bc866b fixed dns unicode problem 2010-05-26 11:37:01 -07:00
Nathan Fritz f4bc9d9722 plugins now are checked for post_init having ran when process() is called 2010-05-26 10:51:51 -07:00
Hernan E Grecco 9cfe19c1e1 Changed example.py to register first Xep_0030.
This a simple fix to prevent getting a key error as many plugins add
features to Xep_0030. A better fix would be to call pos_init after all
 plugins are loaded. An even better fix would be to define dependencies
for each plugin and registering on demand.
2010-05-26 06:49:01 +08:00
Hernan E Grecco f18c790824 Fixed error registering a plugin. To add a feature to another plugin, it should look into xmpp.plugin dict 2010-05-26 06:49:01 +08:00
Nathan Fritz f165b4b52b Merge branch 'master' of git@github.com:fritzy/SleekXMPP 2010-05-24 19:34:49 -07:00
Nathan Fritz 7ebc006516 updated README, index fix for component 2010-05-24 19:33:24 -07:00
Lance Stout 5ca4ede5ac Added a flag to registerPlugin to control calling the plugin's post_init method. 2010-05-25 07:28:48 +08:00
Lance Stout 35f4ef3452 Modified the return values for several methods so that they can be chained.
For example:

    iq.reply().error().setPayload(something.xml).send()
2010-05-25 07:28:43 +08:00
Lance Stout 828cba875f Added the error attribute 'code' to the Error object interface. 2010-05-25 07:28:43 +08:00
Nathan Fritz 3920ee3941 added plugin indexing to components 2010-05-24 14:27:13 -07:00
Nathan Fritz feaa7539af added test_events and testing new del_event_handler 2010-05-20 13:09:04 -07:00
Lance Stout c004f042f9 Added del_event_handler to remove handler functions for a given event.
All registered handlers for the event which use the given function will
be removed.

Using this method allows agents to reconfigure their behaviour on the fly
without needing to add extra state information to event handling functions.
2010-05-21 03:54:48 +08:00
Nathan Fritz ae41c08fec added test for unsolicided unavailable presence and fixed bug to make it pass 2010-05-12 18:07:20 -07:00
Nathan Fritz 223507f36f fixed a rather large memory leak 2010-05-12 13:45:36 -07:00
Nathan Fritz 8515cef117 refactored presence tracking and fixed jidInRoom 2010-05-11 15:12:13 -07:00
Nathan Fritz 9d76e7353a Merge branch 'master' of git@github.com:fritzy/SleekXMPP 2010-05-11 12:21:02 -07:00
Nathan Fritz 2f8c1954f0 use pubsub settings 2010-05-11 12:20:57 -07:00
Nathan Fritz d40e49397b added collection tests 2010-04-30 08:21:32 -07:00
Nathan Fritz c4fa3ab654 pubsub test work 2010-04-23 01:34:28 -07:00
Nathan Fritz e2f841146a forgot to add file required to pass testall.py 2010-04-22 23:40:50 -07:00
Nathan Fritz 602a6d8491 bugfixes and continuing to work on pubsub tests 2010-04-22 21:24:28 -07:00
Nathan Fritz 37b571c55a added pubsub#event stanzas, multi-subtypes iterable stanzas, pubsub#event test coverage 2010-04-21 23:51:37 -07:00
Nathan Fritz 2a30e3fe0c started work on pubsub#event stanzas 2010-04-20 00:53:13 -07:00
Nathan Fritz 212660091f added pubsub tests and fixed match on iterator error 2010-04-19 01:03:27 -07:00
Nathan Fritz 35c157f9d8 changed_status event now happens with got_offline/got_online events 2010-04-18 21:16:47 -07:00
Nathan Fritz 09aae38117 initial add of pubsub server interaction tests 2010-04-14 01:25:14 -07:00
Nathan Fritz 80e7e0d0ee adding tests, fixed stanzapath matching to match keys, fixed pubsub#owner stanzas 2010-04-14 01:23:17 -07:00