Commit graph

352 commits

Author SHA1 Message Date
Lance Stout
ed366b338d Moved ClientXMPP to clientxmpp.py.
Cleaned up the __init__.py files.
2010-10-06 14:20:32 -04:00
Lance Stout
9e2cada19e Missed a few docstrings. 2010-10-06 14:09:14 -04:00
Lance Stout
d0ccbf6b7a Merge branch 'develop' of github.com:fritzy/SleekXMPP into develop 2010-10-06 14:06:02 -04:00
Lance Stout
e1866ab328 Made first pass at cleaning up ClientXMPP.
Added self.stream_ns to BaseXMPP.
Moved connected/disconnected events and logging to XMLStream.
2010-10-06 14:03:19 -04:00
fritzy
3ffa09ba7c deal with deleting handlers that are no longer there 2010-10-06 17:58:03 +00:00
Lance Stout
a7410f2146 Made a first pass at cleaning up ComponentXMPP. 2010-10-06 10:47:05 -04:00
Lance Stout
178608f4c0 XMLStream cleanup.
Added RestartStream as a top level item in sleekxmpp.xmlstream.

Fixed trailing whitespace.
2010-10-06 10:45:36 -04:00
Lance Stout
9f0baec7b2 Made first pass at cleaning BaseXMPP.
Have not intregrated the new JID class yet.
2010-10-01 23:56:46 -04:00
Lance Stout
433c147627 Fixed typo in XEP-0033 plugin. 2010-10-01 21:25:27 -04:00
Lance Stout
9a34c9a9a1 Modified event handling to use the event queue.
Updated tests to match. (Needed to add a small wait to make sure
the event got through the queue before checking the results.)
2010-10-01 13:49:58 -04:00
Lance Stout
2662131124 Fixed tostring bug when using mapped namespaces. 2010-10-01 12:41:35 -04:00
Lance Stout
bb219595a7 Moved event functions to XMLStream.
This is just a transplant, modifying event to use the main
event queue has not been implemented yet.
2010-10-01 12:24:49 -04:00
Lance Stout
fcdd57ce54 Moved add_handler, send, and sendXML to XMLStream. 2010-10-01 11:15:51 -04:00
Lance Stout
5522443e0e Moved getNewId and getId to XMLStream.
This prepares the way for moving add_handler to XMLStream.

Since stanzas, matchers, and handlers in any XML stream will typically
use unique IDs, XMLStream is a good place for these methods.
2010-10-01 10:46:37 -04:00
Lance Stout
55cfe69fef Cleaned up trailing whitespace. 2010-10-01 10:09:10 -04:00
Lance Stout
6de87a1cbf Fixed line lengths and trailing whitespace.
The pep8 command is now pleased.
2010-09-30 13:06:16 -04:00
Lance Stout
7c10ff16fb Made a first pass at cleaning up XMLStream.
A few extra methods are mentioned in the docs, but those have not
been moved to XMLStream from BaseXMPP yet.
2010-09-30 12:56:22 -04:00
Nathan Fritz
c258d2f19d added room events for specific rooms, added buildForm to xep_0004 plugin 2010-09-23 00:51:23 +00:00
fritzy
d576e32f7a Merge branch 'develop' of git@github.com:fritzy/SleekXMPP into develop 2010-09-02 20:01:28 +00:00
Lance Stout
9bef4b4d4d Move the examples to a top-level examples directory. 2010-09-01 14:47:42 -04:00
Lance Stout
5c3066ba30 Updated all of the matcher classes in sleekxmpp.xmlstream.matcher.
Matchers are now PEP8 compliant and have documentation.
2010-09-01 14:28:43 -04:00
Lance Stout
576eefb097 Fixed line spacing in filesocket.py to please pep8. 2010-09-01 14:25:30 -04:00
Lance Stout
aebd115ba2 A few cleanups to make things simpler. 2010-09-01 14:20:34 -04:00
fritzy
6dfea828be xep-0004 merge should deal with dictionaries 2010-08-31 14:44:24 +00:00
Lance Stout
3749c1b88c Fixed ElementBase.match to match using sub_interface elements. 2010-08-30 17:12:10 -04:00
Lance Stout
998741b87e Fixed typos in ElementBase._fix_ns 2010-08-30 15:25:59 -04:00
Lance Stout
9c62bce206 Updated ElementBase.match to respect namespaces with slashes.
Required adding option to _fix_ns to not propagate namespaces to child elements.
2010-08-30 14:55:30 -04:00
Lance Stout
f5ae27da4f Fix some documentation typos. 2010-08-27 18:16:09 -04:00
Lance Stout
89fb15e896 Updated the suite of handler classes with documentation.
Updated XMLStream to return True or False from removeHandler to indicate if the handler
existed and was removed.

