Commit graph

166 commits

Author SHA1 Message Date
Lance Stout
d5e42ac0e7 Condensed all of the stanzaPlugin functions into a single registerStanzaPlugin function.
Updated plugins and tests to use new function.
2010-07-19 13:58:53 -04:00
Lance Stout
e6bec8681e Added implementation for XEP-0128 Service Discovery Extensions.
Uses the alt_0004 plugin for jabberdata stanza objects.
2010-07-19 04:22:31 -04:00
Lance Stout
797e92a6a3 Fixed error in updateRoster when the name keyword parameter is left out.
The Roster stanza object builds item elements manually, and did not handle the
case where the name attribute is set to None, which would crash SleekXMPP.
2010-07-19 04:12:54 -04:00
Lance Stout
1ef112966b Merge branch 'develop' of git://github.com/fritzy/SleekXMPP into develop 2010-07-19 04:02:28 -04:00
Nathan Fritz
078c71ed3f accidental debugging return left in the code from last commit 2010-07-15 14:25:10 -07:00
Nathan Fritz
bae082f437 fixed updateRoster and delRosterItem 2010-07-15 11:53:35 -07:00
Lance Stout
35212c7991 Updated SleekTest to be able to simulate and test interactions with an XML stream. 2010-07-14 15:32:14 -04:00
Lance Stout
48f0843ace Added initial stanza object version of the xep_0004 plugin. Items/reported elements still need to be unit tested 2010-07-14 11:59:58 -04:00
Lance Stout
b1c997be1d Reworked the Gmail notification plugin to use stanza objects and expose more information. 2010-07-11 22:01:51 -04:00
Lance Stout
d0cb400c54 Fixed tabs to please tab nanny. 2010-07-11 21:43:51 -04:00
Lance Stout
7f8179d91e Refactored unit tests for XEP-0030, XEP-0033, and XEP-0085 to use the new SleekTest class. 2010-06-27 17:47:32 -04:00
Lance Stout
37ada49802 Fixed indentation to please tab nanny during unit tests. 2010-06-27 17:39:16 -04:00
Lance Stout
5c76d969f7 Added a new SleekTest class that provides useful methods for test cases.
Can now use: (where self is a SleekTest instance)
self.stanzaPlugin(stanza, plugin)
self.Message()  \
self.Iq()        > Just like basexmpp.Message(), etc.
self.Presence() /
self.checkMessage(msg, xmlstring)
self.checkIq(iq, xmlstring)
self.checkPresence(pres, xmlstring) <- Not implemented yet, but stub is there.

The check* methods also accept a use_values keyword argument that defaults to True.
When this value is True, an additional test is executed by creating a stanza using
getValues() and setValues(). Since some stanza objects can override these two methods,
disabling this test is sometimes required.
2010-06-27 17:33:43 -04:00
Lance Stout
059cc9ccc4 Fixed several errors in xep_0033 plugin.
The method getAddresses was removing addresses by mistake.
Several instances of using self.attrib instead of self.xml.attrib.
2010-06-27 17:32:16 -04:00
Lance Stout
309c9e74eb Fixed error in setState() method. 2010-06-27 16:34:48 -04:00
Lance Stout
6041cd1952 Fixed typo 2010-06-27 16:33:59 -04:00
Lance Stout
acb53ba371 Fixed tab and spacing issue to please the Tab Nanny during unit tests. 2010-06-27 10:14:21 -04:00
Lance Stout
646a609c0b Added plugin and tests for XEP-0033, Extended Stanza Addresses.
XEP-0033 can be useful for interacting with XMPP<->Email gateways.
2010-06-22 23:22:50 -04:00
Lance Stout
8bb0f5e34c Needed to use copy.deepcopy() to copy XML objects to make sure that the entire tree is copied. 2010-06-07 19:55:39 -04:00
Lance Stout
3c939313d2 Modified basexmpp.event() to pass a copy of the event data to each handler. 2010-06-06 23:19:07 -04:00
Lance Stout
9962f1a664 Added a __copy__ method to both ElementBase and StanzaBase.
Stanzas may now be copied using copy.copy(), which will be useful to prevent
stanza objects from being shared between event handlers.
2010-06-06 23:12:54 -04:00
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
Nathan Fritz
a38735cb2a added very, very, very basic atom stanza 2010-06-02 15:54:44 -07: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