Waiter handlers now unregister themselves after timing out.
2010-08-27 16:42:26 -04:00
Lance Stout
bb6f4af8e2 Added unit tests for StanzaBase. 2010-08-27 12:22:35 -04:00
Lance Stout
6677df39f2 Updated xmlstream.filesocket. 2010-08-27 11:29:48 -04:00
Lance Stout
a2c515bc97 Updated StanzaBase with documentation. 2010-08-27 11:07:20 -04:00
Lance Stout
ca6ce26b0d Added comments to _fix_ns to clarify the cleaning procedure. 2010-08-26 18:40:58 -04:00
Lance Stout
00d7952001 Fixed ElementBase._fix_ns and related methods to respect namespaces which contain forward slashes. 2010-08-26 18:18:00 -04:00
Lance Stout
56766508b3 Fixed indentation in StanzaBase. 2010-08-26 14:19:36 -04:00
Lance Stout
5c59f5baca Clarify ElementBase documentation. 2010-08-26 14:07:09 -04:00
Lance Stout
e16b37d2be Fixed line lengths in ElementBase to comply with PEP8. 2010-08-26 13:55:23 -04:00
Lance Stout
d68bc2ba07 Finished the update of ElementBase with docs and unit tests.
Corrected bugs in equality comparisons between stanzas.
2010-08-26 13:49:36 -04:00
Lance Stout
10298a6eab Updated the remaining ElementBase methods.
Remaining ElementBase todos:
    Write the class documentation for ElementBase.
    Write unit tests for the __magic__ methods.
2010-08-26 10:08:22 -04:00
Lance Stout
a3580dcef9 Fixed ElementBase.match to respect namespaces. 2010-08-25 14:54:09 -04:00
Lance Stout
1eaa9cb28c Updated ElementBase.match and added unit tests. 2010-08-25 14:40:16 -04:00
Lance Stout
5d458bf6c2 Updated ElementBase._delSub and added unit tests.
_delSub can now accept a path and will optionally remove any empty parent elements after deleting the target elements.
2010-08-25 10:52:07 -04:00
Lance Stout
2fa58a74ab Fixed indenting issue. 2010-08-24 09:44:09 -04:00
Lance Stout
c8f406d1b3 Updated ElementBase._setSubText and added unit tests.
_setSubText can now handle elements specified by an XPath expression, and
will build up the element tree as needed, reusing an existing elements in
the path.
2010-08-24 09:37:42 -04:00
Lance Stout
203986dd7c Updated ElementBase._getSubText and added unit tests.
Also added ElementBase._fix_ns() to apply the stanza namespace to elements that don't have a namespace.
2010-08-24 08:55:37 -04:00
fritzy
f4ecf0bac4 fixed a but in stanza_pubsub 2010-08-22 06:08:48 +00:00
fritzy
345656926e added form compatibility with old api, stanzas now bool() to True on 2.x, jid attributes will return '' if not set 2010-08-21 22:48:43 +00:00
Nathan Fritz
c05ddcb7f5 Merge branch 'develop' of git@github.com:fritzy/SleekXMPP into develop 2010-08-19 19:54:09 -07:00
Nathan Fritz
eb9e72fe3e added some xep-0004 compatibility changes 2010-08-19 19:53:56 -07:00
Lance Stout
8a0616b3e0 Updated ElementBase methods _getAttr, _setAttr, and _delAttr with docs and tests. 2010-08-19 20:41:26 -04:00
Lance Stout
b71cfe0492 Small cleanup in ElementBase.__setitem__ 2010-08-19 19:14:18 -04:00
Lance Stout
fac3bca1f6 Updated ElementBase.__delitem__ and added unit tests. 2010-08-19 19:11:12 -04:00
Nathan Fritz
d150b35464 fixed todo merge 2010-08-19 16:09:47 -07:00
Nathan Fritz
21b7109c06 fixed jobs 2010-08-19 16:09:00 -07:00
Lance Stout
e4240dd593 Updated ElementBase.__setitem__ and added unit tests. 2010-08-19 14:21:58 -04:00
Lance Stout
2f6f4fc16d Updated ElementBase.__getitem__ with docs and unit tests. 2010-08-13 21:33:11 -04:00
Lance Stout
fe49b8c377 Updated getStanzaValues and setStanzaValues with docs and unit tests. 2010-08-13 20:05:24 -04:00
Lance Stout
b580a3138d Updated ElementBase.enable and ElementBase.initPlugin 2010-08-13 12:51:07 -04:00
Lance Stout
c20fab0f6c Updated ElementBase.setup, and added unit tests. 2010-08-13 12:24:47 -04:00
Lance Stout
415520200e Updated ElementBase.__init__ 2010-08-13 10:26:33 -04:00
Lance Stout
747001d33c Adjust first level indenting in ElementBase to prepare for cleanup. 2010-08-13 10:15:52 -04:00
Lance Stout
b0fb205c16 Updated registerStanzaPlugin and the XML test type. 2010-08-13 10:12:51 -04:00
Lance Stout
4b52007e8c Cleaned stanzabase imports. 2010-08-12 23:24:09 -04:00
Lance Stout
b40a489796 Updated roster stanza with docs and PEP8 style. 2010-08-11 23:32:14 -04:00
Lance Stout
c09e9c702c Updated sleekxmpp.exceptions with PEP8 style and docs. 2010-08-11 18:21:12 -04:00
Lance Stout
4d1f071f83 Updated the use of tostring in xmlstream.py
Now uses the xmlns and stream parameters to reduce the number of
extra xmlns attributes used in the logging output.

Added self.default_ns to XMLStream just to be safe.
2010-08-05 23:11:22 -04:00
Lance Stout
3c0dfb56e6 Update tostring docs to clarify what the xmlns and stanza_ns parameters do. 2010-08-05 20:43:38 -04:00
Lance Stout
e077204a16 Replaced the ToString class with a tostring function.
The sleekxmpp.xmlstream.tostring and sleekxmpp.xmlstream.tostring26 packages
have been merged to sleekxmpp.xmlstream.tostring. The __init__.py file will
import the appropriate tostring function depending on the Python version.

The setup.py file has been updated with the package changes.

ElementBase is now a direct descendent of object and does not subclass ToString.

Stanza objects now return their XML contents for __repr__.
2010-08-05 20:26:41 -04:00
Lance Stout
c54466596f Modified sleekxmpp.xmlstream.tostring to import ToString class based on Python version.
The package sleekxmpp.xmlstream.tostring26 remains for now until stanzabase is updated, but is no longer needed.
2010-08-04 14:41:37 -04:00
Lance Stout
aa1dbe97e0 Updated and simplified new JID class to have more documentation and use PEP8 style. 2010-08-04 00:33:28 -04:00
Lance Stout
fec69be731 Update nick stanza with documentation and PEP8 style. 2010-08-03 18:32:53 -04:00
Lance Stout
183a3f1b87 Updated XHTML-IM stanza with documentation and PEP8 style. 2010-08-03 17:58:18 -04:00
Lance Stout
41ab2b8460 Updated presence stanza with documentation and PEP8 style. 2010-08-03 17:30:34 -04:00
Lance Stout
939ae298c2 Updated message stanzas and tests with documentation and PEP8 style. 2010-08-03 12:26:36 -04:00
Lance Stout
1cedea2804 Added optional default value to _getAttr. 2010-07-30 14:11:24 -04:00
Lance Stout
cbed8029ba Updated, cleaned, and documented Iq stanza class. Also added unit tests. 2010-07-29 23:58:25 -04:00
Lance Stout
1da3e5b35e Added unit tests for error stanzas. Corrected error in deleting conditions. 2010-07-29 23:55:13 -04:00
Lance Stout
60a183b011 Added useful imports to the xmlstream, xmlstream.handler, and xmlstream.matcher __init__.py files to make it simpler to import common classes. 2010-07-29 20:18:04 -04:00
Lance Stout
a49f511a2f Added RESPONSE_TIMEOUT constant to sleekxmpp.xmlstream to serve as a single place to specify a default timeout value when waiting for a stanza response. 2010-07-29 20:16:57 -04:00
Lance Stout
25f43bd219 Updated error stanza to be PEP8 compliant and include documentation. 2010-07-29 11:06:10 -04:00
Lance Stout
d148f633f3 Modified ElementBase _getSubText, _setSubText, and _delSubText to
use the namespace in a tag name if one is given and to use
self.namespace otherwise.
2010-07-29 11:04:21 -04:00
Lance Stout
e8e934fa95 Fixed some PEP8 errors in RootStanza (trailing whitespace and line length) 2010-07-29 11:02:42 -04:00
Lance Stout
bd92ef6acf Updated RootStanza to use registerStanzaPlugin, and be PEP8 compliant. 2010-07-28 13:14:41 -04:00
Nathan Fritz
2b6454786a Merge branch 'experimental' of git@github.com:fritzy/SleekXMPP into experimental 2010-07-26 18:13:54 -07:00
Nathan Fritz
a349a2a317 removed jid from stanzabase to external file 2010-07-26 18:13:34 -07:00
Nathan Fritz
2cb82afc2c updated and moved jid class -- jids now have setters 2010-07-26 18:13:09 -07:00
Lance Stout
c8989c04f3 Replaced traceback calls to use logging.exception where applicable. 2010-07-26 21:02:25 -04:00
Lance Stout
ec860bf9e2 Add StateManager as replacement for StateMachine. 2010-07-26 19:44:42 -04:00
Lance Stout
d0a5c539d8 Fix shebang lines to use #!/usr/bin/env python instead of hard coding a python version. 2010-07-23 19:47:54 -04:00
Joe Hildebrand
d70a6e6f32 Issue 26. Only set from address in reply() for components 2010-07-20 13:55:48 -07:00
Nathan Fritz
ca2c421e6c fixed resource binding element to conform to spec 2010-07-20 11:20:47 -07:00
Nathan Fritz
9fcd2e93a3 don't send resource in bind request if you don't have one 2010-07-20 11:15:59 -07:00
Lance Stout
75afefb5c6 Upated xep_0045 to use old_0004 for now. 2010-07-20 13:23:35 -04:00
Lance Stout
b67b930596 Updated xep_0050 to use old_0004 for now. 2010-07-20 12:27:22 -04:00
Lance Stout
7ad0143687 Updated pubsub stanzas to use xep_0004 stanza objects, and updated tests to match. 2010-07-20 12:18:38 -04:00
Lance Stout
de24e9ed45 Lots of XEP-0004 bug fixes.
Forms have default type of 'form'
setFields now uses a list of tuples instead of a dictionary because ordering is important.
getFields defaults to returning a list of tuples, but the use_dict parameter can change that
2010-07-20 12:16:57 -04:00
Lance Stout
9724efa123 Please tab nanny. 2010-07-20 12:16:06 -04:00
Lance Stout
690eaf8d3c Updated license notices to use the correct MIT format. Also corrected references to nonexistant license.txt to LICENSE. 2010-07-20 11:19:49 -04:00
Lance Stout
9ca4bba2de Update XEP-0128 to use new xep_0004 2010-07-20 00:34:24 -04:00
Lance Stout
bb927c7e6a Updated presence stanza to include a 'show' interface. Presence stanza tests updated accordingly. 2010-07-20 00:04:34 -04:00
Lance Stout
b5a14a0190 Can now pass a name to add_handler so that the handler can be reliably removed later.
Updated uses of add_handler to include a name.
2010-07-19 19:19:33 -04:00
Nathan Fritz
fec8578cf6 stanza should not have setValues/getValues because that conflicts with attribute accessors 2010-07-19 15:38:48 -07:00
Nathan Fritz
f80b3285d4 indent problem on stanzabase 2010-07-19 14:57:21 -07:00
Nathan Fritz
130a148d34 added fromXML/getXML compatiblity to the new xep-0004 w/ deprecated warnings 2010-07-19 13:53:41 -07:00
Nathan Fritz
16104b6e56 made Lance's new XEP-4 stanzas the default, and put xep-0004 as old_0004 2010-07-19 13:36:28 -07:00
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
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
37ada49802 Fixed indentation to please tab nanny during unit tests. 2010-06-27 17:39:16 -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
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
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
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
